MySQL协议服务器

一个零负担、即用型的MySQL模型上下文协议(MCP)服务器,提供CRUD操作和只读模式,无需Node.js或Python环境。

  • by Zhwt
  • Go
  • 本地部署
  • 66 星标
  • 更新于
在 GitHub 查看 Zhwt/go-mcp-mysql

使用说明

转到mcp mysql

概述

零负担、即用型模型上下文协议(MCP)服务器,用于与MySQL交互和自动化。不需要Node.js或Python环境。该服务器提供对MySQL数据库和表执行CRUD操作的工具,以及防止意外写入操作的只读模式。您还可以使用以下命令使MCP服务器检查查询计划 EXPLAIN 在执行查询之前,通过添加一个 --with-explain-check 旗帜。

请注意,这是一项正在进行的工作,可能尚未准备好投入生产使用。

安装

  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\\<username>\\Downloads\\go-mcp-mysql.exe",
      "args": [
        ...
      ]
    }
  }
}

可选标志

  • 添加a --read-only 标志以启用只读模式。在此模式下,只有以开头的工具 list, read_ 和 desc_ 可用。添加此标志后,请确保刷新/重新启动MCP服务器。
  • 默认情况下,CRUD查询将首先使用 EXPLAIN ? 语句,用于检查生成的查询计划是否与预期模式匹配。添加a --with-explain-check 标记以禁用此行为。

工具

架构工具

  1. list_database

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

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

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

    • 更改MySQL服务器中的现有表。通知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行。

许可证

麻省理工学院