← 返回目录
P

Postgres MCP Pro

社区
为PostgreSQL提供可配置的读写访问和性能分析的MCP服务器
分类
数据库 第 43 / 58
Stars
★ 3.4k 热门
传输方式
stdio(本地进程) · SSE
运行环境
Docker · Python 3.12+
凭据
可选 API Key
许可证
MIT
最近提交
工具数
9
48FMRS · D

Postgres MCP Pro是一款功能丰富的PostgreSQL MCP服务器,提供健康检查、索引调优、安全SQL执行等特性。其亮点在于使用经典优化算法而非单纯依赖LLM,提高了可靠性。适合希望提升数据库性能和AI辅助开发效率的团队。

最强项 · 安装易用性 11/20 最弱项 · 安全与权限 7/20

可靠性
9/20
安全与权限
7/20
维护活跃度
10/20
文档质量
11/20
安装易用性
11/20
查看各项评分依据
可靠性 9/20
证据:README描述的功能明确,项目有活跃的提交记录和多个工具,但未能验证实际代码,未看到测试或CI配置。因此可靠性只能基于描述和代码审查,未能确认启动和握手过程。扣除:未执行代码,缺乏测试覆盖和错误处理细节。
安全与权限 7/20
证据:README明确提到两种访问模式(受限和不受限),受限模式使用只读事务和SQL解析来防止写入和危险操作。但未看到具体的代码实现来确认这些保护措施有效。扣除:未验证代码,缺少对危险操作的显式确认机制和详细的权限边界说明。
维护活跃度 10/20
证据:项目有MIT许可证,活跃的GitHub仓库,有提交记录和开放问题响应。但未看到版本发布频率和依赖更新细节。扣除:未看到明确的维护策略或安全响应渠道。
文档质量 11/20
证据:README提供详细的安装、配置、使用说明,包括Docker、Python、不同客户端的示例,以及工具列表和FAQ。但未看到分层文档和故障排除章节。扣除:缺少参数详细说明、限制说明和成本信息。
安装易用性 11/20
证据:README提供多种安装方法(Docker、pipx、uv),并给出Claude Desktop等配置示例,步骤清晰。但未看到自动化测试或CI来验证安装过程。扣除:未看到可验证的安装脚本或测试,平台兼容性未详细说明。

静态评测 · 未实际运行收录于 2026-08-07

查看 FMRS 评分方法 →

选型与风险

能访问什么连接数据库

适合谁

  • 需要深度性能分析和索引调优的PostgreSQL开发人员
  • 在生产环境中需要只读访问和健康检查的DBA
  • 希望AI助手辅助进行数据库优化和监控的团队

不适合谁

  • 需要完整写权限但希望安全控制的用户(受限模式仅允许只读)
  • 使用非PostgreSQL数据库的用户
  • 需要实时监控或告警功能的用户(该工具侧重于分析)

所需权限

  • 数据库连接凭据(连接URI)
  • 对数据库的读写或只读访问权限(取决于访问模式)
  • 可选:加载扩展(pg_stat_statements、hypopg)的权限
  • 可选:OpenAI API密钥(用于实验性LLM索引调优)

风险与副作用

  • 未受限模式下执行SQL可能导致数据损坏或丢失
  • SQL解析可能无法阻止所有绕过只读限制的方法(如果启用了不安全的存储过程语言)
  • 提供的连接凭据可能以明文存储在MCP客户端配置中
  • 索引调优搜索可能消耗较多数据库资源

安装接入

准备工作

运行环境:Docker · Python 3.12+

DATABASE_URI 必填密钥 Postgres 连接字符串,格式如 postgresql://username:password@localhost:5432/dbname,使用你自己的数据库凭据;必需。
OPENAI_API_KEY 可选密钥 OpenAI API 密钥,仅在使用实验性 LLM 索引调优功能时需要;在 platform.openai.com 获取。
  1. 确保你有数据库的访问凭据,并验证可用(例如使用psql)。
  2. 选择安装方式:
  • Docker: 拉取镜像 docker pull crystaldba/postgres-mcp
  • Python: 使用pipx或uv安装 postgres-mcp
  1. 配置MCP客户端(如Claude Desktop):编辑配置文件,添加mcpServers条目,设置DATABASE_URI环境变量和访问模式(--access-mode=unrestricted或--access-mode=restricted)。
  2. 可选:启用扩展以支持索引调优和性能分析(pg_stat_statements和hypopg)。
claude_desktop_config.json
{
  "mcpServers": {
    "postgres": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URI",
        "crystaldba/postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "env": {
        "DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
      }
    }
  }
}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "postgres": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_URI",
        "crystaldba/postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "env": {
        "DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add postgres -e DATABASE_URI=postgresql://username:password@localhost:5432/dbname -- docker run -i --rm -e DATABASE_URI crystaldba/postgres-mcp --access-mode=unrestricted

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

启动后在客户端工具列表中应出现 list_schemas、execute_sql、analyze_db_health 等工具;可以请求“检查我的数据库健康状况”,若返回缓冲区命中率、连接和索引健康等结果,说明连接成功。

常见排障

  1. 确保DATABASE_URI正确且数据库服务可访问
  2. 检查是否安装了必要的扩展(pg_stat_statements、hypopg)
  3. 如果使用Docker,确保端口和网络配置正确
  4. 查看服务器日志以获取错误信息
  5. 尝试使用不同的访问模式(unrestricted或restricted)

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 检查我的数据库健康状况并指出存在的问题。
  • 我的数据库里最慢的查询有哪些?如何加快它们?
  • 分析我的数据库工作负载并建议能提升性能的索引。
  • 帮我优化这个查询:SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id WHERE orders.created_at > '2023-01-01';

工具能力 9

list_schemas 只读
列出PostgreSQL实例中所有可用的数据库模式。
list_objects 只读
列出指定模式中的数据库对象(表、视图、序列、扩展等)。
get_object_details 只读
获取特定数据库对象的详细信息,如表、列、约束和索引。
execute_sql 破坏性
在数据库上执行SQL语句,受限模式下只允许只读操作。
explain_query 只读
获取SQL查询的执行计划,帮助理解查询如何处理以及成本模型。可以结合虚拟索引模拟添加索引后的效果。
get_top_queries 只读
使用pg_stat_statements数据报告基于总执行时间最慢的SQL查询。
analyze_workload_indexes 只读
分析数据库工作负载,识别资源密集型查询,并推荐最优索引。
analyze_query_indexes 只读
分析一组具体的SQL查询(最多10个),并推荐最优索引。
展开其余 1 个工具
analyze_db_health 只读
执行全面的健康检查,包括缓冲区命中率、连接健康、约束验证、索引健康、序列限制和真空健康。

使用场景

检查数据库健康并识别问题
分析慢查询并获取优化建议
为工作负载推荐索引
优化特定查询的性能
模拟添加索引的效果
在开发环境中安全执行SQL

支持客户端

Claude Desktop
Cursor
Windsurf
Goose
Qodo Gen

依据项目文档列出,未经本站实测。

详细介绍

Postgres MCP Pro是一个开源的Model Context Protocol (MCP)服务器,旨在帮助开发人员和AI代理在整个开发过程中管理PostgreSQL数据库,从初始编码到生产环境的调优和维护。它提供了数据库健康检查、索引调优、查询计划分析、安全SQL执行等功能。支持只读模式和安全SQL解析,适用于开发和生产的多种场景。

同类可选方案

源版本 15c8e3335354 数据同步于 2026-10-12 查看 FMRS 评分方法