go-mcp-mysql
概述
零负担、即用型模型上下文协议(MCP)服务器,用于与MySQL交互和自动化。无需Node.js或Python环境。该服务器提供在MySQL数据库和表上执行CRUD操作的工具,以及只读模式以防止意外写入操作。您还可以通过在执行查询前添加EXPLAIN语句,并使用--with-explain-check标志让MCP服务器检查查询计划。
请注意,这是一个进行中的项目,可能尚未准备好用于生产环境。
安装
-
获取最新版本并将其放入您的
$PATH或易于访问的位置。 -
或者,如果您已安装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": [
...
]
}
}
}
可选标志
- 添加
--read-only标志以启用只读模式。在此模式下,仅提供以list、read_和desc_开头的工具。添加此标志后,请刷新/重启MCP服务器。 - 默认情况下,CRUD查询将首先使用
EXPLAIN ?语句执行以检查生成的查询计划是否与预期模式匹配。添加--with-explain-check标志以禁用此行为。
工具
模式工具
-
list_database- 列出MySQL服务器中的所有数据库。
- 参数:无
- 返回:匹配的数据库名称列表。
-
list_table- 列出MySQL服务器中的所有表。
- 参数:
name:如果提供,列出指定名称的表,与SQLSHOW TABLES LIKE '%name%'相同。否则,列出所有表。
- 返回:匹配的表名称列表。
-
create_table- 在MySQL服务器中创建新表。
- 参数:
query:创建表的SQL查询。
- 返回:受影响的行数。
-
alter_table- 修改MySQL服务器中的现有表。LLM被通知不要删除现有表或列。
- 参数:
query:修改表的SQL查询。
- 返回:受影响的行数。
-
desc_table- 描述表的结构。
- 参数:
name:要描述的表的名称。
- 返回:表的结构。
数据工具
-
read_query- 执行只读SQL查询。
- 参数:
query:要执行的SQL查询。
- 返回:查询结果。
-
write_query- 执行写入SQL查询。
- 参数:
query:要执行的SQL查询。
- 返回:受影响的行数,最后插入ID:<last_insert_id>。
-
update_query- 执行更新SQL查询。
- 参数:
query:要执行的SQL查询。
- 返回:受影响的行数。
-
delete_query- 执行删除SQL查询。
- 参数:
query:要执行的SQL查询。
- 返回:受影响的行数。
许可证
MIT