一种模型上下文协议服务器,可实现与PostgreSQL数据库的交互,以列出表、检索模式和执行只读SQL查询。
databases
2.0k 查看 · 2026-07-07 更新
简介
一种模型上下文协议服务器,可实现与PostgreSQL数据库的交互,以列出表、检索模式和执行只读SQL查询。
简介
一种模型上下文协议服务器,可实现与PostgreSQL数据库的交互,以列出表、检索模式和执行只读SQL查询。
MCP PostgreSQL 服务器
这是一个用于与 PostgreSQL 数据库交互的模型上下文协议服务器。它提供了一个只读接口,可以查询 PostgreSQL 数据库并检查其架构。
安装
npm install -g @hthuong09/postgres-mcp
配置
服务器可以通过多种方式进行配置,按优先级顺序列出如下:
-
环境变量
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' 以启用)
-
命令行
npx @hthuong09/postgres-mcp "postgres://user:pass@host:5432/dbname"
资源
- 表架构:数据库中的每个表都作为资源公开
- 资源 URI 格式:
postgres://user@host/dbname/table_name/schema - 响应格式:列定义的 JSON 数组(名称和数据类型)
使用示例
-
使用环境变量:
export POSTGRES_HOST=localhost export POSTGRES_DB=mydb export POSTGRES_USER=myuser export POSTGRES_PASSWORD=mypassword npx @hthuong09/postgres-mcp -
使用连接 URL:
npx @hthuong09/postgres-mcp "postgres://myuser:mypassword@localhost:5432/mydb" -
使用带有 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 -
使用自定义 .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 - Windows:
%TEMP%/postgres-mcp-debug.json
许可证
MIT
来源
- 来源:github
- 链接:https://github.com/hthuong09/postgres-mcp