一个提供AI代理直接访问MySQL数据库的模型上下文协议(MCP)服务器。此服务器使AI模型能够通过一组定义良好的工具查询、搜索和分析MySQL数据库内容。
最简单的方式是使用Docker来运行MySQL MCP服务器:
# 拉取最新镜像(默认为stdio模式)
docker pull ghcr.io/sagenkoder/go-mysql-mcp-server:latest
# 或拉取特定模式
docker pull ghcr.io/sagenkoder/go-mysql-mcp-server:stdio
docker pull ghcr.io/sagenkoder/go-mysql-mcp-server:http
docker pull ghcr.io/sagenkoder/go-mysql-mcp-server:interactive
# 连接到主机上的MySQL
docker run -i --rm \
--network host \
-e MYSQL_HOST=localhost \
-e MYSQL_USER=your_user \
-e MYSQL_PASSWORD=your_password \
-e MYSQL_DATABASE=your_database \
ghcr.io/sagenkoder/go-mysql-mcp-server:stdio
# 在8080端口上运行HTTP服务器
docker run -d \
--name mysql-mcp-http \
--network host \
-p 8080:8080 \
-e MYSQL_HOST=localhost \
-e MYSQL_USER=your_user \
-e MYSQL_PASSWORD=your_password \
ghcr.io/sagenkoder/go-mysql-mcp-server:http
# 以交互模式运行
docker run -it --rm \
--network host \
-e MYSQL_HOST=localhost \
-e MYSQL_USER=your_user \
-e MYSQL_PASSWORD=your_password \
ghcr.io/sagenkoder/go-mysql-mcp-server:interactive
如果您的MySQL也在Docker中运行,请使用Docker网络:
# 创建一个网络
docker network create myapp
# 运行MySQL(示例)
docker run -d \
--name mysql \
--network myapp \
-e MYSQL_ROOT_PASSWORD=rootpass \
-e MYSQL_DATABASE=mydb \
mysql:8
# 运行MCP服务器
docker run -i --rm \
--network myapp \
-e MYSQL_HOST=mysql \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=rootpass \
-e MYSQL_DATABASE=mydb \
ghcr.io/sagenkoder/go-mysql-mcp-server:stdio
在您的Claude Desktop配置文件中添加以下内容:
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--network", "host",
"-e", "MYSQL_HOST=localhost",
"-e", "MYSQL_USER=your_user",
"-e", "MYSQL_PASSWORD=your_password",
"-e", "MYSQL_DATABASE=your_database",
"ghcr.io/sagenkoder/go-mysql-mcp-server:stdio"
]
}
}
}
如果您更喜欢直接使用二进制文件:
{
"mcpServers": {
"mysql": {
"command": "/path/to/mysql-mcp-stdio",
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_user",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
# 克隆仓库
git clone https://github.com/sagenkoder/go-mysql-mcp-server.git
cd go-mysql-mcp-server
# 构建所有二进制文件
./build.sh
# 构建Docker镜像
./build.sh docker
这将创建:
mysql-mcp-stdio - 用于基于stdio的MCP通信mysql-mcp-http - HTTP服务器模式mysql-mcp-interactive - 用于测试的交互式CLI模式ghcr.io/sagenkoder/go-mmysql-mcp-server:stdio(也标记为mysql-mcp:latest)ghcr.io/sagenkoder/go-mysql-mcp-server:httpghcr.io/sagenkoder/go-mysql-mcp-server:interactive服务器通过这些环境变量连接到MySQL:
MYSQL_HOST - MySQL服务器主机名(默认:localhost)MYSQL_PORT - MySQL服务器端口(默认:3306)MYSQL_USER - MySQL用户名(默认:root)MYSQL_PASSWORD - MySQL密码(必需)MYSQL_DATABASE - 默认数据库(可选)列出MySQL服务器中可用的所有模式/数据库。
参数:
page(可选):分页的页数(默认:1)page_size(可选):每页的项目数量(默认:20,最大:100)列出特定模式中的所有表及其元数据。
参数:
schema(必需):模式/数据库名称page(可选):分页的页数page_size(可选):每页的项目数量获取表的详细列和索引信息。
参数:
schema(必需):模式/数据库名称table(必需):表名称获取特定表的CREATE TABLE语句。
参数:
schema(必需):模式/数据库名称table(必需):表名称执行SQL查询(仅限SELECT、SHOW、DESCRIBE、EXPLAIN)。
参数:
query(必需):要执行的SQL查询limit(可选):返回的最大行数(默认:100)在表的所有文本列中搜索值。
参数:
schema(必需):模式/数据库名称table(必需):表名称search_term(必需):要搜索的词limit(可选):返回的最大行数(默认:100)使用交互模式测试您的连接:
# 使用Docker
docker run -it --rm \
--network host \
-e MYSQL_HOST=localhost \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=test \
ghcr.io/sagenkoder/go-mysql-mcp-server:interactive
# 使用二进制文件
MYSQL_USER=test MYSQL_PASSWORD=test ./mysql-mcp-interactive
--network host)mysql -h localhost -u user -p--network host连接到主机上的MySQLMIT许可证 - 详情见LICENSE文件。 </中文翻译>