
Storybook
Extracts component information, props data, and design system elements from Storybook documentation using browser automation.
Integrates with Storybook documentation to extract component information, props data, and custom design system elements like icons and color palettes using browser automation and JavaScript execution.
What it does
- List all components from Storybook documentation
- Extract detailed props information for components
- Create custom tools to scrape specific Storybook data
- Automate browser interactions with Storybook pages
- Extract design system elements like icons and colors
Best for
About Storybook
Storybook is a community-built MCP server published by mcpland that provides AI assistants with tools and capabilities via the Model Context Protocol. Integrate with Storybook to extract component info, props, and custom design elements like icons and color palettes usin It is categorized under browser automation, developer tools.
How to install
You can install Storybook in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
Storybook is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Storybook MCP Server
A Model Context Protocol (MCP) server that provides tools to interact with Storybook documentation and component information.
Features
- getComponentList: Get a list of all components from a configured Storybook
- getComponentsProps: Get detailed props information for multiple components using headless browser automation
- Custom Tools: Create custom tools that can extract any information from your Storybook pages using JavaScript
Installation and Configuration
MCP Settings
Add the following configuration to MCP settings:
{
"mcpServers": {
"storybook": {
"command": "npx",
"args": ["-y", "storybook-mcp@latest"],
"env": {
"STORYBOOK_URL": "<your_storybook_url>/index.json"
}
}
}
}
Environment Variables
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 Storybook
Usage
The server provides built-in tools and supports custom tools:
Built-in Tools
1. getComponentList
Retrieves a list of all available components from the configured Storybook.
Example:
Available components:
Accordion
Avatar
Badge
Button
...
2. getComponentsProps
Gets detailed props information for multiple components, including:
- Property names
- Types
- Default values
- Descriptions
- Required/optional status
Parameters:
componentNames(array of strings): Array of component names to get props information for
Example usage:
Tool: getComponentsProps
Parameters: { "componentNames": ["Button", "Input", "Avatar"] }
Custom Tools
You can define custom tools to extract specific information from your Storybook pages. Each custom tool can:
- Navigate to any page in your Storybook
- Execute custom JavaScript to extract data
- Return structured data to the AI assistant
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.
Example
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)\"}]"
}
}
}
}
How it works
- Component List: The server fetches the Storybook's
index.jsonfile(v3 isstories.json) and extracts all components marked as "docs" type - Props Information: For component props, the server:
- Finds the component's documentation ID from the index.json
- Constructs the iframe URL for the component's docs page
- Uses Playwright to load the page in a headless browser
- Extracts the props table HTML from the documentation
Supported Storybook URLs
The 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.json
Development
Local Development
- Clone the repository
- Install dependencies:
yarn install - Install Playwright browsers:
npx playwright install chromium - Set the environment variable:
export STORYBOOK_URL="your-storybook-url" - Run in development mode:
yarn dev
Note: You can also use
npx @modelcontextprotocol/inspector tsx src/index.tsinstead ofyarn devif you prefer.
Building
yarn build
Testing
yarn test
Requirements
- Node.js 18.0.0 or higher
- Chromium browser (automatically installed with Playwright)
Error Handling
The server includes comprehensive error handling for:
- Missing or invalid Storybook URLs
- Network connectivity issues
- Component not found scenarios
- Playwright browser automation failures
License
Storybook MCP is MIT licensed.
Alternatives
Related Skills
Browse all skillsBrowser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.
This skill should be used for browser automation tasks using Chrome DevTools Protocol (CDP). Triggers when users need to launch Chrome with remote debugging, navigate pages, execute JavaScript in browser context, capture screenshots, or interactively select DOM elements. No MCP server required.
Guide users through browser automation setup using Chrome DevTools MCP as the primary path and the OpenCode browser extension as a fallback. Use when the user asks to set up browser automation, Chrome DevTools MCP, browser MCP, browser extension, or runs the browser-setup command.
Comprehensive CrewAI framework guide for building collaborative AI agent teams and structured workflows. Use when developing multi-agent systems with CrewAI, creating autonomous AI crews, orchestrating flows, implementing agents with roles and tools, or building production-ready AI automation. Essential for developers building intelligent agent systems, task automation, and complex AI workflows.
Lightweight Chrome automation toolkit with shared configuration, JSON-first output, and six focused scripts for starting, navigating, inspecting, capturing, evaluating, and cleaning up browser sessions.
CCXT cryptocurrency exchange library for TypeScript and JavaScript developers (Node.js and browser). Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors. Use when working with crypto exchanges in TypeScript/JavaScript projects, trading bots, arbitrage systems, or portfolio management tools. Includes both REST and WebSocket examples.