MySQL数据库查询工具

MySQL MCP Server是一个连接本地MySQL数据库的工具,使大型语言模型(LLM)能够执行SQL查询。

  • by yuki777
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 yuki777/mysql-mcp-server

使用说明

MySQL MCP服务器

MySQL Model Context Protocol(MCP)服务器是本地环境的MySQL连接到数据库SQL一种允许查询的工具。

要件

  • Node.js: 20.0.0以上
  • MySQL:5.7或更高MySQL在工作空间的边缘MariaDB服务器

机能

  • MySQL执行查询: LLM从…开始SQL直接查询
  • 获取数据库信息:检查数据库列表、表列表和表结构
  • MCP準拠: Model Context Protocol 中所述修改相应参数的值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端口㏺ | -u, --user <user> | MySQL用户|root | | --password <password> | MySQL密码|(空字符)| | -d, --database <database> 默认数据库(可选) | -c, --config <path> 设置文件路径(可选) | --auto-connect 服务器启动时自动连接到数据库false | | --server-port <port> | MCP服务器端口(在stdio模式下不使用)\u0026#3000\u0026# | --server-host <host> | MCP服务器主机(在stdio模式下不使用)localhost | | --query-timeout <ms> 查询超时(毫秒) | --max-results <count> |最大结果行数| 1000 | | --debug 调试模式false |

保存和重用连接信息

MySQL MCP Server本地保存已成功连接的数据库的信息。这将在下次启动时自动重用连接信息。保存的连接信息位于用户的主目录中 .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 Server表示MCP (Model Context Protocol) 而需要与环境混合的每条反射光线,进行环境采样。这样就不会绑定到特定的端口,而是通过标准输入输出进行通信。它具有以下优点:

  1. 避免端口冲突:不使用特定端口,因此不会出现端口冲突问题
  2. 提高了安全性:不使用网络通信,降低了网络级攻击风险
  3. 简化的进程间通信: LLM简化通信

注意点

  • stdio在模式下JSON交换形式的信息
  • 一行一个JSON需要发送消息
  • 错误信息和连接日志输出到标准错误

提供MCP工具

数据库连接管理

工具名称|说明|必需参数| |---------|------|-------------| | connect_database | 连接到数据库host, port, user | | disconnect_database | 断开当前数据库连接|无| | get_connection_status | 获取数据库连接状态|无|

SQL查询操作

工具名称|说明|必需参数| |---------|------|-------------| | execute_query | MySQL执行查询query: SQL语句 | get_databases | 获取可用数据库的列表|无| | get_tables | 获取指定数据库中的表列表database (可选) | describe_table | 获取指定表的结构table |

接続管理机能

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

许可证

国际协调委员会

貢献

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