MySQL MCP 服务器
概述
模型上下文协议 (MCP) 服务器实现,通过 MySQL 提供数据库交互功能。该服务器支持运行 SQL 查询、创建表以及探索数据库架构信息。
Related MCP server: MCP MySQL Server
成分
工具
该服务器提供五种核心工具:
查询工具
read_query执行 SELECT 查询以从数据库读取数据
输入:
*query(字符串):要执行的 SELECT SQL 查询返回:查询结果作为对象数组
write_query执行 INSERT、UPDATE 或 DELETE 查询
输入:
*query(字符串):SQL 修改查询返回:
{ affected_rows: number }
create_table在数据库中创建新表
输入:
*query(字符串):CREATE TABLE SQL 语句返回:表创建确认
架构工具
list_tables获取数据库中所有表的列表
无需输入
返回:表名称数组
describe_table查看特定表的架构信息
输入:
*table_name(字符串): 要描述的表的名称返回:具有名称和类型的列定义数组
安装
先决条件
Python 3.10+
MySQL 数据库
所需的 Python 包:
mcp(模型上下文协议)sqlalchemypymysql(或其他 MySQL 驱动程序)python-dotenvuvicorn(用于 HTTP 传输)
使用 Conda 进行设置
首先,创建并激活 conda 环境:
# Create environment
conda create --name mcp-demo python=3.12
# Activate environment
conda activate mcp-demo然后,安装所需的依赖项:
# Method 1: Using pip
pip install "mcp[cli]>=0.1.0" "pymysql>=1.1.0" "sqlalchemy>=2.0.0" "python-dotenv>=1.0.0" "uvicorn>=0.27.0"
# Method 2: Using uv
uv pip install "mcp[cli]>=0.1.0" "pymysql>=1.1.0" "sqlalchemy>=2.0.0" "python-dotenv>=1.0.0" "uvicorn>=0.27.0"配置
您可以使用以下方式配置服务器:
环境变量文件(.env)
复制
.env.template文件并将其重命名为.env:
cp .env.template .env使用您的配置编辑
.env文件:
# Database configuration
DB_URL=mysql+pymysql://username:password@localhost:3306/dbname命令行参数
您还可以使用命令行参数覆盖配置:
python src/mysql/server.py --db-url mysql+pymysql://username:password@localhost:3306/dbname用法
启动服务器
# Using .env file configuration
python src/mysql/server.py
# Using command line arguments
python src/mysql/server.py --db-url mysql+pymysql://username:password@localhost:3306/dbname --transport http使用 MCP Inspector 进行测试
您可以使用 MCP Inspector 工具测试服务器:
npx @modelcontextprotocol/inspector uv run /Users/caicongyang/IdeaProjects/tom/mcp-demo/src/mysql/server.py这将启动服务器并允许您以交互方式测试可用的工具。
示例工作流程
使用 MySQL 数据库连接启动服务器
使用 MCP 客户端将 AI 模型连接到服务器
使用
list_tables工具查看可用的表如果需要,使用
create_table创建表使用
write_query插入数据使用
read_query查询数据
与 Claude Desktop 一起使用
紫外线
将服务器添加到您的claude_desktop_config.json :
"mcpServers": {
"mysql": {
"command": "uv",
"args": [
"--directory",
"path_to_mcp_demo",
"run",
"python",
"src/mysql/server.py",
"--db-url",
"mysql+pymysql://username:password@localhost/dbname"
]
}
}Docker
将服务器添加到您的claude_desktop_config.json :
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"mcp-mysql:/mcp",
"mcp/mysql",
"--db-url",
"mysql+pymysql://username:password@localhost/dbname"
]
}
}软件包安装
您还可以使用 pip 安装该包:
# Install in development mode
pip install -e .
# Run using the installed package
mcp-mysql --db-url mysql+pymysql://username:password@localhost/dbname在 Cursor IDE 中
Cursor是一款 AI 辅助 IDE。您可以将此 MCP 服务器与 Cursor 集成,以便在编码过程中直接查询 MySQL 数据库。
在光标中设置
启动 MCP 服务器
python src/mysql/server.py在光标设置中配置 MCP
添加您的 MCP 服务器 URL:
http://localhost:8000使用光标命令访问 MCP
在游标编辑器中,使用:
/mcp mysql-query {"query": "SELECT * FROM users LIMIT 5"}对于参数化查询:
/mcp mysql-query {"query": "SELECT * FROM users WHERE age > :min_age", "params": {"min_age": 30}}
API 参考
输入格式
{
"query": "SELECT * FROM users WHERE age > :min_age",
"params": {
"min_age": 30
}
}输出格式
{
"results": [
{"id": 1, "name": "John", "age": 35},
{"id": 2, "name": "Jane", "age": 42}
],
"columns": ["id", "name", "age"],
"rowcount": 2
}安全注意事项
该服务器应在受信任的环境中运行,因为它允许任意 SQL 查询
在生产中,实施适当的访问控制和输入验证
考虑限制可以执行的 SQL 命令类型
重要提示:不要将包含敏感信息的
.env文件提交到版本控制
发展
项目结构
src/mysql/server.py:主服务器实现pyproject.toml:包配置README.md:本文档
添加新功能
要使用新功能扩展服务器:
使用
@mcp.tool()装饰器添加新工具使用
MySQLDatabase类实现工具逻辑更新文档以反映新功能
执照
此 MCP 服务器遵循 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.