Storybook
STDIOStorybook文档组件信息交互服务器
Storybook文档组件信息交互服务器
A Model Context Protocol (MCP) server that provides tools to interact with Storybook documentation and component information.
Add the following configuration to MCP settings:
{ "mcpServers": { "storybook": { "command": "npx", "args": ["-y", "storybook-mcp"], "env": { "STORYBOOK_URL": "<your_storybook_url>/index.json" } } } }
STORYBOOK_URL (required): The URL to your Storybook's index.json fileCUSTOM_TOOLS (optional): JSON array of custom tool definitions for extracting specific information from your StorybookThe server provides built-in tools and supports custom tools:
Retrieves a list of all available components from the configured Storybook.
Example:
Available components:
Accordion
Avatar
Badge
Button
...
Gets detailed props information for multiple components, including:
Parameters:
componentNames (array of strings): Array of component names to get props information forExample usage:
Tool: getComponentsProps
Parameters: { "componentNames": ["Button", "Input", "Avatar"] }
You can define custom tools to extract specific information from your Storybook pages. Each custom tool can:
Custom Tool Structure:
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 }
Example Custom Tools:
[ { "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 }))" } ]
For more examples and detailed documentation, see examples/custom-tools-example.md.
Set Spectrum storybook-mcp config with STORYBOOK_URL and CUSTOM_TOOLS environment variables.
{ "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)\"}]" } } } }
index.json file(v3 is stories.json) and extracts all components marked as "docs" typeThe server works with any Storybook that exposes an index.json file(v3 is stories.json). Common patterns:
https://your-storybook-domain.com/index.jsonhttps://your-storybook-domain.com/storybook/index.jsonyarn installnpx playwright install chromiumexport STORYBOOK_URL="your-storybook-url"yarn devNote: You can also use
npx @modelcontextprotocol/inspector tsx src/index.tsinstead ofyarn devif you prefer.
yarn build
yarn test
The server includes comprehensive error handling for:
Storybook MCP is MIT licensed.