MCP Postgres Query Server

MCP Postgres Query Server

site icon
2025.03.09 0
TypeScript数据库查询PostgreSQL 接口数据库
MCP Postgres Query Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,专门用于以只读模式查询 PostgreSQL 数据库。该服务器设计用于与 Claude Desktop 和其他 MCP 客户端协同工作,提供安全、高效的数据库查询功能。
View on GitHub

Overview

基本能力

产品定位

MCP Postgres Query Server 是一个专门为 PostgreSQL 数据库提供只读查询服务的 MCP 服务器实现。

核心功能

  1. 提供安全的只读接口访问 PostgreSQL 数据库
  2. 通过 MCP 协议与 Claude Desktop 集成
  3. SQL 查询验证,确保只执行 SELECT 查询
  4. 查询超时保护(10秒)
  5. JSON 响应格式化,查询结果以结构化 JSON 格式返回

适用场景

  1. 需要安全访问 PostgreSQL 数据库的只读查询场景
  2. 与 Claude Desktop 集成的数据库查询需求
  3. 需要防止潜在有害 SQL 操作的安全环境

工具列表

  1. query-postgres: 执行针对配置的 PostgreSQL 数据库的只读 SQL 查询
  2. 参数: query (string): 要执行的 SQL SELECT 查询
  3. 响应: JSON 对象,包含:
    • rows: 结果集行
    • rowCount: 返回的行数
    • fields: 列元数据

常见问题解答

  1. 如何更新配置?
  2. 打开 Claude Desktop
  3. 转到 Settings > Developer > Edit Config
  4. 对配置文件进行更改
  5. 保存文件
  6. 重启 Claude Desktop 使更改生效
  7. 如果更新了 MCP 服务器代码,确保在重启前使用 npm run build 重新构建

  8. 安全考虑

  9. 服务器验证所有查询以确保它们是只读的
  10. 数据库连接使用 SSL
  11. 查询超时防止资源耗尽
  12. 不允许写操作
  13. 数据库凭证通过命令行参数直接传递,不存储在文件中

使用教程

使用依赖

  • Node.js (v14 或更高版本)
  • npm (随 Node.js 一起安装)
  • PostgreSQL 数据库 (通过命令行提供连接详情)

安装教程

# 克隆仓库
git clone https://github.com/RathodDarshil/mcp-postgres-query-server.git
cd mcp-postgres-query-server

# 安装依赖
npm install

# 构建项目
npm run build

调试方式

  1. 修改服务器行为:
  2. 编辑 src/index.ts 中的 isReadOnlyQuery() 函数修改查询验证逻辑
  3. 向 MCP 服务器添加额外的工具或资源
  4. 修改查询超时持续时间(当前为 10 秒)

  5. 配置 Claude Desktop 自动启动并连接到 MCP 服务器:

  6. 打开 Claude Desktop
  7. 转到 Settings > Developer > Edit Config
  8. claude_desktop_config.jsonmcpServers 部分添加 postgres-query-server
  9. 替换 /path/to/your/ 为项目目录的实际路径
  10. 替换 PostgreSQL 连接字符串为实际的数据库凭证
  11. 保存文件并重启 Claude Desktop

示例配置:

{
    "mcpServers": {
        "postgres-query": {
            "command": "node",
            "args": [
                "/Users/darshilrathod/mcp-servers/mcp-postgres-query-server/dist/index.js",
                "postgresql://user:password@localhost:5432/mydatabase"
            ]
        }
    }
}

许可证

该项目遵循 ISC 开源许可条款。