Mysql-mcp

Mysql-mcp

A specialized MySQL MCP server for Cursor that enables users to query table structures, execute SQL, and generate database documentation. It features multiple security modes to ensure safe interaction while providing tools for database overviews and query caching.

Category
Visit Server

README

MySQL数据库 MCP 服务

这是一个专为 Cursor 设计的MySQL数据库 MCP (Model Context Protocol) 服务,提供表结构查询、文档生成和数据查询功能。

功能特性

  • Cursor 专用集成: 专为 Cursor MCP 协议设计的数据库服务
  • 多种安全模式: 支持只读、限制写入、完全访问三种安全级别
  • 表结构查询: 获取数据库表的详细结构信息
  • 文档生成: 生成 Markdown、JSON、SQL 格式的表结构文档
  • 数据库概览: 生成整个数据库的概览文档
  • SQL 查询执行: 根据安全模式执行不同级别的 SQL 操作
  • 查询缓存: 自动缓存查询结果,提升性能

安全模式

1. 只读模式 (readonly) - 默认模式

  • 仅允许 SELECT、SHOW、DESCRIBE、EXPLAIN 等查询操作
  • 禁止所有写入和危险操作
  • 适用于数据分析和报表查询

2. 限制写入模式 (limited_write)

  • 允许 SELECT、INSERT、UPDATE 操作
  • 禁止 DELETE、DROP、CREATE、ALTER 等危险操作
  • 适用于需要数据录入但要保护结构的场景

3. 完全访问模式 (full_access)

  • 允许所有 SQL 操作
  • 谨慎使用,仅在完全信任的环境中启用
  • 适用于数据库管理和维护

安装和配置

1. 本地安装依赖

cd mysql-mcp
pip install -r requirements.txt

2. 在 Cursor 中配置

在 Cursor 的设置中找到 MCP 配置,添加以下内容:

{
  "mcpServers": {
    "mysql-mcp": {
      "command": "python",
      "args": ["F:/path/to/mysql-mcp/main.py"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USERNAME": "your_username",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database",
        "MYSQL_SECURITY_MODE": "readonly",
        "MYSQL_ALLOWED_SCHEMAS": "*",
        "MYSQL_ENABLE_QUERY_LOG": "false"
      }
    }
  }
}

3. 环境变量说明

必需环境变量:

  • MYSQL_HOST: 数据库主机地址
  • MYSQL_PORT: 数据库端口
  • MYSQL_USERNAME: 数据库用户名
  • MYSQL_PASSWORD: 数据库密码
  • MYSQL_DATABASE: 数据库名称

可选环境变量:

  • MYSQL_SECURITY_MODE: 安全模式 (readonly/limited_write/full_access,默认:readonly)
  • MYSQL_ALLOWED_SCHEMAS: 允许访问的数据库列表,支持三种配置方式:
    • "*": 允许访问所有有权限的数据库(推荐)
    • "auto": 自动发现有权限的数据库
    • "db1,db2,db3": 明确指定数据库列表(逗号分隔)
  • MYSQL_CONNECT_TIMEOUT: 连接超时时间(秒,默认:30)
  • MYSQL_QUERY_TIMEOUT: 查询超时时间(秒,默认:60)
  • MYSQL_MAX_RETRIES: 最大重试次数(默认:3)
  • MYSQL_ENABLE_QUERY_LOG: 是否启用查询日志(true/false,默认:false)
  • MYSQL_MAX_RESULT_ROWS: 最大返回行数(默认:1000)

使用示例

获取安全信息

在 Cursor 中输入:

@mysql-mcp 获取当前安全配置信息

查看可访问的数据库

@mysql-mcp 获取所有可访问的数据库

查询表列表

@mysql-mcp 列出 mydb 数据库中的所有表

查看表结构

@mysql-mcp 描述 users 表的结构

执行查询(只读模式)

@mysql-mcp 查询用户表前10条记录

生成表文档

@mysql-mcp 为users表生成Markdown文档

生成数据库概览

@mysql-mcp 生成mydb数据库的概览文档

可用工具

工具名称 功能描述 主要参数
test_connection 测试数据库连接 -
get_security_info 获取安全配置信息 -
list_tables 获取数据库表列表 database(可选)
describe_table 获取表详细结构 table_name, database(可选)
generate_table_doc 生成表文档 table_name, format, database(可选)
generate_database_overview 生成数据库概览 database(可选)
execute_query 执行SQL语句 sql
list_schemas 获取可用数据库列表 -

文档生成说明

文档生成功能会将生成的文档保存为实际文件:

  • 保存位置: mysql-mcp目录下的 docs/ 文件夹
  • 文件命名: {database}_{table_name}_{timestamp}.{ext} 格式
  • 支持格式: Markdown (.md)、JSON (.json)、SQL (.sql)

示例输出:

✅ 文档生成成功!
📁 保存路径: docs/mydb_users_20250110_142000.md
📂 MCP服务目录: F:/path/to/mysql-mcp
📊 表名: mydb.users
📝 格式: markdown
⏰ 生成时间: 2025-01-10 14:20:00

缓存管理

该服务提供查询缓存功能,自动缓存只读查询的结果:

# 获取缓存统计信息
@mysql-mcp 获取查询缓存统计信息

# 清空缓存
@mysql-mcp 清空查询缓存

安全注意事项

  1. 生产环境建议使用 readonly 模式
  2. 敏感环境中避免使用 full_access 模式
  3. 密码安全:避免在配置中使用弱密码
  4. 网络安全:确保数据库连接使用安全的网络通道
  5. 权限最小化:数据库用户只应获得必要的最小权限

错误处理

  • 配置错误: 检查 Cursor MCP 配置中的环境变量设置
  • 连接失败: 验证数据库连接参数和网络连通性
  • 权限不足: 检查数据库用户权限和安全模式设置
  • SQL 被拒绝: 当前安全模式不允许执行该类型的 SQL 操作

技术架构

核心模块

  • main.py: MCP服务主程序
  • config.py: 环境变量配置模块
  • database.py: 数据库操作和安全控制模块
  • document_generator.py: 文档生成模块

安全控制

  • 多级安全模式验证
  • SQL语句类型检查
  • 数据库访问权限控制
  • 查询结果行数限制
  • 连接超时和重试机制

MySQL适配

  • 使用 mysql-connector-python 驱动连接
  • 适配MySQL系统表查询语法
  • 支持MySQL约束类型识别
  • 适配MySQL数据类型映射

许可证

本项目基于 MIT 许可证 开源发布。

  • 自由使用: 允许任何人免费使用、复制、修改本软件
  • 商业友好: 支持商业使用和分发
  • 修改自由: 可以修改源代码并发布衍生作品
  • 最小限制: 只需保留版权声明即可

版本: 1.0.0
更新时间: 2025-01-10
设计目标: 专为MySQL数据库和 Cursor MCP 集成优化

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured