Skip to content
Reference

Storybook

Interactive component explorers for Angular, React, and Vue. Browse stories, inspect props, and test accessibility in isolation.

React
@atelier-ui/react Open
Angular
@atelier-ui/angular Open
Vue
@atelier-ui/vue Open

MCP server

All three Storybook instances expose a hosted MCP endpoint so AI coding assistants can read component documentation directly — no local setup required.

01

Add the MCP server to your project

In your AI assistant's MCP configuration (e.g. .claude/settings.json for Claude Code) add one or more servers:

{
"mcpServers": {
"storybook-react": {
"type": "http",
"url": "https://atelier.pieper.io/storybook-react/mcp"
},
"storybook-angular": {
"type": "http",
"url": "https://atelier.pieper.io/storybook-angular/mcp"
},
"storybook-vue": {
"type": "http",
"url": "https://atelier.pieper.io/storybook-vue/mcp"
}
}
}
02

Use it in your prompts

Once connected, your AI assistant can look up component props, variants, and usage examples directly from Storybook:

Build a settings page using @atelier-ui/react components.
Use the storybook-react MCP to check available props.
03

Two MCP surfaces, three toolsets

Storybook 10.4 ships MCP in two layers. The hosted endpoint serves docs from a static manifest — works for any framework, no install. The local dev surface adds dev & test tools while a local Storybook is running, and is officially React-preview only as of 10.4. Tools are grouped into three toolsets (dev, docs, test), each toggleable in the addon options.

ToolsetToolHosted (atelier.pieper.io)Local dev (nx storybook <fw>)
docslist-all-documentationReact: components + docs · Angular/Vue: docs onlyAll frameworks
get-documentationReact: full · Angular/Vue: docs onlyAll frameworks
get-documentation-for-storyReact: full · Angular/Vue: docs onlyAll frameworks
devget-storybook-story-instructionsReact (preview); Vue/Angular experimental
preview-storiesReact (preview); Vue/Angular experimental
get-changed-stories (10.4)Requires features.changeDetection
testrun-story-testsRequires @storybook/addon-vitest; a11y via @storybook/addon-a11y

The hosted endpoint reads manifests/components.json emitted by @storybook/addon-mcp at build time. As of Storybook 10.4 that file is only generated for React (via TypeScript Language Server docgen — the new experimentalReactComponentMeta docgen path). Angular & Vue static builds only emit docs.json — hosted MCPs for those frameworks return MDX docs (foundations, tokens) but no per-component props. Run the local Storybook dev server for per-component data in Angular/Vue, or use the React MCP as the cross-framework API reference (the spec is identical, only the binding differs).

The dev / test toolsets require a running Node.js Storybook dev server and are gated by Storybook 10.4 to React for now. docs tools support a storybookId parameter to scope a request to one source in multi-source (composition) setups; list-all-documentation accepts withStoryIds: true when downstream tools need story IDs.

04

What's new in Storybook 10.4 MCP

The 10.4 release tightens the agentic loop on four fronts:

CapabilityWhat it doesHow to enable
experimentalReactComponentMeta (RCM) Volar + TypeScript Language Server docgen replaces react-docgen / react-docgen-typescript — faster, better detection, faster dev-mode HMR for prop edits. Powers React components.json. experimentalReactComponentMeta: true in .storybook/main.ts (React). @storybook/mcp@0.6.2+ reads the new reactComponentMeta payload automatically.
Change Review sidebar & get-changed-stories Storybook tracks new, modified, and affected stories. The MCP tool returns just that subset so agents can scope review to recent edits. Set features.changeDetection: true in .storybook/main.ts. Tool registers automatically.
Multi-source composition + OAuth Compose several Storybooks behind one MCP endpoint via Storybook refs. The addon serves /.well-known/oauth-protected-resource and accepts bearer tokens so agents can reach private composed Storybooks. Add refs to .storybook/main.ts; pass storybookId to docs tools to disambiguate.
MCP Apps preview resource preview-stories exposes a ui://preview-stories/preview.html resource so MCP-Apps-capable hosts render the story preview inline in chat (Cursor, Claude Desktop with MCP Apps). Non-capable hosts get the previewUrl per story instead. Automatic when the host advertises MCP Apps support.
Subcomponent docs get-documentation surfaces subcomponent props for compound components. @storybook/mcp@0.7.0+ & @storybook/addon-mcp@0.6.0+. No config.
Self-host API (createStorybookMcpHandler) Reusable docs handler for serving manifests from any runtime (Cloudflare Workers, Netlify Functions, Node). Hooks: manifestProvider, onListAllDocumentation, onGetDocumentation, onSessionInitialize. Tool-registration exports (addListAllDocumentationTool, etc.) for custom tmcp servers. import { createStorybookMcpHandler } from '@storybook/mcp'. See worker/mcp.ts in this repo.
05

Toolset configuration

All three toolsets default to true. Disable a toolset when an agent should not see those tools — e.g. read-only agents:

.storybook/main.ts
import type { StorybookConfig } from '@storybook/react-vite';
const config: StorybookConfig = {
addons: [
{
name: '@storybook/addon-mcp',
options: {
toolsets: {
dev: true, // preview-stories, get-storybook-story-instructions, get-changed-stories
docs: true, // list-all-documentation, get-documentation, get-documentation-for-story
test: false, // disable run-story-tests for read-only agents
},
},
},
],
features: {
experimentalComponentsManifest: true, // gates the docs toolset
changeDetection: true, // gates get-changed-stories
},
};
export default config;

Telemetry is on by default — disable with Storybook's core.disableTelemetry.

06

Endpoints

LibraryHosted URLLocal dev URL
@atelier-ui/reacthttps://atelier.pieper.io/storybook-react/mcphttp://localhost:6006/mcp
@atelier-ui/angularhttps://atelier.pieper.io/storybook-angular/mcphttp://localhost:6006/mcp
@atelier-ui/vuehttps://atelier.pieper.io/storybook-vue/mcphttp://localhost:6006/mcp

Only one local Storybook can bind localhost:6006 at a time — pick the framework you're actively working in.