Skip to main content
Glama
yuki777

MySQL MCP Server

by yuki777

MySQL MCP 服务器

MySQL 模型上下文协议 (MCP) 服务器是一种工具,它允许您连接到本地 MySQL 数据库并允许大型语言模型 (LLM) 对其执行 SQL 查询。

要求

  • Node.js :20.0.0 或更高版本

  • MySQL :MySQL 或 MariaDB 服务器版本 5.7 或更高版本

Related MCP server: YugabyteDB MCP Server

功能

  • 运行 MySQL 查询:直接从 LLM 运行 SQL 查询

  • 获取数据库信息:数据库列表、表列表、确认表结构

  • 符合 MCP 规范:支持模型上下文协议,可与 LLM 集成

  • stdio 通信:使用标准输入/输出与 LLM 通信,无需端口绑定

  • 保存连接信息:将数据库连接信息保存在本地并重复使用

安装和使用

NPX 中的临时执行

 npx -y https://github.com/yuki777/mysql-mcp-server --host 127.0.0.1 --port 13306 --user root

选项

选项

解释

默认值

-h, --host <host>

MySQL 主机

本地主机

-p, --port <port>

MySQL 端口

13306

-u, --user <user>

MySQL 用户

--password <password>

MySQL 密码

(空字符串)

-d, --database <database>

默认数据库

(选项)

-c, --config <path>

配置文件路径

(选项)

--auto-connect

服务器启动时自动连接数据库

错误的

--server-port <port>

MCP 服务器端口(在 stdio 模式下不使用)

3000

--server-host <host>

MCP 服务器主机(在 stdio 模式下不使用)

本地主机

--query-timeout <ms>

查询超时(毫秒)

30000

--max-results <count>

最大结果行数

1000

--debug

调试模式

错误的

保存并重复使用连接信息

MySQL MCP 服务器在本地存储已成功连接的数据库的信息。这允许在下次启动时自动重新使用连接信息。保存的连接信息存储在用户主目录中的.mysql-mcp-connections.json文件中。

连接信息包括:

  • 主机名

  • 端口号

  • 用户名

  • 密码

  • 数据库名称(如果设置)

使用配置文件

您还可以使用配置文件(JSON格式)配置连接信息:

{
  "server": {
    "port": 3000,
    "host": "localhost"
  },
  "mysql": {
    "host": "localhost",
    "port": 13306,
    "user": "root",
    "password": "yourpassword",
    "database": "mydb"
  },
  "debug": false,
  "queryTimeout": 30000,
  "maxResultSize": 1000
}

如果您使用配置文件:

npx -y https://github.com/yuki777/mysql-mcp-server -c ./mysql-mcp-config.json

沟通方式

MySQL MCP 服务器以符合 MCP(模型上下文协议)的“stdio”模式运行。这使得它能够通过标准输入和输出进行通信,而不是绑定到特定端口。这具有以下优点:

  1. 避免端口冲突:不使用特定端口,因此不会发生端口冲突问题

  2. 提高安全性:不使用网络通信,降低网络级攻击的风险

  3. 简单的进程间通信:简化与 LLM 的通信

注意事项

  • 在 stdio 模式下,消息以 JSON 格式发送。

  • 必须每行发送一条 JSON 消息

  • 错误信息和连接日志输出到标准错误(stderr)。

提供的 MCP 工具

数据库连接管理

工具名称

解释

必需参数

连接数据库

连接到数据库

主机、端口、用户

断开数据库连接

断开当前数据库连接

没有任何

获取连接状态

获取数据库连接的状态

没有任何

SQL查询操作

工具名称

解释

必需参数

执行查询

运行 MySQL 查询

查询:SQL语句

获取数据库

获取可用数据库的列表

没有任何

获取表

获取指定数据库中的表列表。

数据库(可选)

描述表

获取指定表的结构。

桌子

连接管理功能

MySQL MCP Server 允许您分离服务器启动和数据库连接。这种方法具有以下好处:

  1. 无需连接信息即可启动:无需数据库连接信息即可启动服务器。

  2. 多数据库连接:服务器启动后,可以切换到不同的数据库连接。

  3. 简单安装:只需运行npx -y https://github.com/yuki777/mysql-mcp-server

如何使用连接管理

  1. 启动服务器但不自动连接

    npx -y https://github.com/yuki777/mysql-mcp-server
  2. 使用连接工具连接数据库

    {
      "type": "tool_call",
      "request_id": "req_1",
      "tool": "connect_database",
      "arguments": {
        "host": "localhost",
        "port": 3306,
        "user": "root",
        "password": "your_password",
        "database": "your_db"
      }
    }
  3. 检查您的连接状态

    {
      "type": "tool_call",
      "request_id": "req_2",
      "tool": "get_connection_status",
      "arguments": {}
    }
  4. 连接丢失

    {
      "type": "tool_call",
      "request_id": "req_3",
      "tool": "disconnect_database",
      "arguments": {}
    }

测试脚本

该存储库包含一个名为test-connection-management.js的测试脚本。您可以使用此脚本来测试连接管理功能:

node test-connection-management.js

开发者信息

设置开发环境

# リポジトリのクローン
git clone [repository-url]
cd mysql-mcp-server

# 依存関係のインストール
npm install

# 開発モードでの実行
npm run dev

建造

npm run build

执照

国际学习中心

贡献

欢迎报告错误、功能请求和拉取请求。

-
security - not tested
F
license - not found
-
quality - not tested

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/yuki777/mysql-mcp-server'

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