README
🚀 PostgreSQL MCP 服务器
PostgreSQL MCP(模型上下文协议)服务器是一款用于管理和操作 PostgreSQL 数据库的工具。它具备数据库分析、调试、模式管理、数据迁移和实时监控等多种功能,能有效提升数据库管理的效率和质量。
🚀 快速开始
使用 PostgreSQL MCP 服务器前,需要满足一定的先决条件,然后按照安装步骤进行操作。
先决条件
- Node.js >= 18.0.0
- PostgreSQL 服务器(用于目标数据库操作)
- 网络访问到目标 PostgreSQL 实例
安装步骤
- 克隆仓库。
- 安装依赖:
npm install - 构建服务器:
npm run build - 将以下内容添加到 MCP 设置文件中:
{ "mcpServers": { "postgresql-mcp": { "command": "node", "args": ["/path/to/postgresql-mcp-server/build/index.js"], "disabled": false, "alwaysAllow": [], "env": { "POSTGRES_CONNECTION_STRING": "postgresql://username:password@server:port/dbname" } } } }
✨ 主要特性
1. 数据库分析
- 描述:提供对 PostgreSQL 数据库的全面分析,包括性能指标和健康检查。
- 示例:
// 分析数据库性能 const analysis = await postgresqlMcpServer.analyzeDatabase(connectionString);
2. 数据库调试
- 描述:帮助识别和解决数据库中的问题,包括查询优化和错误排查。
- 示例:
// 调试具体查询 const debugResult = await postgresqlMcpServer.debugQuery(connectionString, query);
3. 模式管理
- 描述:提供对数据库模式的管理和操作功能,包括表、索引和视图等。
- 示例:
// 获取数据库模式 const schema = await postgresqlMcpServer.getSchema(connectionString);
4. 数据迁移
- 描述:支持在不同的 PostgreSQL 数据库之间迁移数据,包括过滤和清理操作。
- 示例:
// 迁移数据 await postgresqlMcpServer.migrateData(sourceConnectionString, targetConnectionString);
5. 实时监控
- 描述:提供对 PostgreSQL 数据库的实时监控功能,包括性能指标、查询活动和锁信息。
- 示例:
// 监控数据库状态 const monitoringResult = await postgresqlMcpServer.monitorDatabase(connectionString);
💻 使用示例
基础用法
以下是使用 PostgreSQL MCP 服务器进行数据库分析的基础示例:
// 分析数据库性能
const analysis = await postgresqlMcpServer.analyzeDatabase(connectionString);
高级用法
在实际应用中,你可能需要结合多个功能来完成复杂的数据库管理任务。例如,先进行数据库分析,然后根据分析结果进行数据迁移:
// 分析数据库性能
const analysis = await postgresqlMcpServer.analyzeDatabase(sourceConnectionString);
// 根据分析结果决定是否迁移数据
if (analysis.needMigration) {
await postgresqlMcpServer.migrateData(sourceConnectionString, targetConnectionString);
}
🔧 技术细节
开发相关命令
npm run dev- 启动开发服务器,带有热重载npm run lint- 运行 ESLintnpm test- 运行测试
安全注意事项
连接安全
- 使用连接池
- 实现连接超时
- 验证连接字符串
- 支持 SSL/TLS 连接
查询安全
- 验证 SQL 查询
- 防止危险操作
- 实施查询超时
- 记录所有操作
身份验证
- 支持多种身份验证方法
- 实现基于角色的访问控制
- 执行密码策略
- 安全管理连接凭证
最佳实践
- 始终使用安全的连接字符串,包含适当的凭据
- 遵循生产环境的安全建议
- 定期监控和分析数据库性能
- 保持 PostgreSQL 版本更新
- 实施适当的数据备份策略
- 使用连接池以优化资源管理
- 实现适当的错误处理和日志记录
- 定期进行安全审核和更新
错误处理
服务器实现全面的错误处理,包括连接失败、查询超时、身份验证错误和锁定问题等。
🤝 贡献指南
请参考项目仓库中的贡献指南,了解如何为 PostgreSQL MCP 服务器做贡献。
📄 许可证
该项目遵循 LICENSE 协议。
Scan to join WeChat group