mcpField
G
go-mcp-mysql

go-mcp-mysql

本地服务
github.com/optimisticdur数据库074 周前更新

关于 go-mcp-mysql

go-mcp-mysql 是一个基于 Go 的 MCP 服务,用于操作 MySQL 数据库和表。它提供结构管理及 CRUD 工具,并支持只读模式和可选的查询计划检查;项目说明目前可能尚不适合生产环境。

主要功能

  1. 01列出数据库和表
  2. 02创建和修改表
  3. 03读取及修改数据
  4. 04只读操作模式
  5. 05EXPLAIN 查询计划检查

适用场景

  1. 01检查 MySQL 数据库结构
  2. 02查询数据库记录
  3. 03管理表定义
  4. 04限制为只读访问

MCP 相关

向 MCP 客户端提供 MySQL 结构和数据操作工具。客户端可启用只读模式,查询执行也可包含 EXPLAIN 计划检查。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

go-mcp-mysql

概述

零负担、开箱即用的 Model Context Protocol(MCP)服务,用于与 MySQL 交互并实现自动化。无需 Node.js 或 Python 环境。此服务提供用于对 MySQL 数据库和表执行 CRUD 操作的工具,并提供只读模式,以防止意外执行写入操作。你还可以添加 --with-explain-check 标志,让 MCP 服务在执行查询前使用 EXPLAIN 语句检查查询计划。

请注意,此项目仍在开发中,可能尚未达到生产环境使用的条件。

安装

  1. 获取最新的发行版,并将其放入 $PATH 或其他方便访问的位置。

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

go install -v github.com/optimisticdur/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 查询。
    • 返回:受影响的行数。
  4. alter_table

    • 修改 MySQL 服务中的现有表。系统会告知大模型不要删除现有表或列。
    • 参数:
      • query:用于修改表的 SQL 查询。
    • 返回:受影响的行数。
  5. desc_table

    • 描述表的结构。
    • 参数:
      • name:要描述的表的名称。
    • 返回:表的结构。
数据工具
  1. read_query

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

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

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

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

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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