返回市场
MySQL查询MCP服务器

MySQL查询MCP服务器

作者:devakone8 星标更新:2025-05-31

项目介绍

MySQL 查询 MCP 服务器

npm 版本 许可证:MIT

这是一个提供只读MySQL数据库查询的Model Context Protocol (MCP)服务器,适用于AI助手。执行查询、探索数据库结构并直接从您的AI工具中调查数据。

<a href="https://glama.ai/mcp/servers/@devakone/mysql-query-mcp-server"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1950017583,4032760955&fm=3081&app=33081&f=PNG?w=760&h=400" alt="MySQL 查询服务器 MCP 服务器" /> </a>

支持的AI工具

此MCP服务器与支持Model Context Protocol的任何工具兼容,包括:

  • Cursor IDE:在.cursor/mcp.json中设置
  • Anthropic Claude:使用兼容的MCP客户端
  • 其他兼容MCP的AI助手:遵循工具的MCP配置说明

功能与限制

它能做什么

  • ✅ 执行只读MySQL查询(仅限SELECT、SHOW、DESCRIBE)
  • ✅ 使用预定义环境(本地、开发、测试、生产)
  • ✅ 提供数据库信息和元数据
  • ✅ 列出可用的数据库环境
  • ✅ 支持SSL连接以安全访问数据库
  • ✅ 实现查询超时以防止长时间运行的操作

它不能做什么

  • ❌ 执行写操作(INSERT、UPDATE、DELETE、CREATE、ALTER等)
  • ❌ 支持自定义环境名称(仅限本地、开发、测试、生产)
  • ❌ 提供数据库设计或模式生成功能
  • ❌ 作为完整的数据库管理工具

此工具专门用于通过只读查询进行数据调查和探索。它不适用于数据库管理、模式管理和数据修改。

MySQL 查询 MCP 演示

快速安装

# 全局安装
npm install -g mysql-query-mcp-server

# 或直接运行
npx mysql-query-mcp-server

设置说明

配置您的AI工具以使用MCP服务器

创建或编辑您的MCP配置文件(例如,Cursor IDE中的.cursor/mcp.json):

基本配置:

{
  "mysql": {
    "name": "MySQL 查询 MCP",
    "description": "通过MCP访问MySQL只读查询",
    "type": "bin", 
    "enabled": true,
    "bin": "mysql-query-mcp"
  }
}

包含数据库凭证的全面配置:

{
  "mysql": {
    "command": "npx",
    "args": ["mysql-query-mcp-server@latest"],
    "env": {
      "LOCAL_DB_HOST": "localhost",
      "LOCAL_DB_USER": "root",
      "LOCAL_DB_PASS": "<YOUR_LOCAL_DB_PASSWORD>",
      "LOCAL_DB_NAME": "your_database",
      "LOCAL_DB_PORT": "3306",
      
      "DEVELOPMENT_DB_HOST": "dev.example.com",
      "DEVELOPMENT_DB_USER": "<DEV_USER>",
      "DEVELOPMENT_DB_PASS": "<DEV_PASSWORD>",
      "DEVELOPMENT_DB_NAME": "your_database",
      "DEVELOPMENT_DB_PORT": "3306",
      
      "STAGING_DB_HOST": "staging.example.com",
      "STAGING_DB_USER": "<STAGING_USER>",
      "STAGING_DB_PASS": "<STAGING_PASSWORD>",
      "STAGING_DB_NAME": "your_database",
      "STAGING_DB_PORT": "3306",
      
      "PRODUCTION_DB_HOST": "prod.example.com",
      "PRODUCTION_DB_USER": "<PRODUCTION_USER>",
      "PRODUCTION_DB_PASS": "<PRODUCTION_PASSWORD>",
      "PRODUCTION_DB_NAME": "your_database",
      "PRODUCTION_DB_PORT": "3306",
      
      "DEBUG": "false",
      "MCP_MYSQL_SSL": "true",
      "MCP_MYSQL_REJECT_UNAUTHORIZED": "false"
    }
  }
}

选择正确的配置方法

有两种方式来配置MySQL MCP服务器:

  1. 二进制配置 (type: "bin", bin: "mysql-query-mcp")

    • 何时使用:当您已全局安装了包 (npm install -g mysql-query-mcp-server)
    • 优点:配置更简单
    • 缺点:需要全局安装
  2. 命令配置 (command: "npx", args: ["mysql-query-mcp-server@latest"])

    • 何时使用:当您想使用最新版本而不进行全局安装
    • 优点:无需全局安装,所有配置在一个文件中
    • 缺点:配置更复杂

选择最适合您工作流程的方法。两种方法都将正确地与支持MCP的任何AI助手一起工作。

重要配置注意事项

  • 您必须使用完整的环境名称:LOCAL_, DEVELOPMENT_, STAGING_, PRODUCTION_
  • 缩写如DEV_或PROD_将不起作用
  • 全局设置如DEBUG, MCP_MYSQL_SSL适用于所有环境
  • 至少需要配置一个环境(通常是“本地”)
  • 您只需配置计划使用的环境
  • 出于安全考虑,请考虑使用环境变量或安全凭证存储来保存生产凭证

配置选项

环境变量描述默认值
DEBUG启用调试日志false
[ENV]_DB_HOST环境的数据库主机-
[ENV]_DB_USER数据库用户名-
[ENV]_DB_PASS数据库密码-
[ENV]_DB_NAME数据库名称-
[ENV]_DB_PORT数据库端口3306
[ENV]_DB_SSL启用SSL连接false
MCP_MYSQL_SSL启用所有连接的SSLfalse
MCP_MYSQL_REJECT_UNAUTHORIZED验证SSL证书true

与AI助手的集成

您的AI助手可以通过MCP服务器与MySQL数据库交互。以下是一些示例:

示例查询:

能否使用查询工具显示数据库中的前10个用户?使用本地环境。
我需要分析我们的销售数据。能否运行SQL查询以获取上个月每个地区的总销售额,从开发数据库中?
能否使用info工具检查在测试数据库中有哪些表?
能否列出我们已配置的所有可用数据库环境?

使用MySQL MCP工具

MySQL查询MCP服务器提供了三个主要工具,您的AI助手可以使用它们:

1. query

针对特定环境执行只读SQL查询:

使用query工具运行:
SELECT * FROM customers WHERE signup_date > '2023-01-01' LIMIT 10;
在开发环境中

2. info

获取有关数据库的详细信息:

使用info工具检查我们的生产数据库状态。

3. environments

列出配置文件中的所有已配置环境:

使用environments工具显示有哪些可用的数据库环境。

可用工具

MySQL查询MCP服务器提供了三个主要工具:

1. query

执行只读SQL查询:

-- 使用query工具运行的示例查询
SELECT * FROM users LIMIT 10;

支持的查询类型(严格限制为)

  • SELECT语句
  • SHOW命令
  • DESCRIBE/DESC表格

2. info

获取有关数据库的详细信息:

  • 服务器版本
  • 连接状态
  • 数据库变量
  • 进程列表
  • 可用数据库

3. environments

列出配置文件中的所有已配置环境:

使用environments工具显示有哪些可用的数据库环境。

安全注意事项

  • ✅ 只允许执行只读查询(SELECT、SHOW、DESCRIBE)
  • ✅ 每个环境都有自己的隔离连接池
  • ✅ 生产环境支持SSL连接
  • ✅ 查询超时可防止长时间运行的操作
  • ⚠️ 考虑使用安全凭证管理来处理数据库凭证

故障排除

连接问题

如果您遇到连接问题:

  1. 核实您的MCP配置中的数据库凭证
  2. 确保MySQL服务器正在运行且可访问
  3. 检查是否有防火墙规则阻止连接
  4. 在配置中启用调试模式(设置DEBUG=true)

常见错误

错误:没有可用的连接池环境

  • 确保您已为该环境定义了所有必需的环境变量
  • 检查您是否使用了支持的环境名称之一(本地、开发、测试、生产)

错误:查询执行失败

  • 核实您的SQL语法
  • 检查您是否仅使用了支持的查询类型(SELECT、SHOW、DESCRIBE)
  • 确保您的查询确实是只读的

对于更详细的故障排除,请参阅Troubleshooting Guide

对于如何与AI助手集成的示例,请参阅Integration Examples

关于MCP协议实现细节,请参阅MCP README

贡献

欢迎贡献!请随时提交Pull Request。

CI/CD 和发布过程

该项目使用GitHub Actions进行持续集成和自动化发布。

CI/CD 工作流

CI/CD管道由以下部分组成:

  1. 构建和测试:每次向maindevelop分支推送代码以及对这些分支的拉取请求时运行

    • 使用Node.js 16.x和18.x测试代码库
    • 确保包正确构建
    • 验证所有测试通过
  2. 发布:当更改被推送到main分支并且构建/测试作业成功时运行

    • 使用release-please管理版本提升和变更日志更新
    • 创建带有版本更改的发布PR,基于常规提交
    • 当合并发布PR时自动发布到npm

发布过程

项目遵循语义化版本控制

  • 主版本:重大变更(非向后兼容)
  • 次版本:新功能(向后兼容)
  • 补丁版本:错误修复和小改进

提交应遵循常规提交格式:

  • feat: 添加新功能 - 次版本提升
  • fix: 解决错误 - 补丁版本提升
  • docs: 更新文档 - 不提升版本
  • chore: 更新依赖项 - 不提升版本
  • BREAKING CHANGE: 更改API - 主版本提升

当您推送到main时,release-please将分析提交并自动创建或更新带有适当版本提升和变更日志条目的发布PR。

许可证

本项目根据MIT许可证授权 - 详情请参阅LICENSE文件。

作者

Abou Koné - 工程负责人和CTO


如需更多信息或支持,请在GitHub仓库中打开一个问题