使用说明
Postgres MCP Pro Plus
Advanced PostgreSQL Database Analysis & Optimization Suite
Extended version based on crystaldba/postgres-mcp
🚀 主要特点
- 🔍 综合数据库分析:深入了解模式结构、关系和性能
- ⚡ AI驱动的优化:使用数据库优化顾问(DTA)和LLM方法的智能索引建议
- 🩺 高级健康监测:通过预测分析进行多维健康检查
- 🔒 锁定与阻塞分析:查询阻塞和死锁的实时检测和解决
- 🧹 智能维护:具有膨胀检测和维护计划的自动真空分析
- 📊 性能智能:使用资源使用优化进行查询性能分析
- 🔐 安全评估:全面的安全分析和建议
- 🐳 Docker就绪:支持Docker Compose的容器化部署
📋 可用工具
核心数据库操作
| 工具名称 | 描述 |
|---|---|
list_schemas |
列出所有具有所有权和类型分类的架构 |
list_objects |
按模式浏览数据库对象(表、视图、序列、扩展) |
get_object_details |
详细的对象分析,包括列、约束和索引 |
execute_sql |
使用安全控制(限制/不限制模式)执行SQL |
性能与优化
| 工具名称 | 描述 |
|---|---|
explain_query |
基于HypoPG假设指数模拟的高级执行计划分析 |
get_top_queries |
使用性能指标识别慢速和资源密集型查询 |
analyze_workload_indexes |
来自工作量分析(DTA/LLM)的人工智能指数建议 |
analyze_query_indexes |
针对特定查询集(最多10个查询)进行有针对性的索引优化 |
健康与监测
| 工具名称 | 描述 |
|---|---|
analyze_db_health |
全面的健康检查:索引、连接、真空、序列、复制、缓冲区缓存、约束 |
get_blocking_queries |
高级阻塞分析,具有锁层次可视化和解决方案建议 |
analyze_vacuum_requirements |
全面的真空分析,包括膨胀检测和维护建议 |
高级分析
| 工具名称 | 描述 |
|---|---|
get_database_overview |
企业级数据库评估,包括性能、安全性和关系分析 |
analyze_schema_relationships |
基于视觉关系分析和耦合度量的模式依赖映射 |
🔧 工具详细信息和功能
🔍 数据库概述分析
企业级综合数据库评估
这 get_database_overview 该工具提供多维分析:
- 📊 模式分析:具有表关系和依赖关系映射的完整结构
- ⚡ 性能指标:查询性能、索引效率和资源利用模式
- 🔐 证券分析:用户权限、角色分配和安全配置评估
- 💾 存储分析:表大小、索引膨胀检测和磁盘使用优化
- 🩺 健康指标:连接健康、真空统计和系统性能指标
配置选项:
max_tables(默认值:500):用于性能控制的每个架构要分析的最大表数sampling_mode(默认值:true):对大型数据集进行统计采样,以优化执行时间timeout(默认值:300):具有优雅超时处理的最大执行时间
🔒 高级阻塞查询分析
实时锁争用检测和解决
这 get_blocking_queries 该工具具有企业级功能:
🎯 核心特点:
- 现代检测:使用PostgreSQL的
pg_blocking_pids()精确阻塞识别功能 - 锁层次可视化:完整的区块链和流程关系
- 综合指标:流程详细信息、等待事件、时间、锁类型和受影响的关系
- 智能推荐:基于严重性的建议,并提供具体的优化指导
- 生产就绪:专为企业数据库监控和性能故障排除而设计
📋 分析输出:
- 流程信息:PID、用户、应用程序名称、客户端地址和连接详细信息
- 查询上下文:完整查询文本、执行时间和资源消耗
- 锁详细信息:锁类型、模式、受影响的数据库对象和等待事件
- 状态分析:进程状态、等待信息和阻塞持续时间
- 趋势分析:统计摘要和模式识别
- 分类建议: 🚨 关键,⚠️ 警告,💡 优化,🎯 热点警报
🔧 PostgreSQL兼容性:
- 最小:PostgreSQL 9.6+(需要
pg_blocking_pids()功能) - 推荐PostgreSQL 12+(增强锁监控功能)
- 最优:PostgreSQL 14+(包括
pg_locks.waitstart用于精确的等待时间)
🧹 真空分析与维护
具有膨胀检测功能的全面维护计划
这 analyze_vacuum_requirements 该工具提供:
- 📈 Bloat分析:表和索引膨胀检测及严重程度评估
- ⚙️ 自动真空配置:设置分析和优化建议
- 📊 性能影响:真空运行性能分析和瓶颈识别
- 🗓️ 维护计划:基于工作负载模式的智能调度建议
- 🚨 关键问题检测:维护相关问题的即时关注警报
- ⚡ 配置优化:真空参数的调整建议
🗺️ 模式关系分析
高级依赖关系映射和可视化
这 analyze_schema_relationships 该工具提供:
- 🔗 依赖关系映射:完成模式间关系可视化
- 📊 耦合分析:模式耦合度量和隔离评分
- 🎯 影响评估:模式修改的变更影响分析
- 📈 关系质量:外键关系质量和一致性评分
- 🔍 模式检测:常见的反模式和架构建议
⚡ 指数优化智能
基于人工智能的索引推荐,采用先进算法
数据库优化顾问(DTA)功能:
- 🧠 Pareto最优:平衡性能和存储的多目标优化
- 📊 工作量分析:从pg_stat_statements数据中进行模式识别
- 💰 成本效益分析:存储预算限制与性能影响评估
- 🎯 查询特定调优:针对特定查询集进行有针对性的优化
- ⏱️ 有时限分析:具有可配置运行时间限制的任何时间算法
LLM驱动优化:
- 🤖 智能分析:查询模式的自然语言理解
- 📝 背景建议:人类可读的解释和实施指南
- 🔍 高级模式识别:复杂查询模式检测和优化
🚀 快速开始
先决条件
- PostgreSQL 9.6+(PostgreSQL 12+推荐,14+最优)
- Python 3.8+
- 可选:用于假设指数分析的HypoPG扩展
安装和设置
1.环境配置
创建一个 .env 项目根目录中的文件:
DATABASE_URI=postgresql://username:password@localhost:5432/database_name
2.本地部署
# Start the MCP server (default: stdio transport, unrestricted mode)
./start.sh
# Start in read-only mode for safer analysis
./start.sh --access-mode restricted
# Start with SSE transport for web integration
./start.sh --transport sse --sse-port 8099
# Start SSE server accessible externally
./start.sh --transport sse --sse-host 0.0.0.0 --sse-port 8099
# Show all available options
./start.sh --help
3.Docker部署
# Start with Docker Compose
docker-compose up -d
# View logs
docker-compose logs -f postgres-mcp
4.交互式测试(MCP检查器)
# Terminal 1: Start the MCP server with SSE transport
./start.sh --transport sse --sse-port 8099
# Terminal 2: Start the MCP Inspector (opens web interface)
./start-inspector.sh
MCP检查员提供:
- 交互式工具测试:使用web UI测试所有数据库分析工具
- 参数探索:发现工具功能和配置选项
- 实时结果:在用户友好的界面中查看格式化的分析结果
- 文档:内置工具文档和使用示例
🔧 访问模式
无限制模式 (默认):
- 完整的SQL执行能力
- 数据库修改操作
- 完全的管理权限
受限模式 (建议分析):
- 带有安全控制的只读操作
- SQL注入保护
- 超时强制(默认30秒)
- 安全生产分析
📊 使用示例
基本服务器操作
# Show help and configuration options
./start.sh --help
# Start with default settings (stdio, unrestricted)
./start.sh
# Start in production-safe mode
./start.sh --access-mode restricted
# Start web server for HTTP/SSE integration
./start.sh --transport sse --sse-port 8099
健康检查示例
# Comprehensive health analysis (via MCP client)
analyze_db_health --health-type all
# Specific component checks
analyze_db_health --health-type index,vacuum,buffer
# Performance optimization workflow
get_top_queries --sort-by resources
analyze_workload_indexes --method dta --max-index-size-mb 1000
get_blocking_queries
🏗️ 架构和组件
核心架构
postgres-mcp/
├── 🔧 server.py # MCP server & tool registration
├── 📊 database_health/ # Multi-dimensional health monitoring
├── ⚡ explain/ # Query execution plan analysis
├── 🎯 index/ # AI-powered index optimization
├── 📈 top_queries/ # Performance query analysis
├── 🔒 blocking_queries.py # Lock contention analysis
├── 🔍 database_overview.py # Comprehensive assessment
├── 🗺️ schema_mapping.py # Relationship visualization
├── 🧹 vacuum_analysis.py # Maintenance optimization
└── 🛡️ sql/ # SQL execution framework
数据库健康组件
- 健康指数:无效、重复、臃肿和未使用的索引检测
- 连接健康状况:连接利用率和容量分析
- 真空健康:事务包装和维护监控
- 序列健康:序列耗尽和溢出保护
- 复制运行状况:滞后监控和时隙管理
- 缓冲区运行状况:表和索引的缓存命中率优化
- 约束健康:无效的约束检测和补救
🤖 AI集成功能
数据库优化顾问(DTA):
- 帕累托最优指标选择算法
- 多查询工作负载优化
- 预算受限的推荐引擎
- 采用任何时间方法的有时限分析
LLM动力分析:
- 自然语言查询模式理解
- 上下文优化建议
- 人类可读的解释和指导
- 先进的模式识别能力
📈 最近的增强功能
最新功能(最近提交)
- ✅ 综合工具分析:附有改进建议的详细分析文件
- ✅ 增强可读性:简化了所有模块的代码格式
- ✅ 稳健的错误处理:改进了真空分析中的无值处理
- ✅ 高级可视化:增强阻塞查询分析,并提供详细建议
- ✅ 人类可读输出:重构分析工具,以更好地呈现文本
- ✅ 模式关系映射:新的模式依赖关系分析和可视化
- ✅ Docker集成:完全容器化,支持Docker Compose
- ✅ 真空分析工具:全面的维护建议和膨胀检测
架构改进
- 模块化设计:增强了组件分离和可重用性
- 异步优化:通过更好的异步模式提高了性能
- 安全框架:全面的SQL执行安全控制
- 错误恢复:强大的错误处理和优雅的降级
- 性能扩展:针对大型数据库分析进行了优化
- 增强的启动脚本:配置灵活,具有全面的验证和帮助系统
📚 文档与开发
高级文档
扩展点
- 自定义健康检查:添加特定于域的运行状况监视
- 插件架构:使用自定义分析工具进行扩展
- 集成API:与外部监控系统连接
- 自定义可视化:添加专门的报告和仪表板
🔒 安全与最佳实践
安全功能
- SQL注入保护:全面的输入净化
- 访问模式控制:受限/非受限操作模式
- 超时强制:可配置的查询超时保护
- 参数验证:强大的输入验证和净化
- 错误处理:安全的错误报告,无信息泄露
生产指南
- 使用 限制模式 用于生产分析
- 配置适当 超时值 用于大型操作
- 监视器 资源使用情况 在分析操作期间
- 实施 定期健康检查 用于主动监控
- 审查 安全配置 定期更新用户权限
📄 许可证
MIT许可证
🚀 Postgres MCP Pro Plus - Advanced Database Intelligence
Empowering database professionals with AI-driven insights and optimization