article
README
🚀 go-mcp-postgres
本项目从 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 服务已正确安装并运行,同时采用强密码策略增强安全性,定期备份数据库以防数据丢失。
✨ 主要特性
- 可直接使用 MCP 服务器与 Postgres 及自动化功能交互,无需 Node.js 或 Python 环境。
- 提供对 Postgres 数据库和表的 CRUD 操作工具。
- 具备只读模式,可防止意外写入操作。
- 可通过添加
--with-explain-check标志,在执行查询前使用EXPLAIN语句检查查询计划。
📦 安装指南
方式一:下载发布版本
获取最新 发布版本 并将其放入您的 $PATH 或其他易于访问的位置。
方式二:从源代码构建
若您已经安装了 Go,可以直接从源代码构建:
go install -v github.com/guoling2008/go-mcp-postgres@latest
💻 使用示例
基础用法
方法 A:使用命令行参数进行 stdio 模式
{
"mcpServers": {
"postgres": {
"command": "go-mcp-postgres",
"args": [
"--dsn",
"postgresql://user:pass@host:port/db"
]
}
}
}
方法 B:使用命令行参数进行交互式模式
# 连接 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 许可证。
扫码联系在线客服