Sandbox
@mcpland/storybook-mcp

MCP server for Storybook docs and component data

This server connects an agent to a Storybook instance through MCP. It reads the Storybook index, finds component docs, loads pages in a headless browser, and returns props or other extracted data.

46 stars10 forksTypeScriptUpdated 5mo ago
Who it's for

Builders who want their agent to inspect Storybook docs and component props.

What it delivers

You can ask your agent for Storybook component lists, props, and custom page data without manual copy-paste.

What it does

Get component lists

Fetches all documented components from the configured Storybook index.

Read component props

Uses Playwright in a headless browser to extract props tables, including names, types, defaults, descriptions, and required status.

Define custom tools

Lets you add JSON-defined tools that navigate to a Storybook page and run JavaScript to extract any data you want.

Support Storybook v3 and v5

Handles `index.json` and older `stories.json` formats for Storybook sites.

Install the browser

Includes an `install-browser` flow so Chromium can be prepared before the first browser-backed tool call.

How to get it

  1. 1Example
    Available components:
    Accordion
    Avatar
    Badge
    Button
    ...
  2. 2Example usage
    Tool: getComponentsProps
    Parameters: { "componentNames": ["Button", "Input", "Avatar"] }

README

Storybook MCP Server

Node CI npm license

A Model Context Protocol (MCP) server that provides tools to interact with Storybook documentation and component information.

storybook-mcp MCP server

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"
      }
    }
  }
}

storybook-mcp starts immediately and installs Chromium in the background the first time it runs. If you want to preinstall the browser ahead of time, run npx -y storybook-mcp@latest install-browser. Until that download finishes, the first browser-backed tool call can take longer.

Environment Variables

  • STORYBOOK_URL (required): The URL to your Storybook's index.json file
  • CUSTOM_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

  1. Component List: The server fetches the Storybook's index.json file(v3 is stories.json) and extracts all components marked as "docs" type
  2. 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.json
  • https://your-storybook-domain.com/storybook/index.json

Development

Local Development

  1. Clone the repository
  2. Install dependencies: yarn install
  3. Install Playwright browsers: yarn install:browser
  4. Set the environment variable: export STORYBOOK_URL="your-storybook-url"
  5. Run in development mode: yarn dev

Note: You can also use npx @modelcontextprotocol/inspector tsx src/index.ts instead of yarn dev if you prefer.

Building

yarn build

Testing

yarn test

Requirements

  • Node.js 18.0.0 or higher
  • Chromium browser installed by 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.

Files in the repo

Repository payload14 top-level entries
  • .github
  • .vscode
  • examples
  • src
  • test
  • .gitignore
  • .prettierrc
  • eslint.config.mjs
  • LICENSE
  • package.json
  • README.md
  • tsconfig.json
  • vitest.config.ts
  • yarn.lock

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k