使用说明
通用MySQL MCP服务器
[](https://www.mysql.com/ 此存储库包含通用、安全和高效的 模型上下文协议(MCP) MySQL数据库服务器。充当安全桥梁,允许AI代理和应用程序(MCP客户端)与任何MySQL数据库交互,而不需要间接凭据 这个服务器被设计成一个独立的、可重用的npm包。它最初是为 EventScribe AI 项目,但可以由任何兼容MCP的客户端使用
✨ 关键特征
- 动态模式发现:将完整的数据库架构作为MCP公开
resource,允许AI代理了解它连接到的任何数据库的结构。 - 安全只读查询:提供
read_only_query主控程序tool严格执行SELECT声明,防止任何破坏性操作并保护您的数据。 - 高性能:使用MySQL连接池进行高效、高并发的数据库交互,适用于生产环境。
- 简单配置:使用清洁剂
.env将文件保存在用户的主目录中,确保凭据安全,并将froclient应用程序分开。 - 优雅地关闭:包括在服务器进程终止时彻底关闭数据库连接的逻辑
🏗️ 架构:服务器的角色
此MCP服务器是现代代理架构中的“数据层”。客户端(例如Next.js应用程序)编排工作流,而此服务器是唯一可以直接访问数据库的组件
graph TD
subgraph "Client's Responsibility (e.g., EventScribe AI)"
A["Client Application"]
A -- "Starts & Manages Process" --> B
A -- "Sends 'Get Schema' Request" --> B
A -- "Sends 'Run Query' Request" --> B
end
subgraph "Server's Responsibility (This Project)"
B["MySQL MCP Server"]
B -- "Manages Connection Pool" --> C[(MySQL Database)]
B -- "Executes SHOW CREATE TABLE" --> C
B -- "Executes safe SELECT query" --> C
C -- "Returns SQL Results" --> B
end
B -- "Returns Schema as Resource" --> A
B -- "Returns Query Data as Tool Result" --> A
🚀 用户安装使用指南
本指南解释了如何将服务器作为npm包安装和使用。有关如何为代码做出贡献的说明,请参阅下面的“面向开发人员”部分
步骤1:安装
在你的客户端项目中(例如,你的Next.js应用程序),从npm安装包
npm install @abeqqal_marouane/mysql-mcp-server
步骤2:用户配置
此服务器需要配置文件才能安全连接到您的数据库 在用户主目录中创建一个专用文件夹
- 在Windows(PowerShell)上:
mkdir ~/.mysql-mcp-server - 在macOS/Linux(终端)上:
mkdir -p ~/.mysql-mcp-server Create the configuration file. Inside that new folder, create a file namedconfig.envAdd your database credentials to theconfig.env`文件,格式如下
# ~/.mysql-mcp-server/config.en
DB_HOST=localhost
DB_USER=your_mysql_user
DB_PASSWORD=your_mysql_password
DB_NAME=your_database_name
DB_PORT=3306
服务器每次启动时都会自动查找并加载此文件
步骤3:使用
此服务器设计为由MCP客户端启动和控制
在MCP客户端应用程序中(例如Next.js)
配置您的客户端 StdioClientTransport 使用此包提供的命令。请注意,您不再需要filpaths或 npm start
// In your client application code
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"
const transport = new StdioClientTransport({
command: "mysql-mcp-server",
args: []
})
// ... then connect your MCP client to this transport.
使用MCP检验员进行快速测试
您可以直接从终端测试服务器,而无需克隆存储库 首先,全局安装该包,使命令在任何地方都可用
npm install -g @abeqqal_marouane/mysql-mcp-server
确保您已创建 config.env 如上述“配置”步骤所述的文件
使用检查器运行服务器
npx -- @modelcontextprotocol/inspector mysql-mcp-server
📖 暴露的MCP能力
此服务器向任何连接的客户端公开两个主要功能
资源:架构
- 统一资源标识符:
mysql://schemas - 描述:返回完整值
CREATE TABLE连接数据库中所有表的SQL语句。这允许Aagent学习数据库的完整结构。 - 用法(在客户端中)
mcpClient.readResource({ uri: "mysql://schemas" })
工具:只读查询
- 名字:
read_only_query - 描述:对数据库执行SQL查询。
- 输入架构:
{ sql: string } - 安全:该工具包含一个重要的安全检查。它只会执行以开头的查询
SELECT。任何其他命令(UPDATE、DELETE、INSERT、DROP等)都将被拒绝并返回错误。 - 用法(在客户端中)
mcpClient.callTool({
name: "read_only_query",
arguments: { sql: "SELECT * FROM events LIMIT 10" }
});
👨💻 开发者/贡献者
如果要修改或贡献此服务器,请执行以下步骤
克隆存储库
git clone https://github.com/AbeqqalMarouane/MySQL-MCP-Server.git
cd MySQL-MCP-Server
安装依赖项
npm install
创建本地 .env 开发文件
如配置部分所述
构建TypeScript代码
npm run build
欢迎投稿!请随时分叉存储库,进行更改,并提交拉取请求
📄 许可证
该项目根据MIT许可证获得许可。
