走向mcp postgres
概述
从以下位置复制代码https://github.com/Zhwt/go-mcp-mysql/在人工智能的帮助下,我将db从mysql更改为postgres。 零负担、即用型模型上下文协议(MCP)服务器,用于与Postgres交互和自动化。不需要Node.js或Python环境。该服务器提供对MySQL数据库和表执行CRUD操作的工具,以及防止意外写入操作的只读模式。您还可以使用以下命令使MCP服务器检查查询计划 EXPLAIN 在执行查询之前,通过添加一个 --with-explain-check 旗帜。
请注意,这是一项正在进行的工作,可能尚未准备好投入生产使用。
安装
- 获取最新 发布 把它放在你的
$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"
]
}
}
}注意:对于那些把二进制文件放在你的外部的人 $PATH,你需要更换 go-mcp-postgres 带有二进制文件的完整路径:例如:如果你把二进制文件放在 下载 文件夹,您可以使用以下路径:
{
"mcpServers": {
"postgres": {
"command": "C:\\Users\\\\Downloads\\go-mcp-postgres.exe",
"args": [
...
]
}
}
}方法B:使用sse模式的命令行参数
./go mcp postgres--tsse--ip x.x.x.x--端口nnnn--dsn postgresql://user:pass@主机:端口/db--lang en
可选标志
--lang:设置语言选项(en/zh-CN),默认为系统语言- 添加a
--read-only标志以启用只读模式。在此模式下,只有以开头的工具list,read_和desc_可用。添加此标志后,请确保刷新/重新启动MCP服务器。 - 默认情况下,CRUD查询将首先使用
EXPLAIN ?语句,用于检查生成的查询计划是否与预期模式匹配。添加a--with-explain-check标记以禁用此行为。
工具
_多语言支持:所有工具描述将根据lang参数自动本地化_
如果您想添加自己的语言支持,请参阅\[locale\](适用于i18n)文件夹。 如果要在命令行中使用新的locale/xxx/active-xx.toml文件,则应创建该文件。
架构工具
list_database
- ${mcp.tool.list_database.desc} - 参数:无 - 返回:匹配的数据库名称列表。
list_table
- ${mcp.tool.list_table.desc} - 参数: - name:如果提供,请列出具有指定名称的表;否则,请列出所有表。 - 返回:匹配表名的列表。
create_table
- ${mcp.tool.create_table.desc} - 参数: - query:创建表的SQL查询。 - 返回:受影响的x行。
alter_table
- 更改Postgres服务器中的现有表。通知LLM不要删除现有的表或列。 - 参数: - query:更改表的SQL查询。 - 返回:受影响的x行。
desc_table
- 描述表格的结构。 - 参数: - name:要描述的表的名称。 - 返回值:表的结构。
数据工具
read_query
- 执行只读SQL查询。 - 参数: - query:要执行的SQL查询。 - 返回:查询的结果。
write_query
- 执行写SQL查询。 - 参数: - query:要执行的SQL查询。 - 返回:受影响的x行,最后插入id:\。
update_query
- 执行更新SQL查询。 - 参数: - query:要执行的SQL查询。 - 返回:受影响的x行。
delete_query
- 执行删除SQL查询。 - 参数: - query:要执行的SQL查询。 - 返回:受影响的x行。
count_query
- 查询某个表中的行数。. - 参数: - name:要计数的表的名称。 - 返回值:表的行号。
再次衷心感谢https://gith.com/Zhwt/go-mcp-mysql/。
许可证
麻省理工学院
