20x MCP 服务器后端实现
使用说明(Markdown 格式)
-
项目简介
- 20x 是一款桌面应用后端,聚焦通过 MCP(Model Context Protocol,中文称作“模型上下文协议”)向 LLM 客户端提供上下文信息与能力。核心职责包括托管资源、注册并执行工具、定义并渲染提示模板,以及通过 JSON-RPC 方式与客户端进行通信。后端通过本地 SQLite 数据库管理会话、任务、MCP 服务器等实体,并支持本地与远程 MCP 服务器。
-
主要功能点
- 资源与数据访问:管理任务、技能、资源等数据,提供本地化的数据访问能力。
- 工具注册与执行:注册可调用的外部工具,支持 LLM 调用外部功能。
- 提示模板与上下文:提供可定制的 Prompt 模板与上下文,支撑不同的交互模式。
- MCP 服务器管理:创建、配置、本地/远程 MCP 服务器,测试连接及 OAuth 授权状态管理。
- 会话与状态管理:包含会话生命周期、任务与代理状态的跟踪与渲染通知。
- JSON-RPC 与多传输协议:通过 JSON-RPC 与客户端通信,具备对本地管道、WebSocket/SSE 等传输的支持。
-
安装步骤
- 安装依赖并进入项目:克隆仓库后,安装依赖(推荐使用 pnpm)。
- 运行开发环境:执行开发命令启动本地 Electron 应用,完成打包构建以获得可执行应用。
- 测试与运行:按文档中的命令执行测试或构建发行版本。
-
服务器配置(仅供 MCP 客户端查看,不是客户端代码)
- MCP 服务器配置示例(以 JSON 表述,含 server name、command、args 等字段;用于描述如何启动一个 MCP 服务器以供客户端连接。配置信息仅供 MCP 客户端了解如何连接服务端,不需要客户端再次包含在应用中): { "name": "task-management", "type": "local", "command": "/path/to/node", "args": ["/path/to/mcp/task-management-mcp.js"], "environment": { "ELECTRON_RUN_AS_NODE": "1" } }
- 注释说明:上述配置用于说明 MCP 服务器的启动命令与参数,真实运行时需要将路径替换为实际部署位置,若是远程服务器,请将 type 设置为 remote,并提供 url 与必要的 headers/认证信息。MCP 客户端在连接时通常仅需关注服务器的名称、启动命令及参数,其他信息由服务端自行处理。
-
基本使用方法
- 启动与连接:通过应用界面或配置文件将 MCP 服务器添加到后端,后端将根据配置启动本地 MCP 服务器或连接远程服务器。
- 资源与工具管理:通过 UI 或接口管理资源、工具及其权限,确保 LLM 客户端在调用外部能力时具备所需授权与上下文。
- Prompt 与上下文:使用定制的提示模板与任务上下文来驱动 LLM 的推理与交互,支持多任务并发场景的上下文管理。
- 会话链路:后端负责会话的创建、持续与结束,并在必要时向前端推送状态更新与结果回传。
-
备注
- 该实现包含本地与远程 MCP 服务器的启动、连接、授权、工具探测、以及与客户端的 JSON-RPC 通信,具备 MCP 协议的核心能力演示与应用场景。