A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases. This server allows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.
Project description
MySQL MCP Server
A Model Context Protocol (MCP) implementation that enables secure interaction with MySQL databases. This server component facilitates communication between AI applications (hosts/clients) and MySQL databases, making database exploration and analysis safer and more structured through a controlled interface.
Note: MySQL MCP Server is not designed to be used as a standalone server, but rather as a communication protocol implementation between AI applications and MySQL databases.
Features # 项目特性说明
- List available MySQL tables as resources # 列出数据库表作为资源
- Read table contents # 读取表数据
- Execute SQL queries with proper error handling # 执行SQL查询
- Secure database access through environment variables # 使用环境变量进行安全认证
- Comprehensive logging # 完善的日志记录功能
Installation
Manual Installation
pip install mysql-mcp-server
Installing via Smithery
To install MySQL MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install mysql-mcp-server --client claude
Configuration # 配置说明
Set the following environment variables: # 必须设置的环境变量
MYSQL_HOST=localhost # Database host # 数据库主机地址
MYSQL_PORT=3306 # Optional: Database port (defaults to 3306 if not specified) # 可选数据库端口,默认3306
MYSQL_USER=your_username # 数据库用户名
MYSQL_PASSWORD=your_password # 数据库密码
MYSQL_DATABASE=your_database # 要连接的数据库名称
Usage
With Claude Desktop
Add this to your 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"
}
}
}
}
With Visual Studio Code
Add this to your 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"
}
}
}
}
Note: Will need to install uv for this to work
Debugging with MCP Inspector
While MySQL MCP Server isn't intended to be run standalone or directly from the command line with Python, you can use the MCP Inspector to debug it.
The MCP Inspector provides a convenient way to test and debug your MCP implementation:
# Install dependencies
pip install -r requirements.txt
# Use the MCP Inspector for debugging (do not run directly with Python)
The MySQL MCP Server is designed to be integrated with AI applications like Claude Desktop and should not be run directly as a standalone Python program.
Development
# Clone the repository
git clone https://github.com/designcomputer/mysql_mcp_server.git
cd mysql_mcp_server
# Create virtual environment
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
Security Considerations # 安全注意事项
- Never commit environment variables or credentials # 不要提交敏感信息
- Use a database user with minimal required permissions # 使用最小权限账户
- Consider implementing query whitelisting for production use # 生产环境考虑查询白名单
- Monitor and log all database operations # 监控并记录所有数据库操作
Security Best Practices # 安全最佳实践
This MCP implementation requires database access to function. For security: # 本实现需要数据库访问权限
- Create a dedicated MySQL user with minimal permissions # 创建专用MySQL用户
- Never use root credentials or administrative accounts # 不要使用root账户
- Restrict database access to only necessary operations # 限制数据库访问
- Enable logging for audit purposes # 启用日志记录
- Regular security reviews of database access # 定期安全审查
See MySQL Security Configuration Guide for detailed instructions on:
- Creating a restricted MySQL user
- Setting appropriate permissions
- Monitoring database access
- Security best practices
⚠️ IMPORTANT: Always follow the principle of least privilege when configuring database access.
License
MIT License - see LICENSE file for details.
Contributing # 贡献指南
- Fork the repository # 创建仓库分支
- Create your feature branch (
git checkout -b feature/amazing-feature) # 创建特性分支 - Commit your changes (
git commit -m 'Add some amazing feature') # 提交更改 - Push to the branch (
git push origin feature/amazing-feature) # 推送分支 - Open a Pull Request # 创建拉取请求
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mysql_mcp_server_financeblue-0.2.3-py3-none-any.whl.
File metadata
- Download URL: mysql_mcp_server_financeblue-0.2.3-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d818fab1f22bd4b337f27198038a1060e2d0446dc704fba8ad5c2ec9597c1fa3
|
|
| MD5 |
fb0445daf6292357aa3c0e4c8b143346
|
|
| BLAKE2b-256 |
ac1dbe89a2ef475408e3cd3e6998e3aad75ff99a75d95f53c075a1739c95eedf
|