本项目从 https://github.com/Zhwt/go-mcp-mysql/ 复制代码,并借助 AI 将数据库从 MySQL 改为 PostgreSQL。可直接使用 Model Context Protocol (MCP) 服务器与 Postgres 及自动化功能交互,无需 Node.js 或 Python 环境。该服务器提供对 Postgres 数据库和表的 CRUD 操作工具,还有只读模式防止意外写入。还能通过添加 --with-explain-check
标志,让 MCP 服务器在执行查询前用 EXPLAIN
语句检查查询计划。
本项目仍在开发中,可能还不适用于生产环境。使用前请确保 PostgreSQL 服务已正确安装并运行,同时采用强密码策略增强安全性,定期备份数据库以防数据丢失。
--with-explain-check
标志,在执行查询前使用 EXPLAIN
语句检查查询计划。获取最新 发布版本 并将其放入您的 $PATH
或其他易于访问的位置。
若您已经安装了 Go,可以直接从源代码构建:
go install -v github.com/guoling2008/go-mcp-postgres@latest
{
"mcpServers": {
"postgres": {
"command": "go-mcp-postgres",
"args": [
"--dsn",
"postgresql://user:pass@host:port/db"
]
}
}
}
# 连接 PostgreSQL 数据库
go-mcp-postgres postgresql://user:password@host:port/db
在执行查询前,可添加 --with-explain-check
标志,使 MCP 服务器使用 EXPLAIN
语句检查查询计划。
--dsn
或 -d
:指定数据库连接字符串。--driver
或 -D
:指定数据库驱动(默认为 postgres
)。\help
:显示所有可用命令。\list
:列出所有数据库。\tables
:列出当前数据库中的表。\schema
:显示表结构。\exit
或 \q
:退出程序。CREATE DATABASE database_name;
DROP DATABASE database_name;
\c database_name;
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);
DROP TABLE table_name;
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
UPDATE table_name
SET column1 = new_value1,
column2 = new_value2,
...
WHERE condition;
DELETE FROM table_name
WHERE condition;
SELECT column1, column2, ...
FROM table_name
[WHERE condition];
GRANT ALL PRIVILEGES ON DATABASE database_name TO username;
REVOKE ALL PRIVILEGES ON DATABASE database_name FROM username;
本项目采用 MIT 许可证。