Cytoscape MCP 服务器

使用说明(Markdown 格式)

  • 项目简介

    • 该项目实现了一个完整的 MCP 服务器端,用于在 Cytoscape Desktop 中暴露资源、工具和提示模板等能力,LLM 客户端(如 Claude Desktop、Copilot 等)可通过 JSON-RPC 与之交互,执行加载网络、分析网络、应用布局等操作,获取必要的上下文信息以驱动对 Cytoscape 的控制与推理。
  • 主要功能点

    • MCP 请求/响应处理:实现标准的 MCP JSON-RPC 请求与响应处理,支持初始化、工具调用、通知、流式响应等场景。
    • 资源与数据访问:提供对 Cytoscape 网络、节点、边等资源的读取能力,便于 LLM 客户端获取上下文。
    • 工具注册与执行:预注册多种工具(如 LoadNetworkViewTool、GetLoadedNetworkViewsTool、ApplyLayoutTool 等),支持工具调用、参数传递、执行任务并返回结果。
    • Prompts/模板渲染支持:通过工具的输入/输出模式以及 JSON Schema,支持对话式交互中的提示模板和结构化输出。
    • 会话管理与传输协议:实现会话创建、维护与关闭,支持流式传输(text/event-stream)、标准 HTTP JSON 响应等传输模式。
    • 服务端健壮性:包括健康检查、错误处理、请求校验、异步任务执行以及对服务器关闭的优雅处理。
  • 安装步骤

    • 先决条件
      • Java 17 及以上运行环境。
    • 构建与打包
      • 使用项目自带的构建脚本(如 Gradle)进行编译打包,生成用于 Cytoscape 插件打包的可部署产物(通常是一个 App JAR)。
    • 安装到 Cytoscape
      • 打开 Cytoscape Desktop。
      • 进入 Apps(应用)> App Manager(应用管理)> Install from File,选择构建产物的 JAR 文件并安装。
      • 重启 Cytoscape(若提示需要)。安装完成后,MCP 服务将作为 Cytoscape 插件在 /mcp 端点暴露。
  • 服务器配置(MCP 客户端需要的配置信息,用于连接到 MCP 服务器)

    • 服务器名称(server_name):Cytoscape MCP Desktop
    • 启动命令(command):嵌入式部署方式(MCP 服务器作为 Cytoscape App 运行在 Cytoscape 内部,无独立外部进程启动命令)
    • 参数(args)注释说明(请按需要在客户端填写相关字段):
      • endpoint: http://localhost:1234/mcp
        • 这是 MCP 服务器对外暴露的端点地址,基于 Cytoscape 的 CyREST 端口。默认端口在测试环境中为 1234,请以实际运行时的 CyREST 端口为准。
      • transport: streaming_http
        • 指定传输模式为流式传输(MCP 的文本事件流格式,适用于持续交互)。
      • protocol_versions: [ "2024-11-05", "2025-03-26", "2025-06-18", "2025-11-25" ]
        • MCP 协议版本集合,客户端可根据自身能力选择或协商使用的版本。
    • 注:由于该 MCP 服务器是嵌入在 Cytoscape App 中运行,客户端无需向服务器发起独立的“启动命令”;客户端只需要知道端点地址和传输方式即可建立连接。
  • 基本使用方法

    • 启动并连接
      • 安装并启动 Cytoscape,确保 MCP 插件已加载并正在运行。
      • 以支持的 MCP 客户端(如 Claude Desktop 等)配置连接信息,指向 http://localhost:1234/mcp,使用流式传输进行会话。
    • 交互流程
      • 客户端发送初始化握手,请求服务器能力、版本等信息。
      • 客户端请求工具列表、资源信息、Prompts/模板等,服务器返回对应的 JSON-RPC 回复。
      • 如需持续交互,客户端可通过流式响应接收工具输出、事件通知等。
    • 故障排查
      • 通过 Cytoscape 端的 MCP 状态指示查看服务器是否正在运行(MCP 按钮颜色变化)。
      • 使用 MCP 的内建诊断(如 /mcp/manifest、/mcp 等)验证当前注册的工具、能力、以及服务端状态。
  • 额外信息

    • 该实现包含一系列工具的完整注册与实现,以及用于测试的 InMemoryTransport 测试用例,确保 MCP 服务器端在实际使用中的行为符合预期。

服务器信息