关于 PostgreSQL MCP Server
PostgreSQL MCP Server 是一个提供 PostgreSQL 数据库管理能力的 MCP 服务,用于分析现有数据库环境、提供部署指导并排查数据库问题。适合需要通过 AI 助手辅助数据库运维的开发者与管理员。
主要功能
- 01analyze_database:配置、性能与安全分析
- 02get_setup_instructions:按平台给出安装与配置步骤
- 03debug_database:排查连接、性能、锁与复制问题
- 04支持 SSL/TLS 连接与连接超时设置
- 05查询验证与操作日志记录
适用场景
- 01分析生产数据库的配置与性能指标
- 02按 Linux、macOS 或 Windows 生成 PostgreSQL 安装指南
- 03排查数据库连接失败或锁冲突
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 analyze_database、get_setup_instructions 和 debug_database 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
PostgreSQL MCP 服务
一个提供 PostgreSQL 数据库管理能力的 Model Context Protocol (MCP) 服务。该服务可协助分析现有 PostgreSQL 部署、提供实施指导,并调试数据库问题。
功能
1. 数据库分析 (analyze_database)
分析 PostgreSQL 数据库配置和性能指标:
- 配置分析
- 性能指标
- 安全评估
- 优化建议
// Example usage
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"analysisType": "performance" // Optional: "configuration" | "performance" | "security"
}
2. 安装说明 (get_setup_instructions)
提供分步的 PostgreSQL 安装和配置指导:
- 针对特定平台的安装步骤
- 配置建议
- 安全最佳实践
- 安装后任务
// Example usage
{
"platform": "linux", // Required: "linux" | "macos" | "windows"
"version": "15", // Optional: PostgreSQL version
"useCase": "production" // Optional: "development" | "production"
}
3. 数据库调试 (debug_database)
调试常见的 PostgreSQL 问题:
- 连接问题
- 性能瓶颈
- 锁冲突
- 复制状态
// Example usage
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"issue": "performance", // Required: "connection" | "performance" | "locks" | "replication"
"logLevel": "debug" // Optional: "info" | "debug" | "trace"
}
前置要求
- Node.js >= 18.0.0
- PostgreSQL 服务(用于目标数据库操作)
- 对目标 PostgreSQL 实例的网络访问
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 PostgreSQL MCP 服务:
npx -y @smithery/cli install @nahmanmate/postgresql-mcp-server --client claude
手动安装
- 克隆仓库
- 安装依赖:
npm install - 构建服务:
npm run build - 添加到 MCP 设置文件:
{ "mcpServers": { "postgresql-mcp": { "command": "node", "args": ["/path/to/postgresql-mcp-server/build/index.js"], "disabled": false, "alwaysAllow": [] } } }
开发
npm run dev- 启动支持热重载的开发服务器npm run lint- 运行 ESLintnpm test- 运行测试
安全注意事项
-
连接安全
- 使用连接池
- 实现连接超时
- 验证连接字符串
- 支持 SSL/TLS 连接
-
查询安全
- 验证 SQL 查询
- 防止危险操作
- 实现查询超时
- 记录所有操作
-
身份验证
- 支持多种身份验证方法
- 实现基于角色的访问控制
- 强制执行密码策略
- 安全管理连接凭据
最佳实践
- 始终使用带有正确凭据的安全连接字符串
- 对敏感环境遵循生产安全建议
- 定期监控和分析数据库性能
- 保持 PostgreSQL 版本为最新
- 实施适当的备份策略
- 使用连接池以更好地管理资源
- 实现适当的错误处理和日志记录
- 定期进行安全审计和更新
错误处理
该服务实现了全面的错误处理:
- 连接失败
- 查询超时
- 身份验证错误
- 权限问题
- 资源限制
运行评估和测试
评估包会加载一个 mcp 客户端,然后运行 index.ts 文件,因此测试之间无需重新构建。你可以查看完整文档 here。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
贡献
- Fork 仓库
- 创建功能分支
- 提交你的更改
- 推送到分支
- 创建 Pull Request
许可证
本项目基于 AGPLv3 许可证授权 - 详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。