PostgreSQL数据库分析与优化套件

Postgres MCP Pro Plus是一款高级PostgreSQL数据库分析与优化套件,提供全面的数据库健康检查、AI驱动的索引优化、实时阻塞查询分析和智能维护建议,适用于企业级数据库性能管理和优化。

  • by cloudthinker-ai
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 cloud-thinker-ai/postgres-mcp-pro-plus

使用说明

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参考资料

扩展点

  • 自定义健康检查:添加特定于域的运行状况监视
  • 插件架构:使用自定义分析工具进行扩展
  • 集成API:与外部监控系统连接
  • 自定义可视化:添加专门的报告和仪表板

🔒 安全与最佳实践

安全功能

  • SQL注入保护:全面的输入净化
  • 访问模式控制:受限/非受限操作模式
  • 超时强制:可配置的查询超时保护
  • 参数验证:强大的输入验证和净化
  • 错误处理:安全的错误报告,无信息泄露

生产指南

  • 使用 限制模式 用于生产分析
  • 配置适当 超时值 用于大型操作
  • 监视器 资源使用情况 在分析操作期间
  • 实施 定期健康检查 用于主动监控
  • 审查 安全配置 定期更新用户权限

📄 许可证

MIT许可证


🚀 Postgres MCP Pro Plus - Advanced Database Intelligence
Empowering database professionals with AI-driven insights and optimization