storybook-mcp
Storybook MCP 服务器
一个模型上下文协议 (MCP) 服务器,提供与 Storybook 文档和组件信息交互的工具。
功能
getComponentList: 从配置的 Storybook 中获取所有组件的列表
getComponentsProps: 使用无头浏览器自动化获取多个组件的详细属性 (props) 信息
自定义工具: 创建自定义工具,使用 JavaScript 从 Storybook 页面中提取任何信息
Related MCP server: MCP Server
安装与配置
MCP 设置
将以下配置添加到 MCP 设置中:
{
"mcpServers": {
"storybook": {
"command": "npx",
"args": ["-y", "storybook-mcp@latest"],
"env": {
"STORYBOOK_URL": "<your_storybook_url>/index.json"
}
}
}
}storybook-mcp 会立即启动,并在首次运行时在后台安装 Chromium。如果您想提前安装浏览器,请运行 npx -y storybook-mcp@latest install-browser。在下载完成之前,首次调用基于浏览器的工具可能需要更长时间。
环境变量
STORYBOOK_URL(必需): 指向 Storybook 的index.json文件的 URLCUSTOM_TOOLS(可选): 用于从 Storybook 提取特定信息的自定义工具定义的 JSON 数组
使用方法
该服务器提供内置工具并支持自定义工具:
内置工具
1. getComponentList
从配置的 Storybook 中检索所有可用组件的列表。
示例:
Available components:
Accordion
Avatar
Badge
Button
...2. getComponentsProps
获取多个组件的详细属性信息,包括:
属性名称
类型
默认值
描述
必填/可选状态
参数:
componentNames(字符串数组): 要获取属性信息的组件名称数组
使用示例:
Tool: getComponentsProps
Parameters: { "componentNames": ["Button", "Input", "Avatar"] }自定义工具
您可以定义自定义工具以从 Storybook 页面中提取特定信息。每个自定义工具可以:
导航到 Storybook 中的任何页面
执行自定义 JavaScript 以提取数据
将结构化数据返回给 AI 助手
自定义工具结构:
interface CustomTool {
name: string; // Unique tool name
description: string; // Tool description for the AI
parameters: object; // Input parameters schema (optional)
page: string; // URL to navigate to
handler: string; // JavaScript code to execute on the page
}自定义工具示例:
[
{
"name": "getIconList",
"description": "Get All Icons from the Icon page",
"parameters": {},
"page": "https://your-storybook.com/?path=/docs/icon--docs",
"handler": "Array.from(document.querySelectorAll('.icon-name')).map(i => i.textContent)"
},
{
"name": "getColorPalette",
"description": "Extract color palette from design tokens",
"parameters": {},
"page": "https://your-storybook.com/?path=/docs/design-tokens--colors",
"handler": "Array.from(document.querySelectorAll('.color-swatch')).map(el => ({ name: el.getAttribute('data-color-name'), value: el.style.backgroundColor }))"
}
]有关更多示例和详细文档,请参阅 examples/custom-tools-example.md。
示例
使用 STORYBOOK_URL 和 CUSTOM_TOOLS 环境变量设置 Spectrum storybook-mcp 配置。
{
"mcpServers": {
"storybook-mcp": {
"command": "npx",
"args": ["-y", "storybook-mcp@latest"],
"env": {
"STORYBOOK_URL": "https://opensource.adobe.com/spectrum-web-components/storybook/index.json",
"CUSTOM_TOOLS": "[{\"name\":\"getIconList\",\"description\":\"Get All Icons from the Icon page\",\"parameters\":{},\"page\":\"https://opensource.adobe.com/spectrum-web-components/storybook/iframe.html?viewMode=docs&id=icons--docs&globals=\",\"handler\":\"Array.from(document.querySelector('icons-demo').shadowRoot.querySelectorAll('.icon')).map(i => i.textContent)\"}]"
}
}
}
}工作原理
组件列表: 服务器获取 Storybook 的
index.json文件(v3 版本为stories.json)并提取所有标记为 "docs" 类型的组件属性信息: 对于组件属性,服务器会:
从 index.json 中查找组件的文档 ID
构建组件文档页面的 iframe URL
使用 Playwright 在无头浏览器中加载页面
从文档中提取属性表格 HTML
支持的 Storybook URL
该服务器适用于任何公开 index.json 文件(v3 版本为 stories.json)的 Storybook。常见模式:
https://your-storybook-domain.com/index.jsonhttps://your-storybook-domain.com/storybook/index.json
开发
本地开发
克隆仓库
安装依赖:
yarn install安装 Playwright 浏览器:
yarn install:browser设置环境变量:
export STORYBOOK_URL="your-storybook-url"在开发模式下运行:
yarn dev
注意:如果您愿意,也可以使用
npx @modelcontextprotocol/inspector tsx src/index.ts代替yarn dev。
构建
yarn build测试
yarn test要求
Node.js 18.0.0 或更高版本
由 Playwright 安装的 Chromium 浏览器
错误处理
服务器包含全面的错误处理,针对:
缺失或无效的 Storybook URL
网络连接问题
未找到组件的情况
Playwright 浏览器自动化失败
许可证
Storybook MCP 采用 MIT 许可证。
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mcpland/storybook-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server