使用说明
MySQL的MCP服务器
一种模型上下文协议(MCP)服务器,为MySQL数据库提供无缝连接和操作。该服务器允许AI助手通过标准化协议与MySQL数据库进行交互。
🎯 快速设置
| IDE | 设置时间 | 配置文件 |
|---|---|---|
| 光标 | 2分钟 | cursor-mcp-config.json |
| VS代码 | 3分钟 | .vscode/settings.json |
| 智能 | 5分钟 | 外部工具 |
| 其他 | 5分钟 | 通用MCP配置 |
需要帮助? 跳转到 IDE集成 详细说明。
目录
特性
- 数据库连接管理:使用可配置参数进行安全连接处理
- SQL查询执行:执行SELECT、INSERT、UPDATE、DELETE和其他SQL操作
- 模式探索:发现数据库结构、表、列、索引和约束
- 表信息:获取有关表模式和关系的详细信息
- 数据库列表:列出可用的数据库和表
- 错误处理:具有详细错误消息的全面错误处理
- 连接池:高效的连接管理,提高性能
- SSL支持:使用SSL/TLS加密的安全连接
安装
先决条件
- Node.js 18+
- MySQL服务器5.7+或MySQL 8.0+
- npm或yarn包管理器
设置
选项1:快速安装(推荐)
git clone <repository-url>
cd mcp-server-mysql
./install.sh
选项2:手动设置
-
克隆或下载此存储库
git clone <repository-url> cd mcp-server-mysql -
安装依赖项
npm install -
配置环境变量
cp .env.example .env编辑
.env包含MySQL连接详细信息的文件:MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=your_username MYSQL_PASSWORD=your_password MYSQL_DATABASE=your_database MYSQL_SSL=false -
构建项目
npm run build
快速开始
对于游标用户
- 克隆此存储库
- 跑
npm install && npm run build - 复制
cursor-mcp-config.json到您的Cursor配置目录 - 更新配置中的MySQL连接详细信息
- 重新启动Cursor并开始与您的数据库聊天!
对于VS代码用户
- 克隆此存储库
- 跑
npm install && npm run build - 从VS Code市场安装MCP扩展
- 更新
.vscode/settings.json使用MySQL凭据 - 按F5调试或使用提供的任务
对于其他IDE
- 按照以下安装步骤进行操作
- 使用通用MCP客户端配置
- 根据具体说明配置IDE
🚀 IDE集成
重要:此MCP服务器可与多个IDE配合使用!查看详情 IDE集成 以下部分为您首选编辑器的分步说明。
支持的IDE:
- ✅ 光标 (内置MCP支持)
- ✅ Visual Studio Code (带MCP扩展)
- ✅ IntelliJ IDEA/WebStorm
- ✅ 代码编辑器
- ✅ Vim/Neov
- ✅ 任何兼容MCP的客户端
用法
运行服务器
开发模式:
npm run dev
生产方式:
npm start
监视模式(更改后自动重新启动):
npm run watch
可用工具
MCP服务器为MySQL操作提供以下工具:
1. mysql_query
在MySQL数据库上执行SQL查询。
参数:
query(string):要执行的SQL查询database(字符串,可选):要查询的特定数据库(覆盖默认值)
例子:
{
"name": "mysql_query",
"arguments": {
"query": "SELECT * FROM users WHERE age > 25",
"database": "myapp"
}
}
2. mysql_list_databases
列出MySQL服务器上所有可用的数据库。
例子:
{
"name": "mysql_list_databases",
"arguments": {}
}
3. mysql_list_tables
列出特定数据库中的所有表。
参数:
database(字符串,可选):数据库名称(如果未指定,则使用默认值)
例子:
{
"name": "mysql_list_tables",
"arguments": {
"database": "myapp"
}
}
4. mysql_describe_table
获取有关表结构的详细信息。
参数:
table(string):表名database(字符串,可选):数据库名称(如果未指定,则使用默认值)
例子:
{
"name": "mysql_describe_table",
"arguments": {
"table": "users",
"database": "myapp"
}
}
5. mysql_get_schema
获取数据库的全面架构信息。
参数:
database(字符串,可选):数据库名称(如果未指定,则使用默认值)
例子:
{
"name": "mysql_get_schema",
"arguments": {
"database": "myapp"
}
}
IDE集成
光标IDE
Cursor具有内置的MCP支持。按照以下步骤集成MySQL MCP服务器:
-
安装项目依赖项:
npm install npm run build -
配置光标MCP设置:
- 打开光标设置(Cmd/Ctrl+,)
- 搜索“MCP”或导航到扩展→ MCP
- 将以下配置添加到MCP设置中:
{ "mcpServers": { "mysql": { "command": "node", "args": ["/absolute/path/to/mcp-server-mysql/dist/index.js"], "env": { "MYSQL_HOST": "localhost", "MYSQL_PORT": "3306", "MYSQL_USER": "your_username", "MYSQL_PASSWORD": "your_password", "MYSQL_DATABASE": "your_database" } } } } -
替代方案:使用提供的配置文件:
- 复制
cursor-mcp-config.json到您的Cursor配置目录 - 根据需要更新路径和环境变量
- 重新启动游标
- 复制
-
测试连接:
- 在Cursor中打开新聊天
- 试着问:“列出MySQL服务器中的所有数据库”
- MCP服务器应使用数据库信息进行响应
Visual Studio Code
VS Code要求MCP扩展与MCP服务器配合使用:
-
安装MCP扩展:
- 打开VS代码扩展名(Cmd/Ctrl+Shift+X)
- 搜索“MCP”或“模型上下文协议”
- 安装官方MCP扩展
-
配置MCP设置:
- 打开VS代码设置(Cmd/Ctrl+,)
- 搜索“MCP”
- 添加服务器配置:
{ "mcp.servers": { "mysql": { "command": "node", "args": ["${workspaceFolder}/dist/index.js"], "env": { "MYSQL_HOST": "localhost", "MYSQL_PORT": "3306", "MYSQL_USER": "your_username", "MYSQL_PASSWORD": "your_password", "MYSQL_DATABASE": "your_database" } } } } -
使用提供的VS代码配置:
- 该项目包括
.vscode/settings.json具有预配置的MCP设置 - 更新设置文件中的环境变量
- 重新加载VS代码窗口(Cmd/Ctrl+Shift+P→ “开发人员:重新加载窗口”)
- 该项目包括
-
调试MCP服务器:
- 使用中提供的启动配置
.vscode/launch.json - 在代码中设置断点
- 按F5开始调试
- 使用中提供的启动配置
其他IDE
IntelliJ IDEA/WebStorm
-
安装Node.js插件 (如果尚未安装)
-
将MCP服务器配置为外部工具:
- 转到文件→ 设置→ 工具→ 外部工具
- 添加新工具:
- 姓名:
MCP MySQL Server - 程序:
node - 论据:
dist/index.js - 工作目录:
$ProjectFileDir$ - 环境变量:添加MySQL连接详细信息
- 姓名:
-
创建运行配置:
- 去跑步→ 编辑配置
- 添加新的Node.js配置
- 将JavaScript文件设置为
dist/index.js - 为MySQL连接添加环境变量
代码编辑器
-
安装LSP-MCP包:
- 如果尚未安装,请安装包控制
- 安装“LSP-MCP”软件包
-
配置LSP设置:
- 打开首选项→ 软件包设置→ LSP → 设置
- 添加MCP服务器配置:
{ "clients": { "mcp-mysql": { "command": ["node", "/path/to/mcp-server-mysql/dist/index.js"], "env": { "MYSQL_HOST": "localhost", "MYSQL_PORT": "3306", "MYSQL_USER": "your_username", "MYSQL_PASSWORD": "your_password", "MYSQL_DATABASE": "your_database" } } } }
Vim/Neov
-
安装MCP插件:
" Using vim-plug Plug 'modelcontextprotocol/mcp-vim' -
在vimrc中配置:
let g:mcp_servers = { \ 'mysql': { \ 'command': 'node', \ 'args': ['/path/to/mcp-server-mysql/dist/index.js'], \ 'env': { \ 'MYSQL_HOST': 'localhost', \ 'MYSQL_PORT': '3306', \ 'MYSQL_USER': 'your_username', \ 'MYSQL_PASSWORD': 'your_password', \ 'MYSQL_DATABASE': 'your_database' \ } \ } \ }
通用MCP客户端配置
对于任何兼容MCP的客户端,请使用以下配置:
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-mysql/dist/index.js"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
MYSQL_HOST |
MySQL服务器主机名 | localhost |
MYSQL_PORT |
MySQL服务器端口 | 3306 |
MYSQL_USER |
MySQL用户名 | root |
MYSQL_PASSWORD |
MySQL密码 | (空) |
MYSQL_DATABASE |
默认数据库名称 | (无) |
MYSQL_SSL |
启用SSL连接 | false |
MCP_SERVER_NAME |
MCP服务器名称 | mysql-server |
MCP_SERVER_VERSION |
MCP服务器版本 | 1.0.0 |
安全考虑
- 永不承诺
.env文件 到版本控制 - MySQL用户使用强密码
- 在生产环境中启用SSL
- 考虑对高流量应用程序使用连接池
- 在MySQL中实现适当的用户权限
发展
项目结构
mcp-server-mysql/
├── src/
│ ├── index.ts # Main server entry point
│ ├── config.ts # Configuration management
│ ├── types.ts # TypeScript type definitions
│ ├── connection.ts # MySQL connection management
│ └── tools/ # MCP tool implementations
│ ├── query.ts # SQL query execution
│ ├── schema.ts # Schema exploration
│ └── database.ts # Database operations
├── dist/ # Compiled JavaScript output
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── .env.example # Environment variables template
└── README.md # This file
从源头构建
# Install dependencies
npm install
# Build TypeScript to JavaScript
npm run build
# Run in development mode
npm run dev
测试
要测试服务器,您可以使用任何兼容MCP的客户端或直接测试工具:
# Test database connection
npm run dev
故障排除
IDE特定问题
光标IDE:
- 未找到MCP服务器:确保路径
dist/index.js是绝对的 - 连接超时:检查服务器是否正在运行且可访问
- 权限不足:验证Node.js权限和文件访问权限
VS代码:
- 扩展不工作:确保MCP扩展已正确安装并启用
- 调试未启动:检查launch.json配置和Node.js路径
- 任务未运行:验证tasks.json语法和npm脚本的可用性
智能理念:
- 外部工具故障:检查Node.js安装和PATH配置
- 运行配置错误:验证JavaScript文件路径和环境变量
- 插件冲突:如果出现问题,请禁用冲突的数据库插件
常见问题
-
连接被拒绝
- 验证MySQL服务器是否正在运行
- 检查主机和端口配置
- 确保防火墙允许连接
-
认证失败
- 验证用户名和密码
- 检查MySQL用户权限
- 确保用户可以从指定的主机连接
-
未找到数据库
- 验证配置中的数据库名称
- 确保MySQL服务器上存在数据库
- 检查用户是否有权访问数据库
-
SSL连接问题
- 验证SSL配置
- 检查证书有效性
- 确保MySQL服务器支持SSL
-
IDE集成问题
- 路径问题:在IDE配置中使用绝对路径
- 环境变量:确保设置了所有必需的环境变量
- Node.js版本:验证Node.js 18+是否已安装并可访问
- 构建问题:运行
npm run build启动服务器之前
日志和调试
通过设置环境变量启用调试日志记录:
DEBUG=mcp:* npm run dev
IDE特定调试:
VS代码:
- 使用提供的启动配置
- 在TypeScript源文件中设置断点
- 查看调试控制台以获取详细输出
光标:
- 检查Cursor的开发人员控制台(帮助→ 切换开发人员工具)
- 在“网络”选项卡中监视网络请求
- 使用浏览器开发工具进行调试
智能理念:
- 在Node.js运行配置中使用内置调试器
- 设置断点并检查变量
- 在运行工具窗口中查看控制台输出
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
对于问题和疑问:
- 在存储库中创建问题
- 检查故障排除部分
- 查看MySQL文档以了解数据库特定的问题
