使用说明
Postgres MCP
一个轻量级的MCP(模型上下文协议)服务器,用于使用SQL或纯英语命令查询Postgres数据库。它为数据库操作、表自检和具有智能权限处理的查询执行提供了全面的工具。
特性
智能查询权限处理
- 只读查询:自动批准(选择、解释、显示、值)
- 读写查询:需要用户确认(插入、更新、删除、合并)
- 管理员/DDL查询:需要提升权限(CREATE、ALTER、DROP等)
- 干运行模式:验证查询而不执行
综合表反思
- 具有类型和约束的列定义
- 主键和外键关系
- 指数定义
- 触发器和检查约束
数据库管理
- 多数据库切换功能
- 强大的错误处理和回滚
可用工具
| 工具 | 说明 |
|---|---|
execute_raw_query |
执行具有权限验证和模拟运行支持的SQL查询 |
list_tables |
列出所有非系统表 |
describe_tables |
获取全面的表信息,包括列、索引、触发器和约束 |
switch_database |
切换活动数据库连接 |
所需的最小环境变量
POSTGRES_HOSTPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DATABASE
其他环境变量
POSTGRES_PORTPOSTGRES_SSL(布尔值)POSTGRES_VERIFY(布尔值)POSTGRES_SEND_RECEIVE_TIMEOUT(秒)POSTGRES_CONNECT_TIMEOUT(秒)
使用配置 mcpServers JSON
适用于Mac和Linux
{
"mcpServers": {
"postgres-mcp": {
"command": "npx",
"args": ["-y", "@freakynit/postgres-mcp@latest"],
"env": {
"POSTGRES_HOST": "<POSTGRES HOST>",
"POSTGRES_USER": "<POSTGRES USER>",
"POSTGRES_PASSWORD": "<POSTGRES PASSWORD>",
"POSTGRES_DATABASE": "<POSTGRES DATABASE>"
}
}
}
}
适用于 Windows
{
"mcpServers": {
"postgres-mcp": {
"command": "cmd",
"args": ["/k", "npx", "-y", "@freakynit/postgres-mcp@latest"],
"env": {
"POSTGRES_HOST": "<POSTGRES HOST>",
"POSTGRES_USER": "<POSTGRES USER>",
"POSTGRES_PASSWORD": "<POSTGRES PASSWORD>",
"POSTGRES_DATABASE": "<POSTGRES DATABASE>"
}
}
}
}
开发文档
先决条件
- Node.js
- PostgreSQL服务器
安装
npm i -g @freakynit/postgres-mcp
或
git clone https://github.com/freakynit/postgres-mcp.git
cd postgres-mcp
npm install
配置
创建一个 .env 项目根目录中的文件,包含以下变量:
# PostgreSQL
POSTGRES_HOST=your-db-host
POSTGRES_PORT=5432 # Optional, default 5432
POSTGRES_USER=your-username
POSTGRES_PASSWORD=your-password
POSTGRES_DATABASE=your-database
# SSL settings (optional)
POSTGRES_SSL=false # Or true
POSTGRES_VERIFY=false # Verify server cert if SSL true
# Timeouts (optional, seconds)
POSTGRES_SEND_RECEIVE_TIMEOUT=60 # Query timeout
POSTGRES_CONNECT_TIMEOUT=60 # Connection timeout
用法
地方发展
启动服务器(从中启动 stdio 模式):
node src/index.js
与MCP检查员一起
调试和开发:
npx @modelcontextprotocol/inspector node src/index.js
使用MCP检查器进行调试
npx @modelcontextprotocol/inspector node src/index.js
许可证
该项目根据MIT许可证获得许可。看 许可证 了解详情。