Skip to main content
Glama
README.md
# MiddleTool

多环境中间件连接管理桌面应用,统一对外提供 MCP(Model Context Protocol)能力。

[English](README.en.md)

## 使用场景

MiddleTool 专为以下场景设计:

### 运维开发
- 统一管理多环境(dev、sit、uat、prod)的中间件连接
- 快速切换环境进行问题排查和数据查询
- 通过 MCP 协议在 Cursor 中直接操作中间件

### DevOps 工程师
- 集中管理 Kubernetes 集群连接
- 通过 MCP 协议在 Claude Desktop 中执行 K8s 操作
- 备份和迁移中间件配置

### 平台工程师
- 统一中间件访问入口,避免直接暴露连接信息
- 通过 MCP 协议为 AI 助手提供受控的中间件访问能力
- 插件式架构,快速接入新的中间件类型

## 功能

- **中间件连接**:按适配器 schema 配置连接,通过名称区分环境(如 prod-loki)
- **中间件目录**:查看已注册的全部 MCP 适配器、连通性校验与上游仓库链接
- **连接测试**:保存前可测试 Loki / MySQL / Redis / RocketMQ / Elasticsearch / MongoDB / Kubernetes 连通性
- **环境配置**:Kubernetes 多环境配置管理(dev、sit、uat、prod)
- **配置导入导出**:备份与迁移环境与连接
- **MCP 配置导出**:生成 Cursor / Claude Desktop 可用的 `mcpServers` JSON,支持写入文件
- **插件式架构**:新增中间件只需添加适配器文件并注册

## 架构

```mermaid
graph TB
    subgraph "MiddleTool Desktop"
        A[Electron 主进程]
        B[React 渲染进程]
        C[配置存储]
        D[适配器注册表]
        E[MCP Server]
    end

    subgraph "中间件层"
        F[Loki]
        G[RocketMQ]
        H[MySQL]
        I[Redis]
        J[Elasticsearch]
        K[MongoDB]
        L[Kubernetes]
    end

    subgraph "AI IDE"
        M[Cursor]
        N[Claude Desktop]
    end

    A --> D
    A --> C
    B --> A
    D --> E
    E --> F
    E --> G
    E --> H
    E --> I
    E --> J
    E --> K
    E --> L
    M --> E
    N --> E
```

### 数据流

1. **配置阶段**:用户在桌面端配置中间件连接,存储在本地配置文件
2. **MCP 服务**:MCP Server 读取配置,提供统一的 MCP 协议接口
3. **AI 访问**:Cursor / Claude Desktop 通过 MCP 协议调用中间件操作
4. **中间件交互**:MCP Server 通过适配器层与各中间件通信

## 已注册中间件

| 中间件 | 分类 | MCP 来源 | 状态 |
|--------|------|----------|------|
| Grafana Loki | 日志 | [loki-mcp](https://gitee.com/mirrors_grafana/loki-mcp) | ✅ 可用 |
| Apache RocketMQ | 消息队列 | 内置 `packages/rocketmq-mcp-server` | ✅ 可用 |
| MySQL | 数据库 | 内置 `packages/mysql-mcp-server`(兼容 [mcp-server-mysql](https://github.com/benborla/mcp-server-mysql)) | ✅ 可用 |
| Redis | 缓存 | 官方 redis/mcp-redis(uvx) | ✅ 可用 |
| Elasticsearch | 日志/搜索 | 内置(兼容 [elasticsearch-mcp-server](https://github.com/cr7258/elasticsearch-mcp-server)) | ✅ 可用 |
| MongoDB | 数据库 | 内置(兼容 [mcp-mongo-server](https://github.com/kiliczsh/mcp-mongo-server)) | ✅ 可用 |
| Kubernetes | 容器编排 | 内置 `packages/kubernetes-mcp-server` | ✅ 可用 |
| Apache Kafka | 消息队列 | [mcp-kafka](https://github.com/gAmUssA/mcp-kafka) | 🔜 规划中 |

## 技术栈

- **Electron + React + TypeScript**
- **适配器插件架构**(`electron/main/adapters/`)
- **共享类型**(`shared/types/`,UI 与主进程共用)
- **electron-store** 本地配置持久化

## 快速开始

```bash
cd MiddleTool
npm install
npm run dev                 # 桌面端
npm run mcp-server:start:http   # 本地 HTTP MCP + Web 管理台(自动打开浏览器)
```

Web 管理台地址:`http://127.0.0.1:8080/ui/`

### 前置条件

- Node.js 18+
- RocketMQ 开发环境首次需执行 `npm run rocketmq-mcp:java:build`(需 Maven)

## 使用流程

1. **中间件配置** — 选择适配器,用名称区分环境(如 prod-loki),配置连接参数
2. **Kubernetes 环境** — 配置多环境 K8s 集群连接(dev、sit、uat、prod)
3. **MCP 配置** — 导出 JSON 到 Cursor / Claude Desktop

## 生态集成

### Cursor 集成

在 Cursor 的设置中添加 MCP 配置:

```json
{
  "mcpServers": {
    "middle-tool": {
      "command": "node",
      "args": ["D:\\path\\to\\middle-tool\\packages\\mcp-server\\dist\\index.js"],
      "env": {
        "MIDDLE_TOOL_CONFIG_PATH": "D:\\path\\to\\config\\middle-tool-config.json"
      }
    }
  }
}
```

桌面端「MCP 配置」会自动生成上述配置,只需复制到 Cursor 设置即可。

### Claude Desktop 集成

在 Claude Desktop 的配置文件中添加:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "middle-tool": {
      "command": "node",
      "args": ["C:\\path\\to\\middle-tool\\packages\\mcp-server\\dist\\index.js"],
      "env": {
        "MIDDLE_TOOL_CONFIG_PATH": "C:\\path\\to\\config\\middle-tool-config.json"
      }
    }
  }
}
```

### MCP Server

MiddleTool 提供**单一 MCP Server** `middle-tool`,桌面端「MCP 配置」一键导出:

| Server | 包路径 | 能力 |
|--------|--------|------|
| `middle-tool` | `packages/mcp-server` | Loki、MySQL、Redis、RocketMQ、Elasticsearch、MongoDB、Kubernetes 全部 tools |

桌面端「MCP 配置」会根据已启用的 RocketMQ / Redis / Kubernetes 连接自动补充 env。

RocketMQ 由 MiddleTool 桌面端 **内嵌托管 Java Admin 桥接**(安装包预置 JAR,用户无需单独部署)。

详见 [packages/mcp-server/README.md](packages/mcp-server/README.md)。

### Linux 解压部署(对外 IP:端口)

适用于无桌面环境的服务器:对外提供 MCP HTTP/SSE,并内置 Web 管理台维护环境与中间件连接。

```bash
npm run build:linux-mcp
# 产物: release/middle-tool-mcp-linux-x64-*.tar.gz

tar -xzf release/middle-tool-mcp-linux-x64-*.tar.gz
cd middle-tool-mcp
cp config/middle-tool-config.json.example config/middle-tool-config.json
# 也可启动后在 Web 管理台配置
chmod +x bin/start.sh
./bin/start.sh
```

默认监听 `0.0.0.0:8080`:

| 端点 | 地址 |
|------|------|
| Web 管理台 | `http://<IP>:8080/ui/` |
| Streamable HTTP | `http://<IP>:8080/mcp` |
| Legacy SSE | `http://<IP>:8080/sse` |
| 健康检查 | `http://<IP>:8080/health` |

在管理台修改环境/连接后,MCP 可用连接会立即热更新。详见 [deploy/linux/README.md](deploy/linux/README.md)。

### Docker 部署

```bash
cd deploy/docker
cp ../linux/config/middle-tool-config.json.example config/middle-tool-config.json
# 编辑 config/middle-tool-config.json

docker compose up -d --build
# 或项目根目录: npm run docker:up
```

详见 [deploy/docker/README.md](deploy/docker/README.md)。

## 项目结构

```
MiddleTool/
├── packages/mcp-server/           # 统一 MCP(全部中间件 tools)
├── packages/kubernetes-mcp-server/ # Kubernetes MCP Server
├── shared/types/                  # UI 与主进程共享类型
├── electron/main/adapters/        # 适配器注册与校验
└── src/pages/                     # 概览、目录、配置、MCP 导出、环境配置
```

## 扩展新中间件

详见 [docs/EXTENDING.md](docs/EXTENDING.md)。核心步骤:

1. 在 `electron/main/adapters/` 创建 `{name}.ts`
2. 使用 `defineConnectionAdapter()` 或 `definePlannedAdapter()`
3. 在 `registry.ts` 的 `ALL_ADAPTERS` 注册
4. 在 `packages/mcp-server` 实现对应 tools

## 构建与打包

### 开发编译

```bash
npm run build
npm run build:linux-mcp   # Linux MCP 解压包
```

### Windows 安装包(.exe)

```bash
npm install
npm run pack
# 或
npm run build:win
```

产物输出在 `release/` 目录:

| 文件 | 说明 |
|------|------|
| `MiddleTool-Setup-0.1.0.exe` | NSIS 安装程序(可自选安装目录、创建桌面快捷方式) |

**打包流程说明:**

1. 编译 `packages/mcp-server` 统一 MCP Server
2. 编译 Electron 主进程 / 预加载 / 渲染进程
3. 将 mcp-server 及生产依赖打入 `resources/mcp-server/`
4. 使用 electron-builder 生成 NSIS 安装包

**安装后 MCP 配置:**

- 应用内「MCP 配置」导出的 JSON 中,`args` 会指向安装目录下的 `resources/mcp-server/dist/index.js`
- 本机需已安装 **Node.js 18+** 并加入 PATH(Cursor 调用 MCP 时使用 `node` 命令)

**可选:自定义应用图标**

将 `icon.ico` 放入 `resources/` 目录,并在 `package.json` 的 `build.win.icon` 中指定路径。

## 版本历史

详细变更记录请查看 [CHANGELOG.md](CHANGELOG.md)。

### v0.1.0 (2026-08-18)
- 首个正式版本
- 支持 7 种中间件:Loki、RocketMQ、MySQL、Redis、Elasticsearch、MongoDB、Kubernetes
- 完整的 MCP 协议支持
- 桌面端和 Linux 服务器端部署
- Docker 部署支持

## Roadmap

- [ ] Apache Kafka MCP Server 支持
- [ ] Docker Compose 一键启动所有中间件
- [ ] MCP Server 性能优化
- [ ] 更多连接测试工具
- [ ] Web 管理界面

## 相关链接

- [loki-mcp (Gitee)](https://gitee.com/mirrors_grafana/loki-mcp)
- [Model Context Protocol](https://modelcontextprotocol.io/)
- [贡献指南](CONTRIBUTING.md)
- [变更日志](CHANGELOG.md)

Maintenance

ActivityMaintained
ResponsivenessNo issues