提供对MySQL数据库只读访问的MCP服务器。
databases
6.4k 查看 · 2026-07-07 更新
简介
提供对MySQL数据库只读访问的MCP服务器。
简介
提供对MySQL数据库只读访问的MCP服务器。
MySQL 数据库访问 MCP 服务器
该 MCP 服务器提供对 MySQL 数据库的只读访问。它允许您:
- 列出可用数据库
- 列出数据库中的表
- 描述表结构
- 执行只读 SQL 查询
安全特性
- 只读访问:仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句
- 查询验证:防止 SQL 注入并阻止任何数据修改尝试
- 查询超时:防止长时间运行的查询消耗资源
- 行数限制:防止返回过多数据
安装
选项 1:从 NPM 安装(推荐)
# Install globally npm install -g mysql-mcp-server # Or install locally in your project npm install mysql-mcp-server
选项 2:从源代码构建
# Clone the repository git clone https://github.com/dpflucas/mysql-mcp-server.git cd mysql-mcp-server # Install dependencies and build npm install npm run build
2. 配置环境变量
服务器需要以下环境变量:
MYSQL_HOST:数据库服务器主机名MYSQL_PORT:数据库服务器端口(默认:3306)MYSQL_USER:数据库用户名MYSQL_PASSWORD:数据库密码MYSQL_DATABASE:默认数据库名称(可选)
3. 添加到 MCP 设置
将以下配置添加到您的 MCP 设置文件中:
如果您通过 npm 安装(选项 1):
{ "mcpServers": { "mysql": { "command": "npx", "args": ["mysql-mcp-server"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database" }, "disabled": false, "autoApprove": [] } } }
如果您从源代码构建(选项 2):
{ "mcpServers": { "mysql": { "command": "node", "args": ["/path/to/mysql-mcp-server/build/index.js"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database" }, "disabled": false, "autoApprove": [] } } }
可用工具
list_databases
列出 MySQL 服务器上所有可访问的数据库。
参数:无
示例:
{ "server_name": "mysql", "tool_name": "list_databases", "arguments": {} }
list_tables
列出指定数据库中的所有表。
参数:
database(可选):数据库名称(未指定时使用默认值)
示例:
{ "server_name": "mysql", "tool_name": "list_tables", "arguments": { "database": "my_database" } }
describe_table
显示特定表的结构。
参数:
database(可选):数据库名称(未指定时使用默认值)table(必需):表名称
示例:
{ "server_name": "mysql", "tool_name": "describe_table", "arguments": { "database": "my_database", "table": "my_table" } }
execute_query
执行只读 SQL 查询。
参数:
query(必需):SQL 查询(仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句)database(可选):数据库名称(未指定时使用默认值)
示例:
{ "server_name": "mysql", "tool_name": "execute_query", "arguments": { "database": "my_database", "query": "SELECT * FROM my_table LIMIT 10" } }
测试
服务器包含测试脚本来验证您的 MySQL 设置的功能:
1. 设置测试数据库
此脚本创建一个测试数据库、表和示例数据:
# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password # Run the setup script npm run test:setup
2. 测试 MCP 工具
此脚本针对测试数据库测试每个 MCP 工具:
# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password export MYSQL_DATABASE=mcp_test_db # Run the tools test script npm run test:tools
3. 运行所有测试
要同时运行设置和工具测试:
# Set your MySQL credentials as environment variables export MYSQL_HOST=localhost export MYSQL_PORT=3306 export MYSQL_USER=your_username export MYSQL_PASSWORD=your_password # Run all tests npm test
故障排除
如果您遇到问题:
- 检查服务器日志中的错误消息
- 验证您的 MySQL 凭据和连接详情
- 确保您的 MySQL 用户具有适当的权限
- 检查您的查询是否为只读且格式正确
许可证
该项目根据 MIT 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。
服务配置
[{'mcpServers': {'mysql': {'args': ['mysql-mcp-server'], 'autoApprove': [], 'command': 'npx', 'disabled': False, 'env': {'MYSQL_DATABASE': 'your-default-database', 'MYSQL_HOST': 'your-mysql-host', 'MYSQL_PASSWORD': 'your-mysql-password', 'MYSQL_PORT': '3306', 'MYSQL_USER': 'your-mysql-user'}}}}, {'mcpServers': {'mysql': {'args': ['/path/to/mysql-mcp-server/build/index.js'], 'autoApprove': [], 'command': 'node', 'disabled': False, 'env': {'MYSQL_DATABASE': 'your-default-database', 'MYSQL_HOST': 'your-mysql-host', 'MYSQL_PASSWORD': 'your-mysql-password', 'MYSQL_PORT': '3306', 'MYSQL_USER': 'your-mysql-user'}}}}]
来源
- 来源:github
- 链接:https://github.com/dpflucas/mysql-mcp-server