Postgres MCP Pro:让智能体查慢 SQL、给出索引建议
不只是连上 Postgres 跑 SQL。智能体能做健康检查、看执行计划、模拟假设索引并推荐最优方案,只读模式可用于生产库。
项目与安装文档
查看项目https://github.com/crystaldba/postgres-mcp
AI 生成的 ORM 代码跑起来很慢,问题多半出在缺索引或查询写法上,可让智能体光看代码猜不出来。Postgres MCP Pro 把数据库自己的统计信息交给智能体:哪些查询最慢、执行计划长什么样、加一个索引后计划会怎么变。它由 Crystal DBA 团队开发,截至 2026-10-06 约 3,400 star。
能做什么
- 健康检查:
analyze_db_health一次查看索引健康(重复、未用、失效)、连接、缓存命中率、vacuum、序列上限和复制延迟。 - 找慢查询:
get_top_queries基于pg_stat_statements列出总耗时最高的 SQL。 - 索引调优:
analyze_workload_indexes针对整体负载推荐索引,analyze_query_indexes针对最多 10 条指定查询;explain_query可以带上假设索引,看加索引后的计划。 - 结构与执行:
list_schemas、list_objects、get_object_details读结构,execute_sql执行语句。
适合谁
- 用 Cursor 或 Claude Code 写后端、想让智能体顺手把慢查询和索引问题一起修掉的开发者。
- 没有专职 DBA、需要定期给 Postgres 做体检的小团队。
接入方式
需要数据库连接串,以及 Docker 或 Python 3.12+。索引调优要在库里启用 pg_stat_statements 和 hypopg 扩展。用 uvx 配置:
{
"mcpServers": {
"postgres": {
"command": "uvx",
"args": ["postgres-mcp", "--access-mode=unrestricted"],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}
编辑点评
能跑 SQL 的 Postgres 服务很多,这个的区别是带着 DBA 的工具箱:索引推荐用的是搜索候选索引组合的算法,配合 hypopg 模拟,不靠模型凭感觉。权限上分两档,unrestricted 可读写、适合开发库;restricted 只读并限制执行时间,会解析 SQL 拦截 COMMIT、ROLLBACK 这类绕过只读事务的写法,连生产库请务必换成它。作者也承认只读保护在启用了不安全存储过程语言时可能被绕过,最稳的仍是只读数据库账号。仓库最近一次提交在 2026 年 8 月,更新节奏不算快。许可证为 MIT。