用于与 MySQL 数据库进行交互的 MCP 服务器。
此服务器支持执行只读查询(query)以及最终回滚的写入查询(test_execute)。
<a href="https://glama.ai/mcp/servers/kucglstegf"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=859361716,2601112304&fm=3081&app=3081&f=PNG?w=760&h=400" alt="MySQL Server MCP 服务器" /> </a>在 ~/.mcp/.env 文件中添加以下环境变量:
MYSQL_HOST=host.docker.internal # 从 Docker 容器访问主机服务的主机名
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
注意:
host.docker.internal是一个特殊的 DNS 名称,用于从 Docker 容器访问主机上的服务。 当连接到运行在主机上的 MySQL 服务器时,请使用此设置。 如果连接到其他 MySQL 服务器,请更改为主机名。
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--add-host=host.docker.internal:host-gateway",
"--env-file",
"/Users/username/.mcp/.env",
"ghcr.io/xiangma9712/mcp/mysql"
]
}
}
}
docker run -i --rm --add-host=host.docker.internal:host-gateway --env-file ~/.mcp/.env ghcr.io/xiangma9712/mcp/mysql
注意:如果您使用的是 OrbStack,
host.docker.internal是自动支持的,因此可以省略--add-host选项。 虽然 Docker Desktop 通常也自动支持这一点,但建议添加--add-host选项以提高可靠性。
{
"type": "query",
"payload": {
"sql": "SELECT * FROM your_table"
}
}
响应:
{
"success": true,
"data": [
{
"id": 1,
"name": "example"
}
]
}
{
"type": "test_execute",
"payload": {
"sql": "UPDATE your_table SET name = 'updated' WHERE id = 1"
}
}
响应:
{
"success": true,
"data": "The UPDATE SQL query can be executed."
}
{
"type": "list_tables"
}
响应:
{
"success": true,
"data": ["table1", "table2", "table3"]
}
{
"type": "describe_table",
"payload": {
"table": "your_table"
}
}
响应:
{
"success": true,
"data": [
{
"Field": "id",
"Type": "int(11)",
"Null": "NO",
"Key": "PRI",
"Default": null,
"Extra": ""
},
{
"Field": "name",
"Type": "varchar(255)",
"Null": "YES",
"Key": "",
"Default": null,
"Extra": ""
}
]
}
host.docker.internal 连接到主机 MySQL(兼容 OrbStack 和 Docker Desktop)