返回市场
MySQL MCP 服务器

MySQL MCP 服务器

作者:dave-wind11 星标更新:2025-04-27

项目介绍

@davewind/mysql-mcp-server

这是一个提供对MySQL数据库只读访问的Model Context Protocol(MCP)服务器。该服务器使大型语言模型(LLMs)能够检查数据库模式并执行只读查询。

主要特性

  1. 只读数据库访问:通过SQL验证和只读事务强制执行只读操作
  2. 模式发现:自动识别并暴露数据库表结构
  3. SQL查询执行:提供一个接受并执行SELECT语句的查询工具
  4. 符合Model Context Protocol规范:实现MCP规范以无缝集成兼容的LLMs
  5. 简单配置:只需最少的配置即可轻松设置

工具

  • query
    • 对连接的数据库执行只读SQL查询
    • 输入:sql(字符串):要执行的SQL查询
    • 所有查询都在只读事务中执行

资源

服务器提供数据库中每个表的模式信息:

  • 表模式 (mysql://user:password@localhost:3306/database)
    • 每个表的JSON模式信息
    • 包括列名和数据类型
    • 自动从数据库元数据中发现

安装

npm install @davewind/mysql-mcp-server -g

配置

MCP设置配置文件:

推荐使用

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@davewind/mysql-mcp-server", "mysql://user:password@localhost:port/database"],
    }
  }
}

测试

替换mysql://user:password@localhost:port/ 和 npm run inspector

  "scripts": {
    "inspector": "npx @modelcontextprotocol/inspector@0.10.2 build/index.js mysql://user:password@localhost:port/database"
  }

环境

node v18 +

系统架构

MySQL MCP服务器作为LLMs和MySQL数据库之间的中介,根据Model Context Protocol处理请求。

<p> <img src="./docs/High-Level Architecture.png" alt=""/> </p>

组件交互

<p> <img src="./docs/component-Interaction.png" alt=""/> </p>

安全模型

MySQL MCP服务器实施严格的安全部署,确保数据库访问是只读的。

<p> <img src="./docs/Security Model.png" alt=""/> </p>

安全措施包括:

  1. SQL查询验证,仅允许SELECT语句
  2. 在只读事务中执行所有查询
  3. 不支持数据修改操作(INSERT、UPDATE、DELETE等)
  4. 不支持数据库模式修改(CREATE、ALTER、DROP等)

与LLMs的集成

MySQL MCP服务器设计用于与任何支持Model Context Protocol的LLM系统配合工作。它通过stdio上的JSON-RPC进行通信,遵循MCP规范。

<p> <img src="./docs/Integration with LLMs.png" alt=""/> </p>

许可证

MIT