Cordyceps Grasshopper MCP 服务器

使用说明(Markdown 格式)

  • 项目简介 Cordyceps 是一个在 Grasshopper/Rhino 环境中实现的 MCP 服务器端,负责向 MCP 客户端提供 Grasshopper 的上下文信息与功能,包括资源管理、工具注册与执行、以及提示模板的渲染与分发。服务器通过一个可扩展的 JSON-RPC 端点 http://localhost:26929/mcp 与客户端通信,支持多种传输模式与会话管理,确保在 AI 助手对 Grasshopper 场景进行引导时具备安全、可扩展的上下文服务能力。

  • 主要功能点

    • 资源管理:提供静态文档资源以及动态组件资源的列举与读取,支持文档化知识库的浏览与检索。
    • 工具注册与执行:通过 MCP SDK 风格的属性标记发现 Grasshopper 工具,允许 MCP 客户端调用 gh_canvas、gh_wire、gh_document、gh_script、rhino_render 等一系列工具来操作 Grasshopper/ Rhino 场景。
    • 提示模板与知识库:提供 prompts 注册与获取,支持将 prompts 应用于对话中以引导 AI 进行规范化操作。
    • JSON-RPC 通信:实现标准的 MCP Streamable HTTP 传输,处理 initialize、tools/list、tools/call、resources/list、resources/read、prompts/list、prompts/get 等方法,以及通知模式。
    • 会话与安全:内置 Origin 验证、CORS 处理、请求大小限制、以及对 Grasshopper UI 主线程的安全调用,确保并发请求下的 UI 稳定性。
    • 服务器与端口多实例支持:支持在同一应用中针对不同端口运行多个 MCP 服务器实例。
  • 安装步骤

    1. 在 Rhino/Grasshopper 环境中编译并部署 Cordyceps 项目(基于 .NET 的 Grasshopper 插件结构)。
    2. 将 Cordyceps 组件放到 Grasshopper 画布上(CordycepsComponent),在 Rhino/Grasshopper 运行时自动启动 MCP 服务器,默认端口为 26929,端点为 http://127.0.0.1:26929/mcp。
    3. 通过 MCP 客户端连接:使用客户端的传输方式(如 stdio、SSE、WebSocket 等)对接 /mcp 端点,端口和路由保持为上述默认端口,若需要可在 Cordyceps 组件中设置自定义端口。
    4. 如需多个 Cordyceps 服务器并行,请在 Grasshopper 中创建多个 Cordyceps 组件实例,并指定不同的端口以实现并行服务。
  • 服务器配置(MCP 客户端配置信息,供客户端使用的描述信息,不包含服务器端代码) serverName: "Cordyceps" command: "npx" args: ["-y", "mcp-remote", "http://127.0.0.1:26929/mcp"] 说明: 该配置用于 MCP 客户端连接 Cordyceps 服务器的传输桥接,启动命令与参数来自 Cordyceps 的使用文档示例,客户端通过该桥接将 MCP 请求转发到 Cordyceps 服务器的 /mcp 端点。Cordyceps 服务器本身在 Grasshopper/ Rhino 内部运行,监听端口默认为 26929(如需修改,请在 Cordyceps 组件中调整端口设置)。

  • 基本使用方法

    1. 打开 Rhino/Grasshopper,确保 Cordyceps 组件已放置并激活。
    2. 如果需要,通过 MCP 客户端的配置连接 Cordyceps 服务器(上述配置示例),并指向 http://127.0.0.1:26929/mcp。
    3. 在 MCP 客户端中先发送 initialize 请求,确认服务器协议版本和能力声明。
    4. 使用 tools/list、resources/list、prompts/list 等接口探查可用能力与资源。
    5. 使用 tools/call 调用 Grasshopper 工具执行操作(如 gh_canvas、gh_wire、gh_document、gh_script 等),或通过 resources/read 读取文档资源、prompts/get 获取提示模板并在对话中使用。
    6. 根据需要进行多次会话, Cordyceps 将在 Rhino/Grasshopper UI 线程中执行相应操作,确保 UI 稳定性与数据一致性。
  • 注释

    • MCP 请求以 JSON-RPC 2.0 风格进行,服务器会区分通知(无 id)和请求(带 id),通知将返回 202,普通请求返回带有 id 的 jsonrpc 2.0 响应。
    • 服务器默认端口 26929,接口前缀为 /mcp,健康检查和跨域预检等也支持。
    • 服务器具备多端口运行能力,可以在同一应用中通过 CordycepsComponent 设置不同端口来并行服务。

服务器信息