MySQL MCP

MySQL MCP

一个提供简单 API 来执行 SQL 查询和管理 MySQL 数据库的工具,旨在与 Cursor IDE 集成,以便 AI 助手可以直接执行数据库操作。

Category
访问服务器

README

MySQL MCP 工具

MySQL MCP 是一个基于 MCP(Model-Control-Panel)框架的 MySQL 数据库操作工具,提供了简单易用的 API 来执行 SQL 查询、管理表结构、操作数据等功能。

MCP 框架简介

MCP(Model-Control-Panel)是一个强大的工具框架,允许您将工具函数暴露为API,使模型(如AI助手)能够直接调用这些函数。MySQL MCP 将 MySQL 数据库操作封装为 MCP 工具,便于与 Cursor IDE 等工具集成使用。

如何使用 MCP

1. 配置 MCP

~/.cursor/mcp.json 中添加以下配置:

{
    "mcpServers": {
        "mysql-mcp": {
            "command": "/path/to/uv",
            "args": [
                "--directory",
                "/path/to/mysql-mcp",
                "run",
                "mysql-mcp.py",
                "--host", "xxx.xxx.xxx.xxx",
                "--port", "3306",
                "--user", "root",
                "--password", "********",
                "--database", "your_database",
                "--connection-timeout", "10",
                "--connect-retry-count", "3"
            ]
        }
    }
}

2. 启动 MCP 服务

配置完成后,Cursor IDE 会自动启动 MCP 服务,无需手动操作。如需单独运行:

python mysql-mcp.py

3. 在 MCP 环境中调用工具函数

在 Cursor IDE 中,AI 助手可以直接调用 MySQL MCP 工具:

# 查询所有数据库
await mcp_mysql_mcp_execute_query("SHOW DATABASES")

# 列出当前数据库的所有表
await mcp_mysql_mcp_list_tables()

# 执行复杂查询
await mcp_mysql_mcp_execute_query("SELECT * FROM users WHERE age > %s", [18])

可用 MCP 工具函数

1. 执行查询:mcp_mysql_mcp_execute_query

# 执行 SELECT 查询
result = await mcp_mysql_mcp_execute_query(query="SELECT * FROM users WHERE age > %s", params=[18])

# 执行 SHOW DATABASES 查询
result = await mcp_mysql_mcp_execute_query(query="SHOW DATABASES")

# 查询结果格式
# {
#     "success": true,
#     "rows": [{"id": 1, "name": "张三", "age": 25}, ...],
#     "row_count": 10
# }

2. 列出表:mcp_mysql_mcp_list_tables

# 列出当前数据库的所有表
result = await mcp_mysql_mcp_list_tables()

# 列出特定数据库的所有表
result = await mcp_mysql_mcp_list_tables(database_name="information_schema")

# 返回结果格式
# {
#     "success": true,
#     "database": "your_database",
#     "tables": ["users", "products", "orders"],
#     "count": 3
# }

3. 获取表结构:mcp_mysql_mcp_describe_table

# 获取表结构
result = await mcp_mysql_mcp_describe_table(table_name="users")

# 返回结果格式
# {
#     "success": true,
#     "table": "users",
#     "columns": [
#         {"Field": "id", "Type": "int(11)", "Null": "NO", "Key": "PRI", "Default": null, "Extra": "auto_increment"},
#         {"Field": "name", "Type": "varchar(100)", "Null": "NO", "Key": "", "Default": null, "Extra": ""}
#     ]
# }

4. 切换数据库:mcp_mysql_mcp_use_database

# 切换到另一个数据库
result = await mcp_mysql_mcp_use_database(database_name="another_database")

# 返回结果格式
# {
#     "success": true,
#     "message": "已切换到数据库 another_database",
#     "current_database": "another_database"
# }

5. 其他数据操作工具

  • 创建表mcp_mysql_mcp_create_table(table_name, columns_def)
  • 插入数据mcp_mysql_mcp_insert_data(table_name, data)
  • 更新数据mcp_mysql_mcp_update_data(table_name, data, condition, params)
  • 删除数据mcp_mysql_mcp_delete_data(table_name, condition, params)

功能特点

  • 执行 SQL 查询语句并获取结果
  • 列出数据库中的所有表
  • 获取表结构信息
  • 创建新表
  • 插入、更新和删除数据
  • 切换数据库
  • 自动处理连接错误和重试
  • 提供详细的错误信息和原因分析

错误处理

所有工具函数都会返回详细的错误信息和原因分析,便于快速定位和解决问题:

# 查询不存在的表
result = await mcp_mysql_mcp_execute_query(query="SELECT * FROM non_existing_table")
# 返回: {"error": "执行查询失败: Table 'your_database.non_existing_table' doesn't exist\n原因:查询的表不存在", "query": "SELECT * FROM non_existing_table"}

安装与配置

安装

  1. 确保您已安装 Python 3.12 或更高版本
  2. 克隆仓库到本地:
git clone https://github.com/Liu-creators/mysql-mcp.git
cd mysql-mcp
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # 在 Windows 上使用 .venv\Scripts\activate
  1. 安装依赖:
pip install -e .

其他配置方式

除了 MCP 配置外,还可以通过以下方式配置:

环境变量

export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=your_database
export MYSQL_CONNECTION_TIMEOUT=10
export MYSQL_CONNECT_RETRY_COUNT=3

命令行参数

python mysql-mcp.py --host localhost --port 3306 --user root --password your_password --database your_database

扩展与自定义

您可以修改源代码来添加更多功能或调整现有功能的行为。主要的扩展点包括:

  • mysql-mcp.py 中添加新的工具函数
  • 修改现有函数的错误处理和返回值
  • 调整数据库连接的默认配置

许可证

MIT 许可证

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选