m

mysql服务器

ahoo123456/mcp-mysql-server
1 Stars 75 次浏览 更新于 2026-08-23

--- > 对于中文文档,请参见 --- 一个提供MySQL数据库操作的模型上下文协议服务器。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

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

该服务需要配置环境变量:MYSQL_DATABASE、MYSQL_HOST、MYSQL_PASSWORD、MYSQL_USER

服务介绍

@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", "john@example.com"]

  }

});

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

相关 MCP 服务