MySQL架构MCP服务器
这是一个模型上下文协议(MCP)服务器,为MySQL数据库提供压缩的模式信息。 当您使用的是大型数据库模式,导致模式转储文件不符合上下文大小时,此MCP服务器非常有用。
https://github.com/user-attachments/assets/0cecef84-cd70-4f84-95cb-01c6ec7c9ac7
提供的工具
- 列表表格(
list_tables)
- 列出指定数据库中的所有表信息。包括表名、注释、主键、唯一键和外键信息。 - 参数 - dbName:要从中检索信息的数据库的名称(设置DB_name环境变量时不需要)
- 描述表格(
describe_tables)
- 显示指定数据库中特定表的详细信息。提供格式化信息,如列定义、键约束和索引。 - 参数 - dbName:要从中检索信息的数据库的名称(设置DB_name环境变量时不需要) - tableNames:用于检索详细信息的表名数组
快速开始
- 配置mcp.json
{
"mcpServers": {
"mysql-schema-explorer-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "--pull", "always", "--network=host",
"-e", "DB_HOST=127.0.0.1",
"-e", "DB_PORT=3306",
"-e", "DB_USER=root",
"-e", "DB_PASSWORD=your_password",
"ghcr.io/shibayu36/mysql-schema-explorer-mcp:latest"
]
}
}
}如果使用克劳德代码:
claude mcp add mysql-schema-explorer-mcp -- docker run -i --rm --pull always --network=host \
-e DB_HOST=127.0.0.1 \
-e DB_USER=root \
-e DB_PASSWORD=your_password \
-e DB_PORT=3306 \
ghcr.io/shibayu36/mysql-schema-explorer-mcp:latest- 使用代理执行SQL生成
示例:使用ecshop数据库的结构,列出用户shibayu36最近订购的3个产品的名称。
用法
修复到特定数据库
当只访问一个数据库时,您可以设置 DB_NAME 环境变量,以避免每次指定数据库名称。
{
"mcpServers": {
"mysql-schema-explorer-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network=host",
"-e", "DB_HOST=127.0.0.1",
"-e", "DB_PORT=3306",
"-e", "DB_USER=root",
"-e", "DB_PASSWORD=your_password",
"-e", "DB_NAME=ecshop",
"ghcr.io/shibayu36/mysql-schema-explorer-mcp:latest"
]
}
}
}使用二进制而不是Docker
如果你有一个Go开发环境,你也可以直接安装和使用二进制文件。
- 安装命令
go install github.com/shibayu36/mysql-schema-explorer-mcp@latest- 配置mcp.json
{
"mcpServers": {
"mysql-schema-explorer-mcp": {
"command": "/path/to/mysql-schema-explorer-mcp",
"env": {
"DB_HOST": "127.0.0.1",
"DB_PORT": "3306",
"DB_USER": "root",
"DB_PASSWORD": "your_password"
}
}
}
}