MySQL数据库连接服务器

MCP Server for MySQL是一个提供MySQL数据库无缝连接和操作的服务,允许AI助手通过标准化协议与MySQL数据库交互。

  • by apaezespinosa
  • Shell
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 apaezespinosa/mcp-server-mysql

使用说明

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:手动设置

  1. 克隆或下载此存储库

    git clone <repository-url>
    cd mcp-server-mysql
    
  2. 安装依赖项

    npm install
    
  3. 配置环境变量

    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
    
  4. 构建项目

    npm run build
    

快速开始

对于游标用户

  1. 克隆此存储库
  2. 跑 npm install && npm run build
  3. 复制 cursor-mcp-config.json 到您的Cursor配置目录
  4. 更新配置中的MySQL连接详细信息
  5. 重新启动Cursor并开始与您的数据库聊天!

对于VS代码用户

  1. 克隆此存储库
  2. 跑 npm install && npm run build
  3. 从VS Code市场安装MCP扩展
  4. 更新 .vscode/settings.json 使用MySQL凭据
  5. 按F5调试或使用提供的任务

对于其他IDE

  1. 按照以下安装步骤进行操作
  2. 使用通用MCP客户端配置
  3. 根据具体说明配置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服务器:

  1. 安装项目依赖项:

    npm install
    npm run build
    
  2. 配置光标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"
          }
        }
      }
    }
    
  3. 替代方案:使用提供的配置文件:

    • 复制 cursor-mcp-config.json 到您的Cursor配置目录
    • 根据需要更新路径和环境变量
    • 重新启动游标
  4. 测试连接:

    • 在Cursor中打开新聊天
    • 试着问:“列出MySQL服务器中的所有数据库”
    • MCP服务器应使用数据库信息进行响应

Visual Studio Code

VS Code要求MCP扩展与MCP服务器配合使用:

  1. 安装MCP扩展:

    • 打开VS代码扩展名(Cmd/Ctrl+Shift+X)
    • 搜索“MCP”或“模型上下文协议”
    • 安装官方MCP扩展
  2. 配置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"
          }
        }
      }
    }
    
  3. 使用提供的VS代码配置:

    • 该项目包括 .vscode/settings.json 具有预配置的MCP设置
    • 更新设置文件中的环境变量
    • 重新加载VS代码窗口(Cmd/Ctrl+Shift+P→ “开发人员:重新加载窗口”)
  4. 调试MCP服务器:

    • 使用中提供的启动配置 .vscode/launch.json
    • 在代码中设置断点
    • 按F5开始调试

其他IDE

IntelliJ IDEA/WebStorm

  1. 安装Node.js插件 (如果尚未安装)

  2. 将MCP服务器配置为外部工具:

    • 转到文件→ 设置→ 工具→ 外部工具
    • 添加新工具:
      • 姓名: MCP MySQL Server
      • 程序: node
      • 论据: dist/index.js
      • 工作目录: $ProjectFileDir$
      • 环境变量:添加MySQL连接详细信息
  3. 创建运行配置:

    • 去跑步→ 编辑配置
    • 添加新的Node.js配置
    • 将JavaScript文件设置为 dist/index.js
    • 为MySQL连接添加环境变量

代码编辑器

  1. 安装LSP-MCP包:

    • 如果尚未安装,请安装包控制
    • 安装“LSP-MCP”软件包
  2. 配置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

  1. 安装MCP插件:

    " Using vim-plug
    Plug 'modelcontextprotocol/mcp-vim'
    
  2. 在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文件路径和环境变量
  • 插件冲突:如果出现问题,请禁用冲突的数据库插件

常见问题

  1. 连接被拒绝

    • 验证MySQL服务器是否正在运行
    • 检查主机和端口配置
    • 确保防火墙允许连接
  2. 认证失败

    • 验证用户名和密码
    • 检查MySQL用户权限
    • 确保用户可以从指定的主机连接
  3. 未找到数据库

    • 验证配置中的数据库名称
    • 确保MySQL服务器上存在数据库
    • 检查用户是否有权访问数据库
  4. SSL连接问题

    • 验证SSL配置
    • 检查证书有效性
    • 确保MySQL服务器支持SSL
  5. IDE集成问题

    • 路径问题:在IDE配置中使用绝对路径
    • 环境变量:确保设置了所有必需的环境变量
    • Node.js版本:验证Node.js 18+是否已安装并可访问
    • 构建问题:运行 npm run build 启动服务器之前

日志和调试

通过设置环境变量启用调试日志记录:

DEBUG=mcp:* npm run dev

IDE特定调试:

VS代码:

  • 使用提供的启动配置
  • 在TypeScript源文件中设置断点
  • 查看调试控制台以获取详细输出

光标:

  • 检查Cursor的开发人员控制台(帮助→ 切换开发人员工具)
  • 在“网络”选项卡中监视网络请求
  • 使用浏览器开发工具进行调试

智能理念:

  • 在Node.js运行配置中使用内置调试器
  • 设置断点并检查变量
  • 在运行工具窗口中查看控制台输出

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

支持

对于问题和疑问:

  • 在存储库中创建问题
  • 检查故障排除部分
  • 查看MySQL文档以了解数据库特定的问题