
PostgreSQL MCP Server 精选
一个模型上下文协议服务器,通过自然语言交互实现强大的 PostgreSQL 数据库管理功能,包括分析、模式管理、数据迁移和监控。
README
PostgreSQL MCP 服务器
一个提供 PostgreSQL 数据库管理功能的模型上下文协议 (MCP) 服务器。该服务器协助分析现有的 PostgreSQL 设置,提供实施指导,调试数据库问题,管理模式,迁移数据以及监控数据库性能。
功能
数据库分析和调试
1. 数据库分析 (analyze_database
)
分析 PostgreSQL 数据库配置和性能指标:
- 配置分析
- 性能指标
- 安全评估
- 优化建议
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"analysisType": "performance" // 可选: "configuration" | "performance" | "security"
}
2. 安装说明 (get_setup_instructions
)
提供逐步的 PostgreSQL 安装和配置指导:
- 平台特定的安装步骤
- 配置建议
- 安全最佳实践
- 安装后任务
// 示例用法
{
"platform": "linux", // 必需: "linux" | "macos" | "windows"
"version": "15", // 可选: PostgreSQL 版本
"useCase": "production" // 可选: "development" | "production"
}
3. 数据库调试 (debug_database
)
调试常见的 PostgreSQL 问题:
- 连接问题
- 性能瓶颈
- 锁冲突
- 复制状态
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"issue": "performance", // 必需: "connection" | "performance" | "locks" | "replication"
"logLevel": "debug" // 可选: "info" | "debug" | "trace"
}
模式管理
4. 模式信息 (get_schema_info
)
获取数据库或特定表的详细模式信息:
- 数据库中的表列表
- 列定义
- 约束 (主键,外键等)
- 索引
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"tableName": "users" // 可选: 获取特定表的信息
}
5. 创建表 (create_table
)
创建具有指定列的新表:
- 定义列名和类型
- 设置可空约束
- 设置默认值
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"tableName": "users",
"columns": [
{ "name": "id", "type": "SERIAL", "nullable": false },
{ "name": "username", "type": "VARCHAR(100)", "nullable": false },
{ "name": "email", "type": "VARCHAR(255)", "nullable": false },
{ "name": "created_at", "type": "TIMESTAMP", "default": "NOW()" }
]
}
6. 修改表 (alter_table
)
修改现有表:
- 添加新列
- 修改列类型或约束
- 删除列
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"tableName": "users",
"operations": [
{ "type": "add", "columnName": "last_login", "dataType": "TIMESTAMP" },
{ "type": "alter", "columnName": "email", "nullable": false },
{ "type": "drop", "columnName": "temporary_field" }
]
}
数据迁移
7. 导出表数据 (export_table_data
)
将表数据导出为 JSON 或 CSV 格式:
- 使用 WHERE 子句过滤数据
- 限制行数
- 选择输出格式
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"tableName": "users",
"outputPath": "./exports/users.json",
"where": "created_at > '2023-01-01'", // 可选
"limit": 1000, // 可选
"format": "json" // 可选: "json" | "csv"
}
8. 导入表数据 (import_table_data
)
从 JSON 或 CSV 文件导入数据:
- 可选地在导入前截断表
- 支持不同的格式
- 自定义 CSV 分隔符
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"tableName": "users",
"inputPath": "./imports/users.json",
"truncateFirst": false, // 可选
"format": "json", // 可选: "json" | "csv"
"delimiter": "," // 可选: 用于 CSV 文件
}
9. 数据库之间复制 (copy_between_databases
)
在两个 PostgreSQL 数据库之间复制数据:
- 使用 WHERE 子句过滤数据
- 可选地截断目标表
// 示例用法
{
"sourceConnectionString": "postgresql://user:password@localhost:5432/source_db",
"targetConnectionString": "postgresql://user:password@localhost:5432/target_db",
"tableName": "users",
"where": "active = true", // 可选
"truncateTarget": false // 可选
}
监控
10. 监控数据库 (monitor_database
)
PostgreSQL 数据库的实时监控:
- 数据库指标 (连接数,缓存命中率等)
- 表指标 (大小,行数,死元组)
- 活动查询信息
- 锁信息
- 复制状态
- 可配置的警报
// 示例用法
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"includeTables": true, // 可选
"includeQueries": true, // 可选
"includeLocks": true, // 可选
"includeReplication": false, // 可选
"alertThresholds": { // 可选
"connectionPercentage": 80,
"longRunningQuerySeconds": 30,
"cacheHitRatio": 0.95,
"deadTuplesPercentage": 10,
"vacuumAge": 7
}
}
前提条件
- 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": [] } } }
开发
npm run dev
- 启动具有热重载的开发服务器npm run lint
- 运行 ESLintnpm test
- 运行测试
安全注意事项
-
连接安全
- 使用连接池
- 实施连接超时
- 验证连接字符串
- 支持 SSL/TLS 连接
-
查询安全
- 验证 SQL 查询
- 阻止危险操作
- 实施查询超时
- 记录所有操作
-
身份验证
- 支持多种身份验证方法
- 实施基于角色的访问控制
- 强制执行密码策略
- 安全地管理连接凭据
最佳实践
- 始终使用具有正确凭据的安全连接字符串
- 遵循敏感环境的生产安全建议
- 定期监控和分析数据库性能
- 保持 PostgreSQL 版本为最新
- 实施适当的备份策略
- 使用连接池以获得更好的资源管理
- 实施适当的错误处理和日志记录
- 定期安全审计和更新
错误处理
服务器实施了全面的错误处理:
- 连接失败
- 查询超时
- 身份验证错误
- 权限问题
- 资源约束
贡献
- Fork 存储库
- 创建一个功能分支
- 提交您的更改
- 推送到分支
- 创建一个 Pull Request
许可证
该项目根据 AGPLv3 许可证获得许可 - 有关详细信息,请参见 LICENSE 文件。
推荐服务器

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
AIO-MCP Server
🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。
Knowledge Graph Memory Server
为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。
Hyperbrowser
欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:

any-chat-completions-mcp
将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。
Exa MCP Server
一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。
BigQuery MCP Server
这是一个服务器,可以让你的大型语言模型(LLM,比如Claude)直接与你的BigQuery数据对话!可以把它想象成一个友好的翻译器,它位于你的AI助手和数据库之间,确保它们可以安全高效地进行交流。
mcp-perplexity
Perplexity API 的 MCP 服务器。