项目简介

Storybook MCP 服务是一个基于 Model Context Protocol (MCP) 构建的后端应用,它将 Storybook 中的 UI 组件信息、故事 (stories) 及其开发工作流标准化,并通过 JSON-RPC 协议提供给大型语言模型 (LLM) 客户端。这使得 AI 代理能够更好地理解和操作 Storybook 中的 UI 组件,从而提高开发效率。

该项目包含两个主要部分:

  • '@storybook/mcp': 一个独立的 MCP 库,用于提供 Storybook 组件知识服务,可单独使用。
  • '@storybook/addon-mcp': 一个 Storybook 插件,它在您的 Storybook 开发服务器中运行一个 MCP 服务器,并集成了 '@storybook/mcp' 的功能。

主要功能点

  • 组件资源管理: 托管和管理 Storybook UI 组件的元数据,包括组件名称、描述、属性 (props) 和代码示例。
  • 工具执行: 提供多种工具供 LLM 调用,例如:
    • 'list-all-components': 列出所有可用的 UI 组件及其摘要信息。
    • 'get-component-documentation': 获取指定 UI 组件的详细文档,包括其故事、属性信息和代码片段。
    • 'get-story-urls': 获取 Storybook 中指定故事的访问 URL,方便 AI 代理查看或引用特定故事。
    • 'get-ui-building-instructions': 提供 UI 组件开发的一般性指导和当前 Storybook 框架信息,帮助 AI 代理理解开发上下文。
  • 标准化交互: 通过 JSON-RPC 协议与 MCP 客户端进行通信,确保 LLM 客户端能够以统一、结构化的方式获取上下文信息和调用功能。
  • 会话管理与能力声明: 支持 MCP 协议的会话初始化和服务器能力声明,为 LLM 客户端提供安全、可扩展的上下文服务框架。

安装步骤

在开始之前,请确保您的开发环境中已安装 Node.js 24+ 和 pnpm 10.19.0+。

  1. 克隆仓库: 打开您的终端或命令提示符,执行以下命令克隆项目仓库:
    git clone https://github.com/storybookjs/mcp.git
  2. 进入项目目录: 导航到克隆下来的项目根目录:
    cd mcp
  3. 安装依赖: 使用 pnpm 安装所有项目依赖:
    pnpm install
  4. 构建项目: 构建项目以生成可执行文件:
    pnpm build
  5. 启动 Storybook 和 MCP 服务器: 执行以下命令,它将启动 Storybook 实例,并同时运行 MCP 服务器:
    pnpm storybook
    • Storybook 实例通常会在 'http://localhost:6006' 启动。
    • MCP 服务器的 API 接口默认可在 'http://localhost:6006/mcp' 访问。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动信息才能建立连接。以下是一个您可能需要提供给 MCP 客户端的 JSON 配置示例,请根据您的实际部署情况调整相关值:

{
  "name": "Storybook MCP Server",
  "description": "连接到 Storybook MCP 服务器,获取 UI 组件信息和开发工具。",
  "command": "pnpm",
  "args": ["storybook"],
  "port": 6006,
  "endpoint": "/mcp",
  "protocol": "http"
}
  • 'name': MCP 服务器的显示名称,方便识别。
  • 'description': MCP 服务器的简要功能说明。
  • 'command': 启动 MCP 服务器的命令行命令。在此项目中,'pnpm storybook' 会同时启动 Storybook 和内置的 MCP 服务器。
  • 'args': 启动命令的参数。
  • 'port': MCP 服务器监听的网络端口,默认是 '6006'。
  • 'endpoint': MCP 服务的具体 API 路径,通常是 '/mcp'。
  • 'protocol': MCP 服务器使用的传输协议,例如 'http'。

基本使用方法

一旦 MCP 服务器通过 'pnpm storybook' 成功启动,您的 MCP 客户端就可以通过发送 JSON-RPC 请求与服务器进行交互。

例如,使用 'curl' 工具(或您的 MCP 客户端)来列出所有可用的工具:

curl -X POST \
  http://localhost:6006/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
  }'

要调用特定的工具,例如获取所有组件的列表:

curl -X POST http://localhost:6006/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "list-all-components",
      "arguments": {}
    }
  }'

您的 MCP 客户端将接收到 JSON-RPC 格式的响应,其中包含 Storybook 组件的详细信息,或通过调用其他工具来辅助 UI 开发任务。

信息

分类

开发者工具