← 返回目录
P

Postgres MCP Pro

社区
为PostgreSQL提供可配置的读写访问和性能分析的MCP服务器
GitHub 源仓库 ↗
★ 3.2k Stars 分类 · 数据库 热门 源版本 15c8e3335354
48FMRS · D
可靠性
9/20
安全与权限
7/20
维护活跃度
10/20
文档质量
11/20
安装易用性
11/20

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

查看 FMRS 评分方法 →

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

工具能力

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个),并推荐最优索引。
analyze_db_health
执行全面的健康检查,包括缓冲区命中率、连接健康、约束验证、索引健康、序列限制和真空健康。

安装接入

  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"
      }
    }
  }
}

选型与风险

适合谁

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

不适合谁

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

所需权限

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

风险与副作用

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

常见排障

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

使用场景

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

支持客户端

Claude Desktop完整支持
Cursor完整支持
Windsurf完整支持
Goose完整支持
Qodo Gen完整支持