首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
Postgres MCP 服务器2026-10-23294分享添加福利群:解决AI开发者的「MCP实战痛点」
什么是go-mcp-postgres? go-mcp-postgres 是一个用于与 Postgres 数据库交互的模型上下文协议(MCP)服务器,它允许在无需 Node.js 或 Python 环境的情况下轻松执行 CRUD 操作和自动化任务。
By guoling2008
2026-10-23294
github
详情内容

go-mcp-postgres

概述

从 https://github.com/Zhwt/go-mcp-mysql/ 复制代码,并在 AI 的帮助下,将数据库从 MySQL 改为 PostgreSQL。 零负担、即开即用的模型上下文协议(MCP)服务器,用于与 PostgreSQL 交互和自动化。无需 Node.js 或 Python 环境。该服务器提供了在 MySQL 数据库和表上进行 CRUD 操作的工具,以及一个只读模式,以防止意外的写操作。你还可以通过添加 --with-explain-check 标志,让 MCP 服务器在执行查询之前使用 EXPLAIN 语句检查查询计划。

请注意,这是一个正在进行中的项目,可能尚未准备好用于生产环境。

安装

  1. 获取最新的 发布版本,并将其放入你的 $PATH 或你容易访问的地方。

  2. 或者,如果你已经安装了 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 替换为二进制文件的完整路径:例如,如果你将二进制文件放在 Downloads 文件夹中,你可以使用以下路径:

{
  "mcpServers": {
    "postgres": {
      "command": "C:\\Users\\<username>\\Downloads\\go-mcp-postgres.exe",
      "args": [
        ...
      ]
    }
  }
}

方法 B:使用命令行参数进行 sse 模式

./go-mcp-postgres --t sse --ip x.x.x.x --port nnnn --dsn postgresql://user:pass@host:port/db --lang en

可选标志

  • --lang:设置语言选项(en/zh-CN),默认为系统语言
  • 添加 --read-only 标志以启用只读模式。在此模式下,只有以 list、read_ 和 desc_ 开头的工具可用。添加此标志后,请确保刷新/重启 MCP 服务器。
  • 默认情况下,CRUD 查询将首先使用 EXPLAIN ? 语句执行,以检查生成的查询计划是否符合预期模式。添加 --with-explain-check 标志以禁用此行为。

工具

多语言支持:所有工具描述将根据 lang 参数自动本地化

如果你想添加自己的语言支持,请参考 [locales](for i18n) 文件夹。 如果你想在命令行中使用它,应该创建新的 locales/xxx/active-xx.toml 文件。

模式工具

  1. list_database

    • ${mcp.tool.list_database.desc}
    • 参数:无
    • 返回:匹配的数据库名称列表。
  2. list_table

    • ${mcp.tool.list_table.desc}
    • 参数:
      • name:如果提供,列出具有指定名称的表,否则列出所有表。
    • 返回:匹配的表名称列表。
  3. create_table

    • ${mcp.tool.create_table.desc}
    • 参数:
      • query:用于创建表的 SQL 查询。
    • 返回:x 行受影响。
  4. alter_table

    • 在 PostgreSQL 服务器中修改现有表。LLM 被告知不要删除现有表或列。
    • 参数:
      • query:用于修改表的 SQL 查询。
    • 返回:x 行受影响。
  5. desc_table

    • 描述表的结构。
    • 参数:
      • name:要描述的表的名称。
    • 返回:表的结构。

数据工具

  1. read_query

    • 执行只读 SQL 查询。
    • 参数:
      • query:要执行的 SQL 查询。
    • 返回:查询结果。
  2. write_query

    • 执行写 SQL 查询。
    • 参数:
      • query:要执行的 SQL 查询。
    • 返回:x 行受影响,最后插入的 id:<last_insert_id>。
  3. update_query

    • 执行更新 SQL 查询。
    • 参数:
      • query:要执行的 SQL 查询。
    • 返回:x 行受影响。
  4. delete_query

    • 执行删除 SQL 查询。
    • 参数:
      • query:要执行的 SQL 查询。
    • 返回:x 行受影响。
  5. count_query

    • 查询某个表中的行数。
    • 参数:
      • name:要计数的表的名称。
    • 返回:表的行数。

再次感谢 https://github.com/Zhwt/go-mcp-mysql/。

许可证

MIT

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档