返回市场
MySQL MCP 服务器

MySQL MCP 服务器

作者:TickHaiJun21 星标更新:2025-08-27

项目介绍

MCP MySQL 服务器

<p align="center"> <img src="https://img.shields.io/badge/Node.js-18%2B-green" alt="Node.js 版本"> <img src="https://img.shields.io/badge/License-ISC-blue.svg" alt="许可证"> <img src="https://img.shields.io/badge/平台-Windows%20%7C%20Linux%20%7C%20MacOS-lightgrey" alt="平台"> </p> <p align="center"> <img src="https://gips2.baidu.com/it/u=1931859454,1459598917&fm=3081&app=3081&f=PNG?w=288&h=288" width="120" alt="MySQL 标志" /> </p>

项目介绍

MCP MySQL 服务器基于 @modelcontextprotocol/sdk,提供支持 SQL 查询、表结构检索、连接检测等功能的 MySQL 工具服务,适用于 AI 代理和自动化工具等场景。

主要功能

  • 执行 SQL 查询(SELECT, INSERT, UPDATE, DELETE)
  • 检索数据库表结构信息
  • 检测数据库连接状态
  • SQL 语句和参数的安全验证
  • 简洁的服务启动和关闭

架构描述

  • 入口文件src/index.js 启动和管理 MCP 服务器实例
  • 服务实现src/server.js 实现 MCP 服务器,注册工具并处理请求
  • 数据库管理src/database.js 管理 MySQL 连接池,执行 SQL 和检索表结构
  • 配置管理src/config.js 支持 .env 环境变量和默认配置
  • 安全验证src/validators.js 验证 SQL 语句和参数以防止危险操作和注入

安装与使用

  1. 克隆项目
    git clone https://github.com/yourname/mcp-mysql-server.git
    cd mcp-mysql-server
    
  2. 安装依赖
    npm install
    
  3. 配置数据库连接(可选,支持 .env 文件)
    DB_HOST=localhost
    DB_PORT=3306
    DB_USER=root
    DB_PASSWORD=yourpassword
    DB_NAME=yourdatabase
    
  4. 启动服务
    node src/index.js
    

配置说明

  • 通过环境变量或 .env 文件配置数据库和服务参数
  • 主要配置项在 src/config.js 中显示

主要实现细节

  • 使用 mysql2/promise 实现高效的连接池和异步 SQL 执行
  • 所有 SQL 语句和参数都经过安全检查,以防止危险操作和 SQL 注入
  • MCP 服务器支持三大工具:
    • execute_sql 执行 SQL 查询
    • get_tables_info 检索所有表和字段结构
    • get_connection_status 检测数据库连接
  • 精心处理进程信号,支持平滑关闭

安全须知

  • 禁止执行危险操作如 DROP/RUNCATE/ALTER
  • 检查常见的 SQL 注入模式
  • 限制参数数量以防止滥用
  • 禁用多语句执行

验证开发的 MCP 服务器是否能在光标中运行

在光标中添加 MCP 服务器

通过 光标设置 -> MCP 添加新的全局 MCP 服务器,可以将 MCP 服务作为全局可用。这意味着您配置的 MCP 服务将在所有项目中生效。

也可以仅在项目级别添加

在项目 .cursor 目录下创建一个新的 mcp.json 配置文件,这样的设置仅对特定项目生效。

MCP 服务器的格式是什么?

配置服务器的基本格式规范

{
  "mcpServers": {
    "<服务器名称>": {
      "command": "<启动命令>",
      "args": ["<参数1>", "<参数2>", ...],
      "env": {
        "<环境变量名1>": "<值1>",
        "<环境变量名2>": "<值2>",
        ...
      },
      "transport": "<传输协议>",
      "port": <端口号>,
      "host": "<主机地址>"
    }
  }
}

查询数据库表和字段信息

检查当前数据库是否已连接

查询表中的数据

看到这些是不是觉得很神奇?我们用自然语言描述需求,AI 助手自动生成并执行 SQL,然后分析结果提供结论。

依赖

贡献方式

欢迎提交问题和 PR 来贡献!

许可证

ISC 许可证