mysql-mcp-server-financeblue 0.2.3
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.
Requires Python: >=3.11

![Tests](https://github.com/designcomputer/mysql_mcp_server/actions/workflows/test.yml/badge.svg)
![PyPI - Downloads](https://img.shields.io/pypi/dm/mysql-mcp-server)
[![smithery badge](https://smithery.ai/badge/mysql-mcp-server)](https://smithery.ai/server/mysql-mcp-server)
[![MseeP.ai Security Assessment Badge](https://mseep.net/mseep-audited.png)](https://mseep.ai/app/designcomputer-mysql-mcp-server)
# 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
```bash
pip install mysql-mcp-server
```

### Installing via Smithery
To install MySQL MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/mysql-mcp-server):
```bash
npx -y @smithery/cli install mysql-mcp-server --client claude
```

## Configuration  # 配置说明
Set the following environment variables:  # 必须设置的环境变量
```bash
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`:
```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`:
```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:

```bash
# 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
```bash
# 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:  # 本实现需要数据库访问权限
1. **Create a dedicated MySQL user** with minimal permissions  # 创建专用MySQL用户
2. **Never use root credentials** or administrative accounts  # 不要使用root账户
3. **Restrict database access** to only necessary operations  # 限制数据库访问
4. **Enable logging** for audit purposes  # 启用日志记录
5. **Regular security reviews** of database access  # 定期安全审查

See [MySQL Security Configuration Guide](https://github.com/designcomputer/mysql_mcp_server/blob/main/SECURITY.md) 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  # 贡献指南
1. Fork the repository  # 创建仓库分支
2. Create your feature branch (`git checkout -b feature/amazing-feature`)  # 创建特性分支
3. Commit your changes (`git commit -m 'Add some amazing feature'`)  # 提交更改
4. Push to the branch (`git push origin feature/amazing-feature`)  # 推送分支
5. Open a Pull Request  # 创建拉取请求