使用说明
🚀 mcp服务器postgres
通过模型上下文协议(MCP)实现生产级、模式感知的PostgreSQL代理
mcp-server-postgres 是一个智能数据库隔离层,旨在弥合大型语言模型(LLM)和PostgreSQL生产集群之间的差距。它采用安全第一、模式感知的架构开发,将自然语言请求转换为经过验证、优化和ACID兼容的SQL。
🏗️ 技术架构
graph TD
Client[MCP Client/LLM] -->|JSON-RPC| Server[MCP Server Hub]
Server -->|Validation| Guard[Security Guardrails]
Guard -->|AST/Pattern Scan| SQL[Validated SQL]
SQL -->|Execution| Pool[Connection Pool Manager]
Pool -->|Write Ops| Primary[Primary DB]
Pool -->|Read Ops| Replica[Read Replicas]
Pool -->|Auditing| Audit[Pino Structured Logs]
关键建筑支柱
- 零信任安全管道:多阶段验证,包括“SELECT*”检测、强制模式限定和SQL注入预防。
- 智能分页:透明的查询包装,以确保结果有界性(默认值:100行),而不会降低性能。
- 动态模式反思:使LLM能够实时解析精确的表关系和索引。
- 隔离层:实施严格的权限级别(
READ_ONLY到ADMIN)维护最低特权原则。
🔒 安全护栏(不可协商)
- 规则-01:无无限制写入:拒绝任何
UPDATE或DELETE缺少明确WHERE条款。 - 规则-04:DDL确认:高风险模式突变需要两步标记化确认流程。
- 掩码:对敏感列上PII编辑的原生支持(例如。,
password_hash,ssn). - 交易包装:所有多语句操作都在durable内部执行
BEGIN/COMMIT阻碍。
🛠️ 配置
在中配置环境变量 .env:
| 变量 | 描述 | 默认值 |
|---|---|---|
DATABASE_URL |
主PostgreSQL DSN | 必需 |
READ_REPLICA_URL |
用于读取路由的可选副本DSN | null |
PERMISSION_TIER |
READ_ONLY |
READ_WRITE |
MASKED_COLUMNS |
以逗号分隔的要编辑的列列表 | null |
MAX_ROWS |
结果页面的硬上限 | 100 |
SLOW_QUERY_THRESHOLD_MS |
延迟警告阈值 | 500 |
📋 工具集API
query(sql, params, page, page_size):执行已验证的SQL。包括自动分页。nl_query(request, context):高级翻译接口(需要LLM桥)。schema_inspect(schema, table):对模式元数据进行深入反思。list_tables(schema):优化了当前数据库架构的枚举。describe_table(schema, table):列定义、索引和FK关系。explain(sql, params):具有成本估算功能的透明查询分析器。transaction(operations):复杂突变的原子批处理执行。confirm_ddl(token):已验证模式更改的最终执行。
🚦 入门指南
发展
npm install
npm run build
npm run start
与Claude Desktop集成
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"postgres": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-postgres/dist/index.js"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/db",
"PERMISSION_TIER": "READ_WRITE"
}
}
}
}
📈 可观测性和测井
所有操作均通过以下方式记录 pino 企业可观察性。
{
"level": "INFO",
"module": "audit",
"operation_type": "QUERY",
"affected_tables": ["public.users"],
"execution_ms": 12.4,
"row_count": 8,
"agent_identity": "mcp-server-postgres"
}
⚖️ 许可证
MIT许可证。由Ismail-2001精确创建。