openmcp-client/README.md
2025-05-19 20:10:23 +08:00

164 lines
4.7 KiB
Markdown

<div align="center">
<img src="./icons/openmcp.png" height="200px"/>
<h3>OpenMCP: 一体化 MCP Server 调试器</h3>
<a href="https://qm.qq.com/cgi-bin/qm/qr?k=C6ZUTZvfqWoI12lWe7L93cWa1hUsuVT0&jump_from=webapi&authKey=McW6B1ogTPjPDrCyGttS890tMZGQ1KB3QLuG4aqVNRaYp4vlTSgf2c6dMcNjMuBD" target="_blank" style="display: inline-block; padding: 8px 16px; background-color: #CB81DA; color: white; border-radius: .5em; text-decoration: none;">👉 加入 OpenMCP正式级技术组</a>
<a href="https://discord.gg/af5cfB9a" target="_blank" style="display: inline-block; padding: 8px 16px; background-color: rgb(84, 176, 84); color: white; border-radius: .5em; text-decoration: none;"> 加入 OpenMCP Discord频道</a>
</div>
## OpenMCP
一款用于 MCP 服务端调试的一体化 vscode/trae/cursor 插件。
<video src="https://github.com/user-attachments/assets/ab214d58-b77c-4bd3-8b6e-55552f4036ff" width="100%"></video>
<video src="https://github.com/user-attachments/assets/c17a4ad7-83b4-47ff-8627-85b57ad18940" width="100%"></video>
集成 Inspector + MCP 客户端基础功能,开发测试一体化。
![](./icons/openmcp.welcome.png)
进行资源协议、工具、Prompt 的 MCP 服务器测试。
![](./icons/openmcp.resource.png)
测试完成的工具可以放入 「交互测试」 模块之间进行大模型交互测试。
![](./icons/openmcp.chatbot.png)
完整的项目级管理面板,更加方便的进行项目和全局的 mcp 项目管理。
![](./icons/openmcp.management.png)
支持多种大模型
![](./icons/openmcp.support.llm.png)
## TODO
## 需求规划
| 所在模块 | 需求内容 | 功能优先级 | 当前状态 | 修复优先级 |
|---------|---------|--------|---------|-----------|
| `all` | 完成最基本的各类基础设施 | `完整版本` | 100% | `Done` |
| `render` | chat 模式下支持进行成本分析 | `迭代版本` | 100% | `Done` |
| `ext` | 支持基本的 MCP 项目管理 | `迭代版本` | 100% | `P0` |
| `service` | 支持自定义支持 openai 接口协议的大模型接入 | `完整版本` | 100% | `Done` |
| `service` | 支持自定义接口协议的大模型接入 | `MVP` | 0% | `P1` |
| `all` | 支持同时调试多个 MCP Server | `MVP` | 0% | `P1` |
| `all` | 支持通过大模型进行在线验证 | `迭代版本` | 100% | `Done` |
| `all` | 支持对用户对应服务器的调试工作内容进行保存 | `迭代版本` | 100% | `Done` |
| `render` | 高危操作权限确认 | `MVP` | 0% | `P1` |
| `service` | 对于连接的 mcp server 进行热更新 | `MVP` | 0% | `P1` |
| `service` | 系统配置信息云同步 | `MVP` | 0% | `P1` |
| `all` | 系统提示词管理模块 | `迭代版本` | 100% | `Done` |
| `service` | 工具 wise 的日志系统 | `MVP` | 0% | `P1` |
| `service` | 自带 OCR 进行字符识别 | `迭代版本` | 100% | `Done` |
## 项目概念
openmcp 采用分层模块化设计,通过组装不同的模块,可以将它实现成不同平台上的不同模式。
```mermaid
flowchart TD
subgraph OpenMCP核心组件
renderer[Renderer]
openmcpservice[OpenMCPService]
end
subgraph OpenMCP_Web["OpenMCP Web"]
renderer
openmcpservice
nginx[Nginx]
end
subgraph OpenMCP_插件["OpenMCP 插件"]
renderer
openmcpservice
vscode[VSCode 插件代码]
end
subgraph OpenMCP_App["OpenMCP App"]
renderer
openmcpservice
electron[Electron 代码]
end
subgraph QQ机器人["基于 OpenMCP 的 QQ 机器人"]
lagrange[Lagrange.OneBot]
openmcpservice
end
%% 依赖关系
OpenMCP_Web -->|前端渲染| renderer
OpenMCP_Web -->|后端服务| openmcpservice
OpenMCP_Web -->|反向代理| nginx
OpenMCP_插件 -->|UI 界面| renderer
OpenMCP_插件 -->|核心逻辑| openmcpservice
OpenMCP_插件 -->|集成开发| vscode
OpenMCP_App -->|前端界面| renderer
OpenMCP_App -->|本地服务| openmcpservice
OpenMCP_App -->|桌面封装| electron
QQ机器人 -->|协议适配| lagrange
QQ机器人 -->|业务逻辑| openmcpservice
```
---
## Dev
- `renderer`: 前端 UI 的定义
- `service`: 测试 `renderer` 的部分,包含一个简易的转发层
- `src`: vscode 插件端定义
### Renderer & Service Dev
```mermaid
flowchart LR
D[renderer] <--> A[Dev Server] <--ws--> B[service]
B <--mcp--> m(MCP Server)
```
配置项目
```bash
npm run setup
```
启动 dev server
```bash
npm run dev
```
> 端口占用: 8282 (renderer) + 8081 (service)
### Extention Dev
```mermaid
flowchart LR
D[renderer] <--> A[extention.ts] <--> B[service]
B <--mcp--> m(MCP Server)
```
负载部署
```bash
npm run build
```
and just press f5, いただきます