一个用于连接和查询MySQL数据库的MCP (Model Context Protocol) 服务器。
- 通过 SSE (Server-Sent Events) 提供 HTTP 接口
- 连接MySQL数据库
- 执行 SELECT 查询(只读访问)
- 安全的只读模式,不支持 INSERT/UPDATE/DELETE 操作
# 安装 uv(如果尚未安装)
pip install uv
# 创建虚拟环境
uv venv
# 激活虚拟环境
.venv\Scripts\activate # Windows
# source .venv/bin/activate # MacOS/Linux
# 安装项目
pip install -e .# 创建虚拟环境
python -m venv venv
.\venv\Scripts\activate # Windows
# source venv/bin/activate # MacOS/Linux
# 安装项目
pip install -e .# 设置环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=your_database
export QUERY_TIMEOUT=30 # 查询超时时间(秒)
# Windows PowerShell
$env:MYSQL_HOST="localhost"
$env:MYSQL_PORT="3306"
$env:MYSQL_USER="your_username"
$env:MYSQL_PASSWORD="your_password"
$env:MYSQL_DATABASE="your_database"
$env:QUERY_TIMEOUT="30" # 查询超时时间(秒)
# 启动 SSE 服务器
python -m mcp_mysql.server
# 或
mcp-mysql
# 服务器将运行在 http://localhost:8000环境变量:
MYSQL_HOST- MySQL 服务器地址(默认: localhost)MYSQL_PORT- MySQL 端口(默认: 3306)MYSQL_USER- 数据库用户名(默认: root)MYSQL_PASSWORD- 数据库密码(默认: 空)MYSQL_DATABASE- 数据库名称(默认: 空)QUERY_TIMEOUT- 查询超时时间,单位秒(默认: 30)MCP_HOST- MCP 服务器地址(默认: 0.0.0.0)MCP_PORT- MCP 服务器端口(默认: 8000)
在 Claude Desktop 配置文件中添加以下配置:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mysql": {
"url": "http://localhost:8000/sse"
}
}
}- query - 执行 SELECT 查询
sql: 要执行的 SELECT 语句(仅支持 SELECT 查询,保证只读访问)
连接后,你可以:
- "查询 users 表的所有数据:SELECT * FROM users"
- "查询特定条件:SELECT name, email FROM users WHERE id > 10"
- "统计数据:SELECT COUNT(*) FROM orders WHERE status='completed'"
注意: 为了数据安全,本服务器只支持 SELECT 查询,不支持 INSERT、UPDATE、DELETE 等写操作。
- 请妥善保管数据库凭据
- 建议使用只读账户
- 不要在公共仓库中提交包含密码的配置文件