项目简介

该项目是一个符合 Model Context Protocol (MCP) 规范的服务器实现,专门用于连接和交互 MySQL 数据库。它为大型语言模型 (LLM) 客户端提供了标准化的接口,使其能够安全地读取数据库结构和执行查询,作为上下文或工具使用。

主要功能点

  • 只读数据库访问: 强制执行只读操作,只允许 SELECT 语句,并通过数据库事务确保数据安全。
  • 数据库 Schema 发现: 自动检测连接的 MySQL 数据库中的表结构,包括表名、列名和数据类型。
  • SQL 查询执行: 提供一个名为 'query' 的工具,LLM 客户端可以调用该工具并传递 SQL 查询语句来检索数据。
  • MCP 标准兼容: 完全遵循 MCP 协议,实现资源管理和工具调用等核心功能,确保与兼容 MCP 的 LLM 客户端无缝集成。
  • 简单配置: 易于安装和配置,仅需提供数据库连接 URL 即可启动服务。

安装步骤

该服务器作为一个 Node.js 包发布在 npm 上。可以使用以下命令全局安装:

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

服务器配置

MCP 服务器的配置通常在 LLM 客户端或 MCP 客户端的管理工具中完成。客户端需要知道如何启动该服务器进程。以下是该服务器进程启动所需的关键信息:

  • 服务器名称 (name): 例如 'mysql'。
  • 启动命令 (command): 'npx' (用于执行 npm 包的可执行文件)。
  • 命令行参数 (args):
    • '-y' (可选,用于 npx 快速执行)
    • '@davewind/mysql-mcp-server' (安装的 npm 包名称)
    • 'mysql://用户:密码@主机:端口/数据库' (MySQL 数据库的连接 URL,请替换为实际的连接信息)

一个典型的 MCP 客户端配置文件片段会包含类似这样的结构,但具体格式取决于客户端:

一个MCP客户端配置中,需要描述如何启动该服务器。例如,指定'command'为'npx','args'中包含服务器的包名'@davewind/mysql-mcp-server'以及必需的数据库连接URL参数,如'mysql://user:password@localhost:3306/database'。LLM客户端会根据这些配置来启动并与之通信。

基本使用方法

服务器启动后,LLM 客户端可以通过标准输入输出 (stdio) 使用 JSON-RPC 协议与之通信。

  1. 获取资源列表 (List Resources): LLM 客户端可以发送请求获取数据库中可用的资源列表,即各个表的 Schema 信息。资源 URI 通常格式为 'mysql://.../数据库名/表名/schema'。
  2. 读取资源内容 (Read Resource): LLM 客户端可以发送请求,指定某个表的 Schema 资源 URI,服务器将返回该表的列信息(列名、数据类型)作为 JSON 内容。
  3. 获取工具列表 (List Tools): LLM 客户端可以获取服务器提供的工具列表,本服务器提供一个名为 'query' 的工具。
  4. 调用工具 (Call Tool): LLM 客户端可以调用 'query' 工具,并在参数中提供一个 'sql' 字段,包含一个只读的 SQL 查询语句 (例如 'SELECT * FROM your_table LIMIT 10')。服务器将执行该查询并将结果以 JSON 格式返回。任何非 SELECT 语句都将被拒绝以确保只读安全。

信息

分类

数据库与文件