PostgreSQL查询服务

MCP PostgreSQL Server是一个提供PostgreSQL数据库查询和模式检查的只读接口服务。

  • by hthuong09
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 hthuong09/postgres-mcp

使用说明

MCP PostgreSQL服务器

这是一个用于与PostgreSQL数据库交互的模型上下文协议服务器。它提供了一个只读接口来查询PostgreSQL数据库并检查它们的模式。

安装

npm install -g @hthuong09/postgres-mcp

配置

服务器可以按优先级顺序以多种方式配置:

  1. 环境变量

    • POSTGRES_URL:完整的数据库URL(例如。, postgres://user:pass@host:5432/dbname)
    • 单个连接参数:
      • POSTGRES_HOST:数据库主机
      • POSTGRES_PORT:数据库端口(默认值:5432)
      • POSTGRES_DB:数据库名称
      • POSTGRES_USER:数据库用户
      • POSTGRES_PASSWORD:数据库密码
      • POSTGRES_SSL:启用SSL模式(设置为“true”以启用)
      • POSTGRES_SCHEMA:数据库架构(默认值:“public”)
    • 附加配置:
      • DOTENV_PATH:.env文件的自定义路径
      • DEBUG_MCP:启用调试日志记录(设置为“true”以启用)
  2. 命令行

    npx @hthuong09/postgres-mcp "postgres://user:pass@host:5432/dbname"
    

资源

  • 表模式:数据库中的每个表都作为资源公开
  • 资源URI格式: postgres://user@host/dbname/table_name/schema
  • 响应格式:列定义的JSON数组(名称和数据类型)

使用示例

  1. 使用环境变量:

    export POSTGRES_HOST=localhost
    export POSTGRES_DB=mydb
    export POSTGRES_USER=myuser
    export POSTGRES_PASSWORD=mypassword
    npx @hthuong09/postgres-mcp
    
  2. 使用连接URL:

    npx @hthuong09/postgres-mcp "postgres://myuser:mypassword@localhost:5432/mydb"
    
  3. 在SSL中使用环境变量:

    export POSTGRES_HOST=db.example.com
    export POSTGRES_DB=mydb
    export POSTGRES_USER=myuser
    export POSTGRES_PASSWORD=mypassword
    export POSTGRES_SSL=true
    npx @hthuong09/postgres-mcp
    
  4. 使用自定义.env文件位置:

    DOTENV_PATH=/path/to/.env npx @hthuong09/postgres-mcp
    

安全考虑

  • 数据库凭据应保持安全
  • 在生产中使用环境变量或.env文件而不是命令行参数,以避免在进程列表中暴露凭据
  • 考虑在生产环境中使用SSL
  • 为了安全起见,服务器只允许只读事务
  • 密码会自动从资源URI中删除

发展

要在本地构建服务器,请执行以下操作:

npm install
npm run build

在开发过程中以观察模式运行:

npm run watch

调试

集 DEBUG_MCP=true 以启用调试日志记录。日志将写入:

  • Unix/macOS: /tmp/postgres-mcp-debug.json
  • 窗户: %TEMP%/postgres-mcp-debug.json

许可证

麻省理工学院