ShipUI MCP 服务端
使用说明(Markdown 风格,便于快速上手)
- 项目简介
- 这是一个完整的 MCP 服务器实现,内置对 ShipUI 组件的数据资源、可执行工具,以及提示模板的支持。
- 服务器通过 MCP 规范与客户端进行 JSON-RPC 交互,负责会话管理、能力声明,以及对资源、工具、Prompts 的统一访问接口。
- 传输层使用标准的 MCP 传输实现之一(代码中以标准输入/输出(stdio)作为默认传输通道),便于与各种语言的 LLM 客户端集成。
- 主要功能点
- MCP 请求/响应处理:实现 MCP 协议的核心流程(JSON-RPC 请求、响应及通知的解析与分发)。
- 资源托管与访问:提供 ShipUI 组件数据资源的列举与读取能力,允许客户端读取资源元信息与具体内容。
- 工具注册与调用:支持通过 MCP 注册工具,并在需要时被客户端调用(如搜索组件、获取组件详情等工具)。
- 提示模板定义与渲染:提供与组件相关的 Prompt 内容,帮助 LLM 客户端以标准化的对话形式获取信息。
- 会话与能力管理:声明服务器能力、处理会话相关信息、并能在需要时进行权限/能力校验。
- 数据来源与渲染:数据加载自仓库内置数据文件(如组件清单),并能在运行时提供给客户端使用。
- 安装与运行步骤
- 前提
- 已安装 Node.js 环境(建议 Node.js 版本与仓库的依赖兼容)。
- 启动方式
- MCP 服务器在仓库中通过 ShipUI 的 MCP 实现提供了一个可直接运行的入口,通常通过 npm/npx 启动:
- 命令示例(无需额外代码修改,直接执行即可):npx @ship-ui/core ship-mcp
- 该命令将启动一个 MCP 服务器实例,默认通过标准输入输出(stdio)与 MCP 客户端进行通信。
- MCP 服务器在仓库中通过 ShipUI 的 MCP 实现提供了一个可直接运行的入口,通常通过 npm/npx 启动:
- 运行后要点
- 服务器启动后会在标准输出输出日志,提示 “ShipUI MCP Server running on stdio”。
- 客户端连接时,服务器会以 MCP 提供的 JSON-RPC 结构处理资源、工具、Prompts 的相关请求。
- 服务器配置(给 MCP 客户端的连接信息) 说明:MCP 客户端需要知道服务器的基本信息以建立连接,配置信息以 JSON 形式提供(包含服务器名称、启动命令及参数等)。以下信息基于仓库中的实现与 README 的描述来给出准确示例。
{ "serverName": "ship-ui-mcp", "command": "npx @ship-ui/core ship-mcp", "args": [] }
- 注释:
- serverName:MCP 服务器对外的唯一标识,采用仓库实现中的名称 ship-ui-mcp。
- command:用于启动 MCP 服务器的命令,原仓库中提供的启动方式是 npx @ship-ui/core ship-mcp。
- args:启动命令的额外参数,这里示例为空数组;如未来需要传参可在此处补充。
- 基本使用方法
- 启动服务器
- 使用前述命令启动 MCP 服务器。
- 与 MCP 客户端互动
- MCP 客户端通过 MCP 协议的 JSON-RPC 请求与服务器通信,常见操作包括:
- 列出资源(读取 ShipUI 组件清单)
- 读取资源(获取某个组件的详细内容)
- 列出工具(提供可调用的工具清单)
- 调用工具(执行特定工具)
- 获取提示(获取或渲染提示模板)
- MCP 客户端通过 MCP 协议的 JSON-RPC 请求与服务器通信,常见操作包括:
- 简单自验证思路
- 通过 MCP 客户端向服务器发送列表资源请求,确认资源入口地址(如 ship-ui://components/{selector})的返回正确性。
- 读取一个资源,验证返回的内容格式与字段(uri、mimeType、描述等)。
- 调用工具(如搜索组件、获取组件详情)并确认返回数据结构符合客户端期望。
- 备注
- 本仓库提供的 MCP 服务器实现已将 ShipUI 组件数据、工具、Prompts 等整合在一个服务器中,便于与 LLM 客户端协同工作,形成标准化的上下文服务。
- 额外推荐做法
- 若需要扩展能力,请在 ShipUI MCP 服务器中注册更多资源、工具或 Prompts,以满足不同的对话场景与上下文需求。
- 如需要使用其他传输协议(如 SSE、WebSocket 等),可基于 MCP SDK 提供的 Transport 实现接入。