Token导航 LogoToken导航TokenDH.com
Postgresql Analyzer MCP logo
搜索检索stdio官方级别未说明来源级核验

Postgresql Analyzer MCP

MCP Server

PostgreSQL performance analysis and optimization MCP server

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
PythonClaude性能分析Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

rameshv29

提供方

rameshv29

最后核验

2026/5/18 02:16

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

PostgreSQL分析器MCP

用于PostgreSQL数据库性能分析和优化的模型上下文协议(MCP)服务器。

概述

PostgreSQL Analyzer MCP是一个强大的工具,它利用人工智能帮助数据库管理员和开发人员优化他们的PostgreSQL数据库。它提供了对数据库结构、查询性能、索引使用和配置设置的全面分析,以及可操作的改进建议。

此工具使用Streamable HTTP传输作为远程MCP服务器运行,允许集中部署并由任何兼容MCP的客户端访问,包括Amazon Q Developer CLI、Claude和其他支持MCP协议的AI助手。

⚠️ 免责声明

实验性:这个项目是实验性的,旨在演示MCP和PostgreSQL的可能性。在任何生产环境中实施之前,应仔细审查所有建议和代码。

非官方的:这是一个个人项目,与我工作或参与的任何组织无关,也没有得到任何组织的认可或代表。所有的意见和方法都是我自己的。

无责任:此工具“按原样”提供,不提供任何形式的保修。使用风险自负。作者对因使用本软件而产生的任何损害或问题不承担责任。

特性

  • 数据库结构分析:分析表、列、索引和外键
  • 查询性能分析:分析执行计划并找出瓶颈
  • 索引建议:根据查询模式获取新索引的建议
  • 查询优化:接收查询重写建议以提高性能
  • 查询识别速度慢:查找并分析运行缓慢的查询
  • 数据库运行状况仪表板:全面了解数据库运行状况指标
  • 指标使用分析:识别未使用、重复或臃肿的索引
  • 只读查询执行:安全执行只读查询以进行验证

安全

此工具在以下情况下运行 只读模式 默认情况下。所有数据库连接都是通过以下方式建立的 SET TRANSACTION READ ONLY 以防止对数据库进行任何意外修改。查询执行功能严格限于SELECT、EXPLAIN和SHOW命令。

安装

先决条件

  • Python 3.12+(或Docker)
  • Amazon Aurora或RDS PostgreSQL数据库
  • AWS帐户(用于Secrets Manager,可选)

设置

选项1:本地设置

  1. 克隆存储库:
   git clone https://github.com/yourusername/postgres-performance-mcp.git
   cd postgres-performance-mcp
  1. 创建虚拟环境并安装依赖关系:
   python -m venv venv
   source venv/bin/activate 
   pip install -r requirements.txt

选项2:Docker设置

  1. 克隆存储库:
   git clone https://github.com/yourusername/postgres-performance-mcp.git
   cd postgres-performance-mcp
  1. 构建Docker镜像:
   docker build -t postgres-analyzer-mcp -f Dockerfile .
  1. 运行Docker容器:
   docker run -p 8000:8000 postgres-analyzer-mcp

对于AWS凭据(如果使用Secrets Manager):

   docker run -p 8000:8000 \
     -e AWS_ACCESS_KEY_ID=your_access_key \
     -e AWS_SECRET_ACCESS_KEY=your_secret_key \
     -e AWS_DEFAULT_REGION=your_region \
     postgres-analyzer-mcp
  1. 配置您的数据库凭据:

- 选项1:将凭据存储在AWS Secrets Manager中(推荐) - 选项2:使用工具时直接提供凭据

用法

启动服务器

当地:

python src/main.py --host 0.0.0.0 --port 8000

Docker:

# The server starts automatically when running the container
docker run -p 8000:8000 postgres-analyzer-mcp

配置MCP客户端

要连接到远程MCP服务器,请使用以下配置MCP客户端:

Server URL: http://your-server-address:8000/mcp
Transport: Streamable HTTP

与MCP客户端一起使用

使用任何兼容MCP的客户端连接到服务器,并使用可用的工具:

analyze_database_structure(secret_name="my-postgres-db-credentials", region_name="us-west-2")

可用工具

  • analyze_database_structure:分析数据库模式并提供优化建议
  • get_slow_queries:识别数据库中运行缓慢的查询
  • analyze_query:分析SQL查询并提供优化建议
  • recommend_indexes:为给定的SQL查询推荐索引
  • suggest_query_rewrite:建议对SQL查询进行优化重写
  • database_health_dashboard:为数据库生成一个全面的健康仪表板
  • query_optimization_wizard:逐步优化SQL查询的交互式向导
  • analyze_index_usage:分析索引使用模式,识别未使用或低效的索引
  • execute_read_only_query:执行只读SQL查询并返回结果
  • show_postgresql_settings:使用可选筛选显示PostgreSQL配置设置
  • health_check:检查服务器是否正在运行并响应

定制

此工具的真正强大之处在于根据您的特定环境进行定制:

  • 添加根据您的数据库使用模式量身定制的自定义分析规则
  • 与您的监控系统集成
  • 根据您组织的最佳实践定制建议
  • 添加有关数据模型的特定领域知识
  • 使用特定于您需求的其他工具进行扩展

AWS密钥管理器设置

要使用AWS Secrets Manager存储数据库凭据,请执行以下操作:

  1. 使用以下密钥在AWS Secrets Manager中创建密钥:

- host:数据库主机名 - port:数据库端口(通常为5432) - dbname:数据库名称 - username:数据库用户名 - password:数据库密码

  1. 确保您的AWS凭据配置了访问密钥的适当权限。
  1. 调用工具时使用秘密名称:
   analyze_query(query="SELECT * FROM users WHERE user_id = 123", secret_name="my-postgres-db-credentials")

PostgreSQL配置

为了进行最佳性能分析,我们建议启用以下扩展:

CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION pg_buffercache;

并将这些设置添加到您的 postgresql.conf:

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

例子

分析数据库结构

analyze_database_structure(secret_name="my-postgres-db-credentials")

分析查询

analyze_query(
    query="SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id WHERE orders.status = 'pending'",
    secret_name="my-postgres-db-credentials"
)

获取索引建议

recommend_indexes(
    query="SELECT * FROM products WHERE category = 'electronics' AND price < 100",
    secret_name="my-postgres-db-credentials"
)

执行只读查询

execute_read_only_query(
    query="SELECT schemaname, relname, n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC LIMIT 10",
    secret_name="my-postgres-db-credentials"
)

部署到远程服务器

要将MCP服务器部署到远程计算机,请执行以下操作:

  1. 在远程服务器上安装Docker
  2. 将项目文件复制到服务器或从存储库克隆
  3. 构建并运行Docker容器:
   docker build -t postgres-analyzer-mcp -f Dockerfile .
   docker run -d -p 8000:8000 postgres-analyzer-mcp
  1. 考虑使用流程管理器,如 docker-composesystemd 确保服务器重新启动时容器重新启动

为了安全访问,请考虑设置:

  • 具有SSL/TLS的反向代理(如Nginx或Traefik)
  • 身份验证中间件
  • 限制访问的防火墙规则

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • PostgreSQL社区的文档
  • MCP协议开发人员支持AI驱动的工具
  • 该项目是使用vibe编码创建的,vibe编码是一种人工智能辅助开发方法,将人类专业知识与人工智能能力相结合,以创建健壮、可维护的软件解决方案。

目录标签

目录标签

PythonClaude性能分析research-and-data数据库优化本地部署PostgreSQLAI辅助查询优化

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP