VOOZH about

URL: https://glama.ai/mcp/servers/xiangma9712/mysql-mcp-server?locale=zh-CN

⇱ MySQL MCP 服务器 by xiangma9712 | Glama


MySQL MCP 服务器

用于与 MySQL 数据库交互的 MCP 服务器。

该服务器支持执行只读查询(query)和最终回滚的写查询(test_execute)。

设置

环境变量

将以下环境变量添加到~/.mcp/.env

MYSQL_HOST=host.docker.internal # Hostname to access host services from Docker container
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password

注意host.docker.internal是一个特殊的 DNS 名称,用于从 Docker 容器访问主机服务。连接到主机上运行的 MySQL 服务器时请使用此设置。如果连接到其他 MySQL 服务器,请更改为相应的主机名。

mcp.json 配置

{
 "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"
 ]
 }
 }
}

Related MCP server: MCP MySQL Server

用法

启动服务器

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选项。

可用命令

1.执行只读查询

{
 "type": "query",
 "payload": {
 "sql": "SELECT * FROM your_table"
 }
}

回复:

{
 "success": true,
 "data": [
 {
 "id": 1,
 "name": "example"
 }
 ]
}

2.测试查询执行

{
 "type": "test_execute",
 "payload": {
 "sql": "UPDATE your_table SET name = 'updated' WHERE id = 1"
 }
}

回复:

{
 "success": true,
 "data": "The UPDATE SQL query can be executed."
}

3. 列出表格

{
 "type": "list_tables"
}

回复:

{
 "success": true,
 "data": ["table1", "table2", "table3"]
}

4.描述表

{
 "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": ""
 }
 ]
}

实现细节

  • 使用 TypeScript 实现

  • 使用 mysql2 包

  • 作为 Docker 容器运行

  • 通过标准输入接受 JSON 命令

  • 通过标准输出返回 JSON 响应

  • 使用host.docker.internal连接到主机 MySQL(兼容 OrbStack 和 Docker Desktop)

安全注意事项

  • 使用环境变量进行敏感信息管理

  • 预防 SQL 注入是实施者的责任

  • 生产使用需要正确的网络配置

  • 连接主机服务时需要适当的防火墙设置

A
license - permissive license
B
quality
F
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xiangma9712/mysql-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server