Skip to main content
Glama
chenkumi

easy-mysql-mcp

by chenkumi

easy-mysql-mcp

一个轻量级的 模型上下文协议 (MCP) 服务器,允许 AI 助手通过安全、结构化的工具接口检查和查询 MySQL 数据库。

本项目使用 Node.js、TypeScript、官方 MCP SDK 和 mysql2/promise。它通过 stdio 运行,因此可以直接被 Claude Desktop 等 MCP 客户端使用。

特性

  • mysql2/promise 提供支持的 MySQL 连接池

  • 用于数据检索的只读查询工具

  • 用于数据修改语句的执行工具

  • 用于表、视图、索引和触发器的架构发现工具

  • 使用 EXPLAIN 进行查询计划检查

  • 当前用户和权限检查

  • stdout 保护,防止非 MCP 日志污染 stdio 协议

要求

  • Node.js 18 或更高版本

  • npm

  • 一个可访问的 MySQL 兼容数据库

安装

使用 npx 直接运行服务器:

npx -y easy-mysql-mcp

克隆仓库后进行本地开发:

cd easy-mysql-mcp
npm install
npm run build

配置

使用环境变量配置服务器。你可以通过 MCP 客户端配置提供它们,或者创建一个本地 .env 文件。

变量

必需

默认值

描述

MYSQL_HOST

-

MySQL 主机名或 IP 地址

MYSQL_PORT

3306

MySQL 端口

MYSQL_USER

-

MySQL 用户名

MYSQL_PASSWORD

-

MySQL 密码

MYSQL_DATABASE

-

默认数据库/架构

MYSQL_CONNECTION_LIMIT

10

最大活跃连接池数量

MYSQL_MAX_IDLE

10

最大空闲连接池数量

MYSQL_IDLE_TIMEOUT

60000

空闲连接超时(毫秒)

MYSQL_QUEUE_LIMIT

0

最大排队连接请求数,0 表示无限制

MYSQL_WAIT_FOR_CONNECTIONS

true

当所有连接繁忙时,连接池是否等待

MYSQL_ENABLE_KEEP_ALIVE

true

是否启用 TCP keep-alive

MYSQL_KEEP_ALIVE_INITIAL_DELAY

0

初始 TCP keep-alive 延迟(毫秒)

.env 示例:

MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database

使用方法

配置你的 MCP 客户端通过 npx 启动该包。

对于本地开发,请先构建 TypeScript 源码:

npm run build

启动 MCP 服务器:

npm start

服务器通过 stdio 进行通信,通常由 MCP 客户端启动,而不是手动运行。

Claude Desktop 示例

将服务器添加到你的 claude_desktop_config.json 中:

{
  "mcpServers": {
    "easy-mysql-mcp": {
      "command": "npx",
      "args": ["-y", "easy-mysql-mcp"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "root",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database"
      }
    }
  }
}

更新配置后重启 Claude Desktop。

可用工具

工具

描述

mysql_query

执行用于数据检索的 SQL 查询,例如 SELECT

mysql_execute

执行数据修改语句,例如 INSERTUPDATEDELETE

explain_query

为 SQL 查询运行 EXPLAIN 并返回执行计划

list_tables

列出当前数据库中的基础表,包括近似行数和注释

list_views

列出当前数据库中的视图

describe_table

显示一个或多个表的列信息

describe_index

显示表的索引

list_triggers

列出当前数据库中的触发器

get_current_privileges

显示当前 MySQL 用户及其权限

安全说明

  • 使用具有助手所需最小权限的专用 MySQL 用户。

  • 如果只需要检查和报告,请优先使用只读数据库凭据。

  • 使用 mysql_execute 时要小心,因为它可能会修改数据。

  • 不要将 .env 文件或真实的数据库凭据提交到 GitHub。

  • 在对生产数据运行生成的 SQL 之前,请务必进行审查。

开发

npm run dev

这将在监视模式下运行 TypeScript。

要创建生产构建:

npm run build

项目结构

src/
  db.ts       MySQL pool and query helpers
  index.ts    MCP server and tool registration
  proxy.ts    stdout protection for stdio-based MCP transport

许可证

ISC

Install Server
F
license - not found
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chenkumi/easy-mysql-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server