使用说明
- 项目简介
- 该仓库实现了一个 MCP(Model Context Protocol)服务器端,核心职责是托管资源(Resources)、注册并执行工具(Tools),以及提供可渲染的提示/场景数据,供 LLM 客户端调用与展示。服务器通过 SSE/http 的传输方式与客户端进行交互,并提供会话管理与能力声明。
- 主要功能点
- 资源托管与读取:服务器提供 ListResources、ReadResource 等接口,读取并返回资源内容及元信息。
- 工具注册与执行:服务器提供 ListTools、CallTool 等接口,允许客户端请求执行外部功能并返回结果。
- 模拟数据与渲染:基于模板中的 simulations,服务器将资源与工具结合生成可渲染的结构化内容(structuredContent),并通过指定的 distPath 加载构建后的 Widget。
- 会话与传输:通过 SSE(Server-Sent Events)实现与客户端的持续通信,支持多会话管理与错误处理。
- 兼容性与扩展性:开放的服务端实现,未来可通过添加新的 provider、资源类型或传输协议来拓展能力。
- 安装步骤
- 确保环境:Node.js 20+(快速开始使用的开发环境要求)。
- 在应用根目录安装依赖:执行安装命令(如 npm i 或 pnpm install)。
- 构建资源:执行 sunpeak build,生成 dist/{simulation}.js 等构建产物。dist 路径中的文件将被 MCP 服务器读取并包装为 HTML shell。
- 启动 MCP 服务器:执行 sunpeak mcp,默认监听端口6766。若需要更改端口可设置环境变量 PORT。
- 服务器配置(MCP 客户端需要的配置信息) 为了让 MCP 客户端能够连接并与你的 MCP 服务器进行通信,需要提供以下配置(JSON 结构示意,客户端不需要此段代码,仅用于了解参数含义): { "name": "your-app-name", // 服务器名称,通常使用应用在 package.json 中的 name "port": 6766, // MCP 服务监听端口,默认 6766 "command": "sunpeak", // 用于启动 MCP 服务器的命令(前置命令,通常是 sunpeak) "args": ["mcp"] // 启动参数,常见组合为 ["mcp"],即执行“sunpeak mcp” // 进一步的可选字段可根据实际部署环境扩展,如 host、证书配置、超时设置等 } 说明:MCP 客户端通过该配置了解如何启动并连接到服务器,核心在于 server name、启动命令以及启动参数。实际运行所需的详细网络与鉴权参数由部署环境承担,客户端通常不需要在运行代码中处理。
- 基本使用方法
- 本地开发流程示例
- 在应用根目录执行构建:sunpeak build,确保 dist 目录下的 simulation Widget 已就绪。
- 启动 MCP 服务器:sunpeak mcp,服务器将会监听指定端口并等待客户端连接。
- 客户端配置完成后即可通过 ListResources、ReadResource、ListTools、CallTool 等 MCP 调用与资源、工具进行交互,获取结构化内容并渲染。
- 生产与部署
- 将应用打包后的 dist 文件与资源元数据一并部署到服务器或容器中。
- 配置环境变量 PORT 指定对外暴露的端口,确保防火墙和反向代理正确转发。
- 启动 MCP 服务,监控日志以确保 ListResources、ReadResource、ListTools、CallTool 等请求能够正确处理。
- 本地开发流程示例
- 注意事项
- MCP 服务器依赖应用根目录下的 src/simulations/index.ts 提供的模拟数据来生成资源与工具信息,请确保该文件及相关模拟数据存在且正确。
- dist 文件在构建时需要生成,且路径需符合 src/mcp/entry.ts 中的 distPath 约定(dist/{simulationKey}.js)。
- 端口与网络配置请在部署时根据实际环境设置,默认端口为 6766。
信息
分类
AI与计算