# rust-mcp-tools **Repository Path**: LeiZhK/rust-mcp-tools ## Basic Information - **Project Name**: rust-mcp-tools - **Description**: 基于 Rust 实现的多中间件 MCP(Model Context Protocol)服务平台,为 Trae 等 AI 助手提供数据库、消息队列、DevOps 工具等能力的统一接入层。相比 `npx`(Node.js)和 `uvx`(Python)的按需安装方式,本项目采用 Rust 原生编译为单一二进制文件,优势显著。 - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-15 - **Last Updated**: 2026-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust, GUI, exe, MCP ## README # rust-mcp-tools [![Crates.io](https://img.shields.io/badge/version-1.0.1-blue)](https://crates.io/crates/rust-mcp-tools) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![Rust](https://img.shields.io/badge/rust-2021-edition-orange)](https://www.rust-lang.org) [![MCP 协议](https://img.shields.io/badge/MCP-协议规范-purple)](https://spec.modelcontextprotocol.io) [![MCP GitHub](https://img.shields.io/badge/MCP-GitHub仓库-purple)](https://github.com/modelcontextprotocol) [![Rust 官网](https://img.shields.io/badge/Rust-官网-orange)](https://www.rust-lang.org) [![Gitee 仓库](https://img.shields.io/badge/Gitee-仓库-red)](https://gitee.com/LeiZhK/rust-mcp-tools) 基于 Rust 实现的多中间件 MCP(Model Context Protocol)服务平台,为 Trae 等 AI 助手提供数据库、消息队列、DevOps 工具等能力的统一接入层。 > **💡 相比 `npx`(Node.js)和 `uvx`(Python)的按需安装方式,本项目采用 Rust 原生编译为单一二进制文件,优势显著:** | 对比维度 | npx / uvx 方式 | 本项目(Rust 二进制) | |---------|----------------|---------------------| | 🚀 **启动速度** | 需下载包 + 启动运行时(Node/Python),冷启动秒级 | **毫秒级冷启动**,直接执行机器码 | | 📦 **运行依赖** | 需预装 Node.js 或 Python + uv | **零依赖**,无需任何运行时 | | 🔌 **离线可用** | 首次运行需联网下载依赖包 | **完全离线**,编译即携带所有依赖 | | 💾 **磁盘占用** | 50~150MB(运行时 + node_modules/venv) | **~15MB**,一个文件即服务 | | 🛡️ **供应链安全** | 递归拉取数十~数百个第三方包,攻击面大 | 依赖树极小,编译时安全检查 | | 🎯 **部署便捷性** | 需确保目标机器有所需运行时版本 | **复制即用**,一个 exe 文件搞定 | | ⚡ **运行时性能** | JIT 编译(Node)/ 解释执行(Python),有 GC 开销 | **原生机器码**,无 JIT 预热、无 GC 停顿 | ## 功能特性 - **MCP 协议支持**:完整实现 Model Context Protocol(JSON-RPC 2.0),兼容 HTTP POST + SSE 双传输模式 - **多中间件生态**:支持数据库、缓存、搜索引擎、消息队列、DevOps 工具的 MCP 接入 - **双运行模式**:HTTP 服务器模式和 stdio 模式,灵活集成 - **GUI 管理客户端**(可选):基于 egui/eframe 的可视化管理界面,一站式管理所有服务 - **CORS 支持**:内置跨域请求中间件 ## 服务生态 ### 📦 MCP 服务(数据层) | 服务 | 状态 | 说明 | 计划功能 | | ------------------------------- | --------- | -------- | --------------------------------- | | 🐬 **MySQL MCP Server** | ✅ **已实现** | 关系型数据库访问 | SQL 查询、表管理、表结构查看 | | 🔴 **Redis MCP Server** | 🔜 规划中 | 缓存数据库访问 | String/Hash/List/Set/ZSet 操作、发布订阅 | | 🐘 **PostgreSQL MCP Server** | 🔜 规划中 | 关系型数据库访问 | 高级查询、模式管理 | | 🍃 **MongoDB MCP Server** | 🔜 规划中 | 文档数据库访问 | 文档查询、聚合管道 | | 🔍 **Elasticsearch MCP Server** | 🔜 规划中 | 搜索引擎访问 | 全文搜索、聚合分析 | | 📨 **Kafka MCP Server** | 🔜 规划中 | 消息队列访问 | 消息生产/消费、Topic 管理 | ### 🛠️ DevOps 工具 | 服务 | 状态 | 说明 | 计划功能 | | ------------------------ | ------ | ---- | ----------- | | 🐳 **Docker MCP Server** | 🔜 规划中 | 容器管理 | 容器生命周期、镜像管理 | | 📂 **Git MCP Server** | 🔜 规划中 | 版本控制 | 仓库管理、提交历史查询 | ## 项目架构 ``` rust-mcp-tools/ ├── src/ │ ├── main.rs # 主入口(HTTP & stdio 模式) │ ├── lib.rs # 库根模块 │ ├── config.rs # SQLite 配置存储模块 │ ├── db.rs # MySQL 数据库模块 │ ├── bin/ │ │ └── gui.rs # GUI 二进制(可选,需要 gui feature) │ ├── mcp/ │ │ ├── mod.rs # MCP 模块根 │ │ ├── handler.rs # MCP 请求处理器与工具定义 │ │ └── transport.rs # HTTP 传输层(axum 路由、SSE) │ └── services/ │ ├── mod.rs # 服务模块根 │ └── process.rs # 进程生命周期管理 ├── scripts/ # PowerShell 辅助脚本 │ ├── Build-Gui.ps1 # 构建 GUI 版本 │ ├── build-gui-admin.ps1 # 管理员模式构建 GUI │ ├── Diagnose-TraeConnection.ps1 # 诊断 Trae 连接问题 │ └── Test-McpService.ps1 # 测试 MCP 服务 └── config.db # SQLite 配置文件(首次运行 GUI 时自动生成) ``` ## 环境要求 - [Rust](https://www.rust-lang.org/zh-cn/tools/install)(edition 2021) - MySQL 服务器(推荐 8.0+)— 使用 MySQL MCP Server 时需要 ## 快速开始 ### 1. 配置 MySQL 连接 MySQL 连接配置通过 SQLite 数据库存储。可通过以下两种方式配置: **方式一:GUI 界面配置**(推荐) 运行 GUI 客户端后,在 MySQL 详情页的「服务配置」标签页中填写连接信息并保存。 **方式二:程序默认值** 首次运行会自动初始化默认配置,默认值如下: | 配置项 | 默认值 | 说明 | |--------|--------|------| | 主机地址 | `localhost` | MySQL 服务器地址 | | 端口 | `3306` | MySQL 端口 | | 用户名 | `root` | 数据库用户 | | 密码 | `123456` | 数据库密码 | | 数据库 | `likeboot` | 数据库名 | ### 2. 构建与运行 ```bash # 构建并以 HTTP 模式运行 MySQL MCP Server(默认) cargo run --release # 指定端口运行 cargo run --release -- --port 3307 # 以 stdio 模式运行(适用于 MCP 兼容客户端) cargo run --release -- --stdio ``` ### 3. 验证服务 ```bash # 测试 MCP 端点 curl http://localhost:3000/health curl -X POST http://localhost:3000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize"}' ``` ## MCP API 服务器通过 HTTP 暴露标准的 MCP API: ### 端点 | 方法 | 路径 | 说明 | | --------- | -------------- | --------------- | | `GET` | `/health` | 健康检查 | | `GET` | `/sse` | SSE 流式推送 | | `POST` | `/mcp` | MCP JSON-RPC 请求 | | `OPTIONS` | `/mcp`, `/sse` | CORS 预检请求 | ### 当前可用工具(MySQL) | 工具 | 说明 | 参数 | | -------------------- | ---------- | --------------- | | `sql_execute` | 执行 SQL 查询 | `sql`(字符串,必填) | | `sql_list_tables` | 列出当前数据库所有表 | 无 | | `sql_describe_table` | 查看表结构 | `table`(字符串,必填) | ### 调用工具示例 ```bash curl -X POST http://localhost:3000/mcp \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "sql_execute", "arguments": { "sql": "SELECT * FROM users LIMIT 5" } } }' ``` ## GUI 模式(可选) 构建带图形界面的版本,可视化地管理所有服务: ```bash cargo build --release --features gui --bin gui ./target/release/gui.exe ``` GUI 提供以下功能: - 🏠 **服务管理中心**:卡片式布局展示所有 MCP 服务与 DevOps 工具的状态 - 🐬 **MySQL 服务详情**:连接配置、工具文档、SQL 在线执行 - 🔔 其他服务(Redis、PostgreSQL、MongoDB、Elasticsearch、Kafka、Docker、Git)详情页预留 - 📝 **实时日志**:服务运行日志监控 - ▶️ **服务启动/停止**:一键控制服务生命周期 ### 截图预览 | 首页页面 | | :---------------------------: | | ![关于页面](images/gui-about.png) | | 调试工具 | 调试工具 | | :---------------------------------: | :----------------------------------------: | | ![服务管理中心](images/gui-dashboard.png) | ![MySQL 服务配置](images/gui-mysql-config.png) | | MCP工具面板 | 配置信息 | | :---------------------------------------: | :--------------------------: | | ![MySQL 工具面板](images/gui-mysql-tools.png) | ![运行日志](images/gui-logs.png) | ## 集成 AI 助手 配置 Trae 等 AI 助手使用此 MCP 服务器: ```json { "mcpServers": { "mysql-mcp": { "url": "http://localhost:3000/mcp" } } } ``` ![Trae MCP 配置示例](images/trae-mcp-config.png) | AI 对话演示 | |:---:| | ![AI 对话演示 1](images/talking-image-01.png) | | AI 对话演示 | |:---:| | ![AI 对话演示 2](images/talking-image-02.png) | ## 开发路线 ### ✅ 当前完成 - MySQL MCP Server 核心功能 - MCP 协议基础框架(JSON-RPC 2.0, HTTP+SSE) - GUI 管理界面框架与 MySQL 详情页 - 多服务架构设计(ServiceType 枚举体系) ### 🔜 规划中 - [ ] Redis MCP Server — 缓存操作 - [ ] PostgreSQL MCP Server — 关系型数据库 - [ ] MongoDB MCP Server — 文档数据库 - [ ] Elasticsearch MCP Server — 搜索引擎 - [ ] Kafka MCP Server — 消息队列 - [ ] Docker MCP Server — 容器管理 - [ ] Git MCP Server — 版本控制 ## 更新记录 ### v1.0.1 (2026-05-15) - 🐛 **修复**: `sql_execute` 执行 `SELECT 1` 等数字列返回 `NULL` 的问题(改用多类型回退:String → i64 → f64) - 🐛 **修复**: GUI 启动服务时无防重复启动保护,导致端口冲突显示错误的问题 - 🐛 **修复**: GUI 中 Starting/Error 状态显示不完整,按钮条件判断不当的问题 - 🔧 **优化**: `start_service()` 日志输出时机,服务真正就绪后才输出成功日志 - ✨ **新增**: `.trae/skills/fast-build/` skill,支持离线快速编译检查 ### v0.1.0 (初始版本) - MySQL MCP Server 核心功能(SQL 查询、表列表、表结构查看) - MCP 协议基础框架(JSON-RPC 2.0, HTTP + SSE 双传输模式) - GUI 管理界面框架与 MySQL 详情页 - 多服务架构设计(ServiceType 枚举体系) ## 项目状态 本项目处于积极开发阶段。MySQL MCP Server 核心功能稳定可用,GUI 客户端提供了完整的服务管理框架,为后续更多中间件的接入做好了架构准备。欢迎贡献代码和反馈意见。 ## 开源协议 本项目基于 MIT 协议开源 - 详见 [LICENSE](LICENSE) 文件。