使用说明
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
从源代码构建
# Clone the repository
git clone https://github.com/allizwellai/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": []
}
}
}
可用工具
列表_数据库
列出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许可证获得许可-请参阅 许可证 文件以获取详细信息。