Postgres MCP 服务器
使用说明(简明易懂,含操作步骤)
-
项目简介
- 该仓库实现了一个基于 MCP 的后端服务,用于向 LLM 客户端提供对 PostgreSQL 数据库的标准化访问,包括执行 SQL 查询、获取表结构、列出 schemas/views/functions、检查慢查询等功能,利用 Kysely ORM 提供类型安全的数据访问。
-
主要功能点
- MCP 工具集: query、describe_table、list_objects、list_schemas、list_indexes、explain_query、search_objects、get_connections、diagnose_database、get_slow_queries 等,覆盖数据库查询、结构描述、对象浏览、性能分析等常用场景
- 资源与数据访问:通过统一的工具接口提供对数据库资源的读取能力
- 安全性与验证:参数化查询、输入校验、基于环境变量的只读模式与 DDL 控制等
- MCP 协议支持:服务器端处理 MCP 请求并返回 JSON-RPC 式响应,兼容多种传输方式(如标准输入输出,WebSocket 等)
-
安装步骤
- 在具备 Node.js 环境的机器上,直接使用 npx 安装并运行:
- 读取仓库自带的 README 里给出的运行方式,使用 npx postgres-mcp-server 即可启动
- 安装依赖后运行示例命令即可启动服务器
- 在具备 Node.js 环境的机器上,直接使用 npx 安装并运行:
-
服务器配置
- 这是给 MCP 客户端(如 Claude Desktop)用来连接的服务器配置。配置文件需要以 JSON 形式提供,描述服务器名称、启动命令及参数、以及数据库连接参数等信息。基于该仓库的实现,配置示例如下(仅为说明性文本,不作为代码块提供):
- server name: "postgres-mcp-server"
- command: "npx"
- args: ["postgres-mcp-server"]
- env 参数(示例)
- DB_HOST: 数据库主机地址(如 127.0.0.1)
- DB_PORT: 数据库端口(如 5432)
- DB_USER: 数据库用户名(如 postgres)
- DB_PASSWORD: 数据库密码
- DB_NAME: 数据库名称(如 postgres)
- DB_SSL: 是否启用 SSL,通常为 "false" 代表本地或非加密连接
- 该配置信息用于 Claude Desktop 等客户端在初始连接阶段识别并启动 MCP 服务器。具体字段含义请参阅客户端文档中的“服务器配置”部分。
- 这是给 MCP 客户端(如 Claude Desktop)用来连接的服务器配置。配置文件需要以 JSON 形式提供,描述服务器名称、启动命令及参数、以及数据库连接参数等信息。基于该仓库的实现,配置示例如下(仅为说明性文本,不作为代码块提供):
-
基本使用方法
- 启动服务器后,在 Claude Desktop 等客户端配置中添加一个 MCP 服务器,指向上述启动命令与参数。
- 使用服务器暴露的工具进行自然语言编排的数据库交互,例如发起查询、获取表结构、查看慢查询等。
- 通过客户端的工具列表(ListTools)获取可用工具名称和输入结构,进行参数化调用。
-
注意事项
- 运行环境需能访问目标 PostgreSQL 数据库,且按需要配置只读/DDL 权限控制。
- 服务器实现依赖 Node.js 环境,确保环境变量配置正确,避免连接错误。