关于 Postgresql Mcp Ddz
Postgresql Mcp Ddz 是用于操作 PostgreSQL 数据库的 MCP 服务。它支持参数化查询和数据修改,也提供结构查看与查询计划分析功能。
主要功能
- 01执行参数化 SELECT 查询
- 02插入、更新和删除数据
- 03列出数据表并查看结构
- 04使用 EXPLAIN 分析查询
- 05通过环境变量连接
适用场景
- 01让 AI 助手查询 PostgreSQL 数据
- 02使用参数化 SQL 修改数据行
- 03检查表结构和键
- 04查看查询计划以分析性能
MCP 相关
向 MCP 客户端提供 PostgreSQL 连接、查询、执行、结构检查和分析工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| host | string | 是 | 数据库主机 |
| port | number | 否 | 数据库端口(默认值:5432) |
| user | string | 是 | 数据库用户 |
| password | string | 是 | 数据库密码 |
| database | string | 是 | 数据库名称 |
详细介绍
来自项目 READMEPostgreSQL MCP Server
一个基于模型上下文协议(MCP)的 PostgreSQL 数据库操作服务器,让 AI 助手能够通过标准化接口与 PostgreSQL 数据库交互。
功能特性
- 查询执行:执行带参数化的 SELECT 查询
- 数据修改:执行 INSERT、UPDATE、DELETE 操作
- 结构查询:列出数据库表、查看表结构
- 性能分析:使用 EXPLAIN 分析查询性能
- 连接管理:支持环境变量自动连接,安全可靠
安装
npm install postgresql-mcp-ddz
或直接使用 npx:
npx postgresql-mcp-ddz
配置
方式一:环境变量自动连接(推荐)
在 MCP 客户端配置中添加环境变量,服务器启动时会自动连接数据库:
{
"mcpServers": {
"postgresql-mcp-ddz": {
"command": "npx",
"args": ["postgresql-mcp-ddz"],
"env": {
"POSTGRES_HOST": "127.0.0.1",
"POSTGRES_PORT": "5432",
"POSTGRES_USER": "postgres",
"POSTGRES_PASSWORD": "your_password",
"POSTGRES_DB": "your_database"
}
}
}
}
支持的环境变量:
| 变量名 | 说明 | 必填 |
|---|---|---|
POSTGRES_HOST | 数据库主机地址 | 是 |
POSTGRES_PORT | 数据库端口(默认 5432) | 否 |
POSTGRES_USER | 数据库用户名 | 是 |
POSTGRES_PASSWORD | 数据库密码 | 是 |
POSTGRES_DB | 数据库名称 | 是 |
方式二:手动连接
不在配置中添加环境变量时,需要通过 connect_db 工具手动连接:
{
"mcpServers": {
"postgresql": {
"command": "npx",
"args": ["postgresql-mcp-ddz"]
}
}
}
可用工具
connect_db
连接到 PostgreSQL 数据库(环境变量配置后可省略此步骤)。
参数:
host(字符串,必填):数据库主机地址port(数字,可选):数据库端口,默认 5432user(字符串,必填):数据库用户名password(字符串,必填):数据库密码database(字符串,必填):数据库名称
示例:
{
"host": "localhost",
"port": 5432,
"user": "postgres",
"password": "password",
"database": "mydb"
}
query
执行 SELECT 查询并返回结果。
参数:
sql(字符串,必填):SQL SELECT 查询语句params(数组,可选):查询参数
示例:
{
"sql": "SELECT * FROM users WHERE age > $1",
"params": [18]
}
execute
执行 INSERT、UPDATE 或 DELETE 查询。
参数:
sql(字符串,必填):SQL 语句params(数组,可选):查询参数
示例:
{
"sql": "INSERT INTO users (name, email) VALUES ($1, $2)",
"params": ["张三", "[email protected]"]
}
list_tables
列出当前数据库中的所有表。
describe_table
获取指定表的结构信息,包括列、主键和外键。
参数:
table(字符串,必填):表名
示例:
{
"table": "users"
}
explain
使用 EXPLAIN 分析 SQL 查询性能。
参数:
sql(字符串,必填):要分析的 SQL 查询
示例:
{
"sql": "SELECT * FROM users WHERE email = '[email protected]'"
}
show_statement
执行 SHOW 语句。
参数:
sql(字符串,必填):SHOW SQL 语句
示例:
{
"sql": "SHOW ALL"
}
安全说明
query工具仅允许 SELECT、SHOW、EXPLAIN 和 WITH 查询- 数据修改操作请使用
execute工具 - 所有查询支持参数化输入,防止 SQL 注入
- 数据库凭据仅在运行时传递,不会被持久化存储
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。