mcpField
M
MySQL MCP Server

MySQL MCP Server

本地服务
github.com/actstorms数据库082 周前更新

关于 MySQL MCP Server

MySQL MCP Server 让 MCP 客户端通过工具查询和修改已配置的 MySQL 数据库,适合需要在 AI 助手中访问数据库的开发者。写操作默认关闭,可通过环境变量启用。

主要功能

  1. 01连接配置的 MySQL 数据库
  2. 02执行 SELECT、SHOW 和 DESCRIBE
  3. 03通过独立工具执行写操作
  4. 04环境变量控制写操作权限
  5. 05使用 stdio 通信

适用场景

  1. 01让 AI 助手查询 MySQL 数据
  2. 02在启用写权限后插入或更新记录
  3. 03通过 MCP 客户端检查数据库结构

MCP 相关

该 MCP 服务通过 stdio 向客户端提供 SQL 查询及写入工具。INSERT、UPDATE 和 DELETE 仅在设置 MYSQL_ALLOW_WRITE_OPS=true 后启用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MySQL MCP 服务

版本:0.1.0

一个用于与 MySQL 数据库交互的模型上下文协议(MCP)服务。此服务允许 MCP 客户端(例如 AI 助手)查询和修改已配置的 MySQL 数据库中的数据。

功能

  • 使用标准连接参数连接到 MySQL 数据库。
  • 提供用于执行 SQL 查询和语句的 MCP 工具。
  • 支持只读查询(SELECT、SHOW、DESCRIBE)。
  • 通过单独的工具支持写入操作(INSERT、UPDATE、DELETE),并由环境变量(MYSQL_ALLOW_WRITE_OPS)控制。
  • 通过标准输入/输出(stdio)通信。

安装

# Install as a project dependency (recommended for use within another project)
npm install

# Or, if intended as a standalone global tool:
# 1. Build the project:
#    npm run build
# 2. Link it globally:
#    npm link 
#    (or use `npm install -g .` if publishing)

配置

此服务需要设置以下环境变量以连接数据库:

  • MYSQL_HOST:MySQL 服务的主机名或 IP 地址。
  • MYSQL_USER:用于连接数据库的用户名。
  • MYSQL_PASSWORD:指定用户的密码。
  • MYSQL_DATABASE:要连接的数据库名称。
  • MYSQL_PORT:(可选)MySQL 服务的端口号(默认为 3306)。
  • MYSQL_ALLOW_WRITE_OPS:(可选)设为 true 以启用 insert、update 和 delete 工具。默认为 false(禁用写入操作)。**警告:**启用写入操作后,MCP 客户端可以修改你的数据库。请谨慎使用。

这些变量必须在启动服务进程的环境中可用。设置方式取决于你的操作系统以及运行服务的方式(例如,.env 文件、系统环境变量或 shell export)。

用法

配置并构建(npm run build)后,即可运行服务:

# If linked globally
mysql-server

# Or run directly using node
node build/index.js 

服务启动后会向 stderr 输出 MySQL MCP server running on stdio,然后通过标准输入/输出监听 MCP 请求。通常需要配置 MCP 客户端(例如,AI 助手集成)连接到此服务进程。

可用工具

此服务向 MCP 客户端提供以下工具:

1. query
  • **说明:**对已配置的数据库执行只读 SQL 查询(SELECT、SHOW、DESCRIBE)。
  • 输入架构:
    {
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "description": "要执行的只读 SQL 查询(SELECT、SHOW、DESCRIBE)。"
        }
      },
      "required": ["sql"]
    }
    
  • **输出:**在 MCP 响应的 content 中以 JSON 字符串形式返回查询结果。如果查询不是只读查询或发生数据库错误,则返回错误。
2. insert
  • **说明:**执行 INSERT SQL 语句。需要将 MYSQL_ALLOW_WRITE_OPS 设为 true。
  • 输入架构:
    {
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "description": "要执行的 INSERT SQL 语句。"
        }
      },
      "required": ["sql"]
    }
    
  • **输出:**返回包含受影响行数和插入 ID(如适用)的成功消息;如果操作失败或写入操作已禁用,则返回错误消息。
3. update
  • **说明:**执行 UPDATE SQL 语句。需要将 MYSQL_ALLOW_WRITE_OPS 设为 true。
  • 输入架构:
    {
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "description": "要执行的 UPDATE SQL 语句。"
        }
      },
      "required": ["sql"]
    }
    
  • **输出:**返回包含受影响行数的成功消息;如果操作失败或写入操作已禁用,则返回错误消息。
4. delete
  • 描述: 执行 DELETE SQL 语句。需要将 MYSQL_ALLOW_WRITE_OPS 设置为 true。
  • 输入架构:
    {
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "description": "要执行的 DELETE SQL 语句。"
        }
      },
      "required": ["sql"]
    }
    
  • 输出: 成功时返回包含受影响行数的成功消息;如果操作失败或写入操作已禁用,则返回错误消息。

开发

如需处理服务代码:

  1. 克隆仓库:(如适用)
    # git clone <repository-url>
    # cd mysql-server
    
  2. 安装依赖:
    npm install
    
  3. 构建代码:(将 TypeScript 编译为 build/ 中的 JavaScript)
    npm run build
    
  4. 监视更改:(更改后自动重新编译)
    npm run watch
    
  5. 运行 MCP Inspector:(在本地测试/调试服务)
    # 请确保已先构建代码
    npm run inspector 
    

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。