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 协议版本集合,客户端可根据自身能力选择或协商使用的版本。
- endpoint: http://localhost:1234/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 服务器端在实际使用中的行为符合预期。