MySQL MCP Server
一个模型上下文协议(MCP)实现,可启用与MySQL数据库的安全交互。该服务器组件促进AI应用程序(主机/客户端)与MySQL数据库之间的通信,通过受控接口使数据库探索和分析更安全、更有结构化。
注意:MySQL MCP Server并非设计为独立服务器使用,而是作为AI应用程序与MySQL数据库之间的通信协议实现。
功能
- 将可用的MySQL表作为资源列出
- 读取表内容
- 执行SQL查询并具有适当的错误处理
- 通过环境变量进行安全数据库访问
- 完整的日志记录
安装
手动安装
pip install mysql-mcp-server
通过Smithery安装
通过Smithery自动为Claude Desktop安装MySQL MCP Server:
npx -y @smithery/cli install mysql-mcp-server --client claude
配置
设置以下环境变量:
MYSQL_HOST=localhost # 数据库主机
MYSQL_PORT=3306 # 可选:数据库端口(未指定时默认为3306)
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
使用
与Claude Desktop一起使用
将以下内容添加到您的claude_desktop_config.json:
{
"mcpServers": {
"mysql": {
"command": "uv",
"args": [
"--directory",
"path/to/mysql_mcp_server",
"run",
"mysql_mcp_server"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
与Visual Studio Code一起使用
将以下内容添加到您的mcp.json:
{
"servers": {
"mysql": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"mysql-mcp-server",
"mysql_mcp_server"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
注意:需要安装uv才能使其工作
使用MCP Inspector进行调试
虽然MySQL MCP Server并非设计为独立运行或直接从命令行使用Python运行,但您可以使用MCP Inspector对其进行调试。
MCP Inspector提供了一种方便测试和调试您的MCP实现的方法:
# 安装依赖
pip install -r requirements.txt
# 使用MCP Inspector进行调试(不要直接使用Python运行)
MySQL MCP Server设计为与Claude Desktop等AI应用程序集成,不应直接作为独立的Python程序运行。
开发
# 克隆仓库
git clone https://github.com/designcomputer/mysql_mcp_server.git
cd mysql_mcp_server
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # 或 `venv\Scripts\activate` 在Windows上
# 安装开发依赖
pip install -r requirements-dev.txt
# 运行测试
pytest
安全注意事项
- 永远不要提交环境变量或凭证
- 使用具有最小必要权限的数据库用户
- 考虑在生产环境中实现查询白名单
- 监控和记录所有数据库操作
安全最佳实践
此MCP实现需要数据库访问才能运行。为安全起见:
- 创建一个专用的MySQL用户,权限最小化
- 永远不要使用root凭证或管理账户
- 限制数据库访问仅限于必要操作
- 启用日志记录用于审计目的
- 定期进行数据库访问安全审查
有关详细说明,请参阅MySQL安全配置指南,包括:
- 创建受限MySQL用户
- 设置适当权限
- 监控数据库访问
- 安全最佳实践
⚠️ 重要提示:配置数据库访问时,始终遵循最小权限原则。
许可证
MIT许可证 - 详细内容请参阅LICENSE文件。
贡献
- 分支仓库
- 创建您的功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 打开拉取请求
