使用说明
项目简介
MySQL MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,专为与 MySQL 数据库进行只读交互而设计。它通过 MCP 协议向兼容的客户端提供了一系列工具,允许用户安全地检查数据库结构、检索元数据信息以及执行只读 SQL 查询。
主要功能点
- 模式与元数据工具:
- 'get_table_columns': 获取指定表的列定义。
- 'get_schema': 获取详细的数据库模式信息,包括表、列、索引和约束。
- 'get_indexes': 获取指定表或所有表的索引信息。
- 'get_constraints': 获取指定表或所有表的约束信息(主键、外键、唯一约束、检查约束)。
- 'compare_schemas': 比较两个数据库模式的结构。
- 'explain_schema': 生成数据库模式的文本或结构化描述。
- 'detect_schema_changes': 返回当前模式的快照。
- 'find_relationships': 发现显式外键关系,并可尝试查找隐式关系。
- 'find_navigation_paths': 查找两表之间通过外键关系形成的路径。
- 查询执行工具:
- 'execute_query': 执行只读 SQL 查询 (SELECT, SHOW, DESCRIBE, EXPLAIN)。
- 'execute_batch': 批量执行多个只读 SQL 查询。
- 'prepare_statement': 预处理并执行带参数的只读 SQL 语句。
- 'explain_query': 获取 SQL 语句的查询执行计划 (EXPLAIN)。
- 'get_query_history': 占位工具,服务器端查询历史记录功能未实现。
- 可视化工具:
- 'visualize_schema': 生成 JSON、DOT (Graphviz) 或 Mermaid 格式的数据库模式表示,用于创建ER图。
- 性能工具:
- 'get_performance_metrics': 检索 MySQL 的全局状态变量 (如 Uptime, Threads, Queries)。
所有工具均为只读操作,确保数据库安全。
安装步骤
- 环境准备: 确保已安装 Node.js 和 npm,并可以访问目标 MySQL 数据库。
- 克隆仓库:
git clone https://github.com/kaulvimal/mysql-mcp cd mysql-mcp - 安装依赖:
npm install - 构建项目:
构建成功后,会在项目根目录下生成 'build' 目录,包含编译后的代码。npm run build
服务器配置
MCP 客户端需要配置服务器的启动命令以连接 MySQL MCP Server。以下是一个 Cursor 客户端的配置示例,展示了如何配置 'mysql-mcp' 服务器:
{ "mcpServers": { "mysql-mcp": { "command": "/path/to/your/mysql-mcp.sh" // 请替换为 mysql-mcp.sh 脚本的实际路径 } } }
配置说明:
- '"mcpServers"': 定义 MCP 服务器配置的顶级键。
- '"mysql-mcp"': 服务器名称,客户端使用此名称引用服务器。可以自定义名称。
- '"command"': 必需配置。指向服务器启动脚本 'mysql-mcp.sh' 的绝对路径。客户端通过执行此命令来启动 MCP 服务器并建立连接。
'mysql-mcp.sh' 脚本内容 (示例):
#!/bin/bash # 数据库连接配置 (可以通过 .env 文件配置,或者在此脚本中 export) # export DB_HOST=localhost # export DB_USER=root # export DB_PASSWORD="" # export DB_PORT=3306 node $(dirname "$0")/build/index.js
'mysql-mcp.sh' 脚本配置说明:
- 'DB_HOST', 'DB_USER', 'DB_PASSWORD', 'DB_PORT': 数据库连接参数。
- 建议通过在项目根目录下创建 '.env' 文件来配置这些参数,避免将敏感信息直接写入脚本。
- 也可以在 'mysql-mcp.sh' 脚本中使用 'export' 命令设置环境变量。
- 如果 '.env' 文件和 'export' 都未配置,服务器启动时会报错并退出。
- 'node $(dirname "$0")/build/index.js': 实际执行 Node.js 命令来启动编译后的服务器代码 'build/index.js'。'$(dirname "$0")' 确保脚本在任何目录下执行时都能找到 'build/index.js'。
基本使用方法
- 确保 MySQL MCP Server 已按照上述步骤配置并成功启动。
- 在 MCP 客户端 (如 Cursor) 中配置并连接到 'mysql-mcp' 服务器。
- 使用客户端提供的界面或命令,调用 'mysql-mcp' 服务器提供的工具,例如:
- 使用 'get_schema' 工具获取数据库模式信息。
- 使用 'execute_query' 工具执行 SQL 查询。
- 使用 'visualize_schema' 工具生成数据库 ER 图。
请参考 MCP 客户端的文档,了解如何配置和使用 MCP 服务器。
信息
分类
数据库与文件