mcpField
M
Mcp Mysql Server

Mcp Mysql Server

本地服务
github.com/huangfeng19820712数据库2147 周前更新

关于 Mcp Mysql Server

mcp-mysql-server 是一个提供 MySQL 数据库操作的 MCP 服务,使 AI 模型可通过标准化接口查询和修改数据库。它面向需要让 AI 客户端访问 MySQL 的开发者,并提供参数化查询与 EXPLAIN 分析。

主要功能

  1. 01连接 MySQL 数据库
  2. 02SELECT 与 INSERT/UPDATE/DELETE 执行
  3. 03预处理语句参数支持
  4. 04列出表与查看表结构
  5. 05SHOW 语句与 EXPLAIN 执行计划分析

适用场景

  1. 01让 AI 客户端查询 MySQL 中的业务数据
  2. 02分析慢查询的执行计划
  3. 03查看数据库状态与变量配置

MCP 相关

该项目是一个 MCP 服务,向客户端暴露连接、查询、执行、表结构查看、SHOW 和 EXPLAIN 等工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"mysql-server-huangfeng19820712": {
"command": "npx",
"args": [
"-y",
"@fhuang/mcp-mysql-server"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<MYSQL_DATABASE>"
}
}
}
}
启动命令npx -y @fhuang/mcp-mysql-server
需要配置的环境变量
MYSQL_HOST
MYSQL_USER
MYSQL_PORT
MYSQL_PASSWORD密钥
MYSQL_DATABASE

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@fhuang/mcp-mysql-server

工具

7

收录的工具列表 · 更新于 3 周前

参数类型必填说明
hoststring是数据库主机
userstring是数据库用户
passwordstring是数据库密码
databasestring是数据库名称
portnumber否数据库端口(可选)

详细介绍

@fhuang/mcp-mysql-server

[English | 中文文档]


中文文档请参阅 README.zh-CN.md


smithery badge

一个提供 MySQL 数据库操作的 Model Context Protocol 服务。此服务可让 AI 模型通过标准化接口与 MySQL 数据库交互。

安装

通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 MySQL 服务:

npx -y @smithery/cli install @fhuang/mcp-mysql-server --client claude
手动安装
npx @fhuang/mcp-mysql-server

配置

在 MCP 设置配置文件中,需要设置以下环境变量:

建议使用

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@fhuang/mcp-mysql-server", "mysql://user:password@localhost:port/database"],
    }
  }
}
{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@fhuang/mcp-mysql-server"],
      "env": {
        "MYSQL_HOST": "your_host",
        "MYSQL_USER": "your_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database"
      }
    }
  }
}

运行 evals

evals 包会加载一个 MCP 客户端,然后运行 index.ts 文件,因此测试之间无需重新构建。可以在 npx 命令前添加环境变量来加载它们。完整文档请参阅此处。

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/index.ts

可用工具

1. connect_db

使用提供的凭据建立与 MySQL 数据库的连接。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});
2. query

执行 SELECT 查询,可选用预处理语句参数。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?",
    params: [1]
  }
});
3. execute

执行 INSERT、UPDATE 或 DELETE 查询,可选用预处理语句参数。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES (?, ?)",
    params: ["John Doe", "[email protected]"]
  }
});
4. list_tables

列出已连接数据库中的所有表。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "list_tables",
  arguments: {}
});
5. describe_table

获取指定表的结构。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});
6. show_statement

执行 SHOW 语句(如 SHOW STATUS、SHOW VARIABLES 等)。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "show_statement",
  arguments: {
    sql: "SHOW VARIABLES"
  }
});
7. explain

使用 EXPLAIN 分析 SQL 查询性能。返回执行计划详情,包括访问类型、检查的行数和可能的优化方案。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "explain",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?"
  }
});

功能

  • 安全处理连接并自动清理
  • 支持使用预处理语句传递查询参数
  • 全面的错误处理和验证
  • 支持 TypeScript
  • 自动管理连接

安全性

  • 使用预处理语句防止 SQL 注入
  • 支持通过环境变量安全处理密码
  • 执行前验证查询
  • 操作完成后自动关闭连接

错误处理

此服务针对常见问题提供详细的错误消息:

  • 连接失败
  • 无效查询
  • 缺少参数
  • 数据库错误

贡献

欢迎贡献!请随时向 https://github.com/huangfeng19820712/mcp-mysql-server 提交 Pull Request。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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