mcpField
G
go-mcp-mysql

go-mcp-mysql

本地服务
github.com/Zhwt数据库6640 周前更新

关于 go-mcp-mysql

go-mcp-mysql 是一个用 Go 编写的 MCP 服务,用于操作 MySQL 数据库,无需 Node.js 或 Python 环境。它提供 CRUD 工具,并可选只读模式。项目目前仍处于开发阶段,文档注明尚不适用于生产环境。

主要功能

  1. 01提供数据库、表的查询与结构描述工具
  2. 02提供读取、写入、更新、删除查询工具
  3. 03支持只读模式,限制可用工具
  4. 04可选在执行前使用 EXPLAIN 检查查询计划

适用场景

  1. 01让 AI 助手浏览 MySQL 数据库结构
  2. 02在只读模式下让 LLM 安全查询业务数据

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端提供 MySQL 的架构查询与数据操作工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

go-mcp-mysql

Trust Score

概述

零负担、开箱即用的模型上下文协议(MCP)服务,用于与 MySQL 交互和自动化。无需 Node.js 或 Python 环境。此服务提供用于对 MySQL 数据库和表执行 CRUD 操作的工具,以及可防止意外写入操作的只读模式。你还可以添加 --with-explain-check 标志,让 MCP 服务在执行查询前使用 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 替换为二进制文件的完整路径。例如:如果将二进制文件放在 Downloads 文件夹中,可以使用以下路径:

{
  "mcpServers": {
    "mysql": {
      "command": "C:\\Users\\<username>\\Downloads\\go-mcp-mysql.exe",
      "args": [
        ...
      ]
    }
  }
}
可选标志
  • 添加 --read-only 标志以启用只读模式。在此模式下,只有以 list、read_ 和 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 查询。
    • 返回:受影响的 x 行。
  4. alter_table

    • 修改 MySQL 服务中的现有表。系统会告知大模型不要删除现有表或列。
    • 参数:
      • 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 行。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。