onUI MCP 服务器端实现
使用说明(Markdown 格式)
-
项目简介
- 这是一个完整的 MCP 服务器实现,核心职责是以标准化的 JSON-RPC 方式向 MCP 客户端提供上下文信息与能力,包括资源管理、工具注册/执行,以及针对提示/模板的渲染能力。服务器端对会话、能力声明进行管理,并提供可扩展的数据访问、外部功能调用以及多传输协议支持的后端服务。
-
主要功能点
- 资源与数据管理:通过本地存储持久化注释、页信息等资源,提供读取、写入、查询、导出等能力。
- 工具注册与执行:注册可被 LLM 调用的工具,支持工具的列举、执行、以及结果回传。
- Prompts/渲染:定义和渲染用于 LLM 交互的提示模板,方便客户端按需渲染上下文。
- JSON-RPC 通信:服务器端遵循 MCP 的请求/响应结构,使用 JSON-RPC 风格的消息进行交互。
- 会话与能力声明:对会话状态、可用能力进行声明与管理,确保扩展性与安全性。
- 本地运行与本地桥接:可以与本地扩展桥接,提供本地化的 MCP 服务,不依赖云后端。
- 多传输协议支持(如 Stdio、WebSocket、SSE 等)的扩展能力,使不同客户端实现能够兼容。
-
安装步骤(简要)
- 先确保系统已安装 Node.js 环境(通常推荐 Node.js 版本与仓库要求一致)。
- 安装依赖并构建:
- 安装依赖并编译打包到本地 dist 目录(按仓库提供的构建脚本执行)。
- 运行 MCP 服务器:
- 使用项目内置的 CLI(onUI CLI)启动 MCP 服务,执行类似命令以进入 MCP 模式并启动 mcp 服务。
- 启动后,MCP 客户端即可通过标准 MCP 协议向服务器请求资源、调用工具、获取 Prompts 等。
-
服务器配置(MCP 客户端需要的连接信息) 注:以下为示例配置,该配置用于 MCP 路由器/客户端在本地接入本 MCP 服务器。请使用绝对路径替换示例中的占位符路径。MCP 客户端本身不需要配置信息,此处提供给路由器/管理端配置使用。
- 服务器名称: onui-local
- 命令: node
- 参数(args):
- 绝对路径到本仓库打包后的 onui CLI 启动脚本
- mcp
- JSON 配置示例(简化文本展示,不作为代码块) { "mcpServers": { "onui-local": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/onUI/packages/mcp-server/dist/bin/onui-cli.js", "mcp" ] } } }
- 配置说明
- name: 指定 MCP 服务器的唯一名称,用于路由和引用
- command: 启动 MCP 服务器所用的命令,通常为 node
- args: 启动脚本及模式参数,确保传入的第二个参数为 mcp,表示进入 MCP 服务模式
- 注:以上配置来源于仓库提供的本地 MCP 设置说明,确保与实际部署环境中的路径一致。
-
基本使用方法
- 启动后,MCP 客户端可通过标准 MCP 请求向服务器读取 Resources、执行 Tools、获取 Prompts 等。
- 结合本地扩展桥接,可以在浏览器/扩展中使用本 MCP 服务器提供的上下文信息来增强 LLM 的决策与响应生成。
- 通过诊断工具与 Doctor/Setup 流程,可对本地环境、原生主机、运行时等进行健康检查,确保 MCP 服务正常工作。
-
运行与调试要点
- 确认 Node.js 环境版本与仓库要求一致,避免运行时版本不匹配导致的兼容性问题。
- 使用 MCP 服务器自带的测试/医生工具对运行环境进行自检,方便定位异常。
- 如需升级工具集或添加新的资源/工具,遵循服务器的扩展点与工具注册格式,确保与 MCP 客户端的期望输入/输出保持一致。
-
参考说明
- 本仓库实现了完整的 MCP 服务器端逻辑、存储、工具、以及与本地原生主机的交互能力,确保 MCP 客户端在本地环境中获得稳定、标准化的上下文服务。