MCP Observer / WebMCP Server — 基于 MCP 的后端服务器实现

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了基于 MCP 的后端服务器组件,核心通过 JSON-RPC 在标准输入输出(stdio)上接收请求、返回响应,并通过能力注册机制实现动态扩展的工具集。它与 GNUI (GUI) 及其他 Nexus 组件协同,提供一致的资源、工具与提示渲染能力,面向 LLM 客户端提供可扩展的上下文服务。
  • 主要功能点

    • MCP 服务器核心:实现 initialize、notifications/initialized、ping、tools/list、tools/call 等 MCP 请求与响应流程,遵循 MCP 2024-11-05 版本规范。
    • 静态与动态工具注册:通过 STATIC_TOOLS 提供内置工具,动态工具通过 webmcp_capabilities.json 实时注册、同步。
    • Capabilities 同步与路由:实现 GET /capabilities 机制,能够将 GUI 后端的路由映射同步到动态工具注册表中,便于客户端发现可用工具。
    • 多组件集成:与 GUI 后端的桥接(gui_bridge.py、gui_bridg e 的各项端点)协同工作,提供资源目录、库存、日志、 Forge/Librarian 等能力的接入。
    • 安全性与鲁棒性:实现对请求的严格分发、错误处理与回退,具备最小化的容错能力,尽量避免未授权访问与异常崩溃。
  • 安装步骤

    • 获取代码:将仓库克隆到本地或服务器环境中。
    • 依赖准备:确保 Python 环境就绪(建议 3.9+,视具体实现而定),并满足所需的依赖项(如 json 序列化、requests、yaml 等)。
    • 启动 MCP 服务器(stdio 模式)
      • 运行方式依赖于你的运行环境。通常,直接启动 webmcp_server.py 以提供 MCP JSON-RPC 接口。该进程通常通过一个外部网关或客户端通过标准输入输出与之通信。
    • 启动 GUI 与桥接后端
      • 启动 gui_bridge 提供的 REST/Web 服务接口,作为 MCP 客户端的 GUI 后端。Nexus 的其他组件(如 Forge、Librarian、Observer 等)可通过该桥提供的数据与能力。
  • 服务器配置(MCP 客户端需要的最小配置信息) 请以 JSON 格式提供以下字段(适用于 MCP 客户端启动对接): { "server_name": "Nexus GUI MCP Backend", "command": "python3", "args": ["/path/to/mcp-server-manager/webmcp_server.py"], "description": "MCP 服务器后端,暴露工具、资源和能力注册点,用于 MCP 客户端的上下文服务" } 注释:

    • server_name:为 MCP 服务器定义的名称,方便客户端在多服务器环境中识别。
    • command/args:指定启动 MCP 服务器的命令与参数,确保能够从正确的工作目录启动对应的 stdio MCP 服务器进程。
    • description:简要描述该 MCP 服务器的职责与用途。
  • 基本使用方法

    • 启动:按照上述步骤启动 MCP 服务器与 GUI 桥接后端。确保 GUI 后端可访问 MCP 服务器提供的能力。
    • 发现能力:客户端通过 MCP 协议向服务器发起 initialize、tools/list、tools/call 等请求,获取工具清单并执行。
    • 动态扩展:若需增加新工具,可通过能力注册机制更新 webmcp_capabilities.json,并同步到服务器,使客户端能够路由到新工具。
    • 日志与监控:系统会记录关键事件与命令执行情况,便于追踪与调试。
  • 设计与扩展

    • MCP 兼容性:遵循 MCP 2.0/2024-11-05 版本规范,确保 initialize、capabilities、tools/list、tools/call 等接口的正确性与向后兼容性。
    • 安全性:对请求路径和命令进行校验,避免任意命令执行与越权行为;提供可靠的错误处理与回退。
    • 与 GUI 的集成:通过 capabilities 机制实现 GUI 后端的路由和能力对外暴露,使 MCP 客户端能够根据能力注册动态工具。

服务器信息