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 客户端在本地环境中获得稳定、标准化的上下文服务。

服务器信息