返回市场
-go-mcp-MySQL

-go-mcp-MySQL

作者:Zhwt46 星标更新:2025-08-19

项目介绍

go-mcp-mysql

信任评分

概述

零负担,即用型模型上下文协议(MCP)服务器,用于与MySQL进行交互和自动化操作。无需Node.js或Python环境。此服务器提供了对MySQL数据库和表执行CRUD操作的工具,并提供只读模式以防止意外写入操作。您还可以通过在执行查询前添加--with-explain-check标志来使用EXPLAIN语句检查查询计划。

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

安装

  1. 获取最新发布版本,并将其放置在您的$PATH中或您可以轻松访问的位置。

  2. 或者,如果您已安装Go,可以从源代码构建:

go install -v github.com/Zhwt/go-mcp-mysql@latest

使用方法

方法A:使用命令行参数

{
  "mcpServers": {
    "mysql": {
      "command": "go-mcp-mysql",
      "args": [
        "--host", "localhost",
        "--user", "root",
        "--pass", "password",
        "--port", "3306",
        "--db", "mydb"
      ]
    }
  }
}

方法B:使用带有自定义选项的DSN

{
  "mcpServers": {
    "mysql": {
      "command": "go-mcp-mysql",
      "args": [
        "--dsn", "username:password@tcp(localhost:3306)/mydb?parseTime=true&loc=Local"
      ]
    }
  }
}

请参阅MySQL DSN获取更多详细信息。

注意:对于那些将二进制文件放在$PATH之外的人,您需要将go-mcp-mysql替换为二进制文件的完整路径:例如,如果您将二进制文件放在下载文件夹中,您可以使用以下路径:

{
  "mcpServers": {
    "mysql": {
      "command": "C:\\Users\\<用户名>\\Downloads\\go-mcp-mysql.exe",
      "args": [
        ...
      ]
    }
  }
}

可选标志

  • 添加一个--read-only标志以启用只读模式。在这种模式下,只有以listread_desc_开头的工具可用。确保在添加此标志后刷新/重启MCP服务器。
  • 默认情况下,CRUD查询将首先使用EXPLAIN ?语句执行,以检查生成的查询计划是否符合预期模式。添加一个--with-explain-check标志以禁用此行为。

工具

架构工具

  1. list_database

    • 列出MySQL服务器中的所有数据库。
    • 参数:无
    • 返回值:匹配的数据库名称列表。
  2. list_table

    • 列出MySQL服务器中的所有表。
    • 参数:
      • name:如果提供,则列出具有指定名称的表,类似于SQL SHOW TABLES LIKE '%name%'。否则,列出所有表。
    • 返回值:匹配的表名列表。
  3. create_table

    • 在MySQL服务器中创建新表。
    • 参数:
      • query:用于创建表的SQL查询。
    • 返回值:受影响的行数。
  4. alter_table

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

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

数据工具

  1. read_query

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

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

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

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

许可证

MIT