OSGi.fx MCP 服务端

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个基于 MCP 的服务器端,核心职责是通过统一的 JSON-RPC 形式向客户端提供上下文信息与功能。它通过 JSON-RPC 2.0 处理请求和响应,提供工具注册/执行、资源数据访问,以及向客户端广播通知的能力,支持通过 SSE、Stdio、WebSocket 等传输通道与客户端通信。
  • 主要功能点

    • MCP 协议核心处理:实现 initialize、tools/list、tools/call 等 MCP 请求/响应流程,以及错误处理与通知机制。
    • 工具注册与执行:通过 McpServerProvider 将 McpTool 服务注册到 MCP 服务端,客户端可查询工具列表并调用具体工具执行。
    • 资源与数据访问:提供数据访问能力,便于 LLM 客户端获取资源或配置信息(通过 MCP 数据提供者暴露的数据接口)。
    • 通知与广播:通过 HTTP SSE 形式向客户端广播工具列表变更等通知;同时支持将通知发送给已连接的 MCP 客户端。
    • 多传输通道支持:实现基于 SSE 的服务器推送与其他传输方式的集成能力,提升与客户端的交互效率。
    • 安全与集成:在服务器端实现与 Agent/Reactor 的集成,支持工具执行结果的标准化封装和错误统一处理。
  • 安装步骤

    • 构建与打包:在包含该 MCP 服务器组件的多模块仓库中,使用标准 Java 构建工具(如 Maven/Gradle)进行构建,生成可部署的应用或容器镜像。
    • 部署运行环境:将 MCP 服务器部署到支持的运行时环境(如带 OSGi 的应用容器),确保 MCP 服务端所在进程具备对外暴露端点的能力。
    • 启动与配置:在部署环境中按需求启动 MCP 服务器(通常通过容器启动命令或应用启动脚本),确保 /mcp 路径对外可访问。
    • 客户端连接配置:MCP 客户端需要配置连接信息(见下方“服务器配置 JSON”示例),以便通过指定命令与参数启动并连接到 MCP 服务器。
  • 服务器配置(MCP 客户端如何连接服务器的配置,JSON 格式,包含 serverName、command、args 等) 说明:MCP 客户端需要提供与服务器建立连接所需的最小信息。下面的配置示例基于仓库实现的功能特征给出可用的字段说明,实际值需结合你部署的环境来填写。该配置不属于代码,而是用于 MCP 客户端在启动时读取的连接信息。

    1. serverName: "OSGi.fx MCP Server"

      • 描述:服务器在标识列表中的名称,用于区分和管理多服务器场景。
    2. command: 启动 MCP 服务器的命令路径或可执行条目(示例:指向启动服务器的脚本/可执行文件)。

      • 描述:客户端将使用此命令来启动 MCP 服务器进程。
    3. args: 启动命令的参数数组

      • 描述:包括传输方式、端口、认证选项等参数。具体参数由部署环境决定,但常见场景包括:
        • 传输通道配置(如 http/sse、stdio、websocket 等)
        • 服务器监听端口
        • 认证或密钥相关设置(如开启加密、令牌等)
        • 日志与调试选项
    4. 注释示例(以文字描述形式给出,非代码块)

      • serverName: "OSGi.fx MCP Server"
      • command: "/path/to/start-mcp-server.sh" 或 "java -jar mcp-server.jar"
      • args: ["--transport=sse","--port=8080","--enable-auth=false"]
      • 注:实际参数需参考部署环境和 MCP_SERVER 的配置文档,确保客户端能够正确启动并连接到服务器。
  • 基本使用方法

    • 启动服务器后,客户端通过 JSON-RPC 调用进行交互:
      • 发送初始化握手,获取协议版本、能力清单以及服务器信息。
      • 请求工具列表(tools/list),了解可用工具及其输入结构。
      • 通过 tools/call 调用具体工具,传入所需的参数。
    • 若服务器配置了 SSE 通知,客户端应监听服务器推送的通知(如 tools/list_changed)。
    • 使用日志与错误信息进行调试,服务器具备统一的错误封装与响应格式。
  • 重要说明

    • MCP 客户端与 MCP 服务器的连接要在正确的传输通道上进行,OSGi.fx 的 MCP 服务端实现支持多种传输协议,具体通道要在启动时配置并确保端点可达。
    • MCP 服务端的工具实现分散在 com.osgifx.console.mcp.tool 包下,开发者可以通过实现 McpTool 接口并通过 McpServerProvider 注册工具来扩展服务器功能。

服务器信息