Storybook MCP Server
公式エージェントがUIコンポーネントのストーリーを自動で作成・テストできるように支援します
ドキュメント
Storybook MCP - コントリビューターガイド
Storybook MCP アドオンモノレポへようこそ!このプロジェクトは、UI コンポーネント情報と開発ワークフローを提供する MCP (Model Context Protocol) サーバーを公開することで、AI エージェントが Storybook をより効率的に操作できるようにします。
📦 パッケージ
このモノレポには 4 つの主要パッケージが含まれています。
- @storybook/mcp - Storybook コンポーネントの知識を提供するスタンドアロン MCP ライブラリ (単独で使用可能)
- @storybook/addon-mcp - Storybook 開発サーバー内で MCP サーバーを実行する Storybook アドオン。ローカル Storybook から @storybook/mcp の機能を含みます
- @storybook/claude-code-plugin - Storybook セットアップスキルと MCP 設定を含む Claude Code プラグイン
- @storybook/codex-plugin - Storybook セットアップスキルと MCP 設定を含む Codex プラグイン
各パッケージには、ユーザー向けドキュメントを含む独自の README があります。このドキュメントは、これらのパッケージの開発、テスト、または貢献を検討しているコントリビューター向けです。
🚀 クイックスタート
GitHub からの Claude および Codex プラグインのテスト
外部テスターは、このリポジトリの
main ブランチからプラグインマーケットプレイスを直接インストールできます。ローカルクローンは不要です。
Codex
codex plugin marketplace add storybookjs/mcp --ref main
codex plugin add storybook@storybook
マーケットプレイスとプラグインを確認します。
codex plugin marketplace list
codex plugin list --marketplace storybook
Claude Code
claude plugin marketplace add storybookjs/mcp@main --scope user
claude plugin install storybook@storybook --scope user
プラグインと MCP サーバーを確認します。
claude plugin list --json
claude mcp list
リポジトリは意図的にマーケットプレイスカタログを 2 箇所に保持しています。ルート
カタログは storybookjs/mcp からの GitHub インストールをサポートし、パッケージローカル
カタログはローカルパッケージ開発スクリプトをサポートします。相対プラグインソースパスを除いて同一である必要があり、パッケージ検証がそれをチェックします。
前提条件
- Node.js 24+ - プロジェクトには Node.js 24 以上が必要です (
.nvmrcを参照) - pnpm 10.19.0+ - 厳密なパッケージマネージャー要件 (
package.jsonで強制)
# Use the correct Node version
nvm use
# Install pnpm if you don't have it
npm install -g [email protected]
インストール
# Clone the repository
git clone https://github.com/storybookjs/mcp.git
cd addon-mcp
# Install all dependencies (for all packages in the monorepo)
pnpm install
開発ワークフロー
# Build all packages
pnpm build
# Start development mode (watches for changes in all packages)
pnpm dev
# Run unit tests in watch mode
pnpm test
# Run unit tests once
pnpm test:run
# Run Storybook with the addon for testing
pnpm --filter internal-storybook storybook
Storybook コマンドが開始するもの:
http://localhost:6006上の内部テスト Storybook インスタンス- ウォッチモードのアドオン (変更が自動的に反映されます)
http://localhost:6006/mcpで利用可能な MCP サーバー
🛠️ 一般的なタスク
開発
turbo watch build コマンドは、すべてのパッケージをウォッチモードで実行し、変更時に自動的に再ビルドします。
# Start development mode for all packages
pnpm turbo watch build
# This is usually all you need - starts Storybook AND watches addon for changes
pnpm storybook
ビルド
# Build all packages
pnpm build
テスト
モノレポは、各パッケージ用に設定されたプロジェクトを持つ、ルートレベルの集中 Vitest 設定を使用します。
# Watch tests across all packages
pnpm test
# Run tests once across all packages
pnpm test:run
# Run tests with coverage and CI reporters
pnpm test:ci
MCP サーバーのデバッグ
MCP Inspector を使用して MCP サーバー機能をデバッグおよびテストします。
# Launches the MCP inspector (requires Storybook to be running)
pnpm inspect
これは .mcp.inspect.json の設定を使用して、ローカル MCP サーバーに接続します。
または、これらの curl コマンドを使用して、すべてが動作することを確認することもできます。
# test that the mcp server is running
# use port 6006 to test the addon-mcp server instead
curl -X POST \
http://localhost:13316/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'
# test a specific tool call
curl -X POST http://localhost:13316/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "list-all-documentation",
"arguments": {}
}
}'
Storybook でのデバッグ
次のコマンドで Storybook を起動できます。
pnpm storybook
これにより、すべてがビルドされ、addon-mcp を含む Storybook が起動します。その後、コーディングエージェントを http://localhost:6006/mcp (または設定されたアドオンエンドポイント) に接続して試すことができます。
MCP アプリの操作
プレビューストーリーツールの一部としてレンダリングされる MCP アプリを操作およびデバッグするには、次の手順を実行します。
- VSCode の Insiders ビルドを使用する
- chat.mcp.apps.enabled 設定が有効になっていることを確認する
- ルートで
pnpm storybookを実行して、リポジトリの Storybook をウォッチモードで起動する - VSCode を再起動し、
.vscode/mcp.jsonファイルを開き、Storybook MCP が「Running」とマークされていることを確認する。そうでない場合は「Start」をクリックする - VSCode でチャットを開き、次のようなプロンプトを記述する:
Storybook MCP を使用して、すべてのボタンストーリーがどのように見えるかを表示して
- この最初のプロンプトの後、変更を加えるたびに Storybook が自動的に再起動します。完全に準備が整うのを待ってから、「ツールを再度実行して」とプロンプトできます。
また、MCPJam のインスペクター を使用して、ツール呼び出しをより低レベルで制御することもできます。
フォーマットとリント
# Format all files with Prettier
pnpm format
# Check formatting without changing files
pnpm format:check
# Lint code with oxlint
pnpm lint
# Lint with GitHub Actions format (for CI)
pnpm lint:ci
# Check package exports with publint
pnpm publint
🔍 品質チェック
モノレポには、CI で実行されるいくつかの品質チェックが含まれています。
# Run all checks (build, test, lint, format, typecheck, publint)
pnpm check
# Run checks in watch mode (experimental)
pnpm check:watch
# Type checking (uses tsc directly, not turbo)
pnpm typecheck
# Type checking with turbo (for individual packages)
pnpm turbo:typecheck
# Testing with turbo (for individual packages)
pnpm turbo:test
📝 コード規約
TypeScript とインポート
相対インポートでは常にファイル拡張子を含めてください。
// ✅ Correct
import { foo } from './bar.ts';
// ❌ Wrong
import { foo } from './bar';
- JSON インポートでは import attributes 構文を使用します。
import pkg from '../package.json' with { type: 'json' };
🚢 リリースプロセス
このプロジェクトはバージョン管理に Changesets を使用します。
# 1. Create a changeset describing your changes
pnpm changeset
PR を作成する際、変更がリリースをトリガーする必要がある場合は changeset を追加してください。
- パッチ: バグ修正、ドキュメント更新
- マイナー: 新機能、後方互換性のある変更
- メジャー: 破壊的変更
🤝 貢献
貢献を歓迎します!始める方法は次のとおりです。
- リポジトリをフォークし、フィーチャーブランチを作成する
- 上記のコード規約に従って変更を加える
- 内部 Storybook インスタンスを使用して変更をテストする
- 変更がリリースに値する場合は changeset を作成する
- 明確な説明とともにプルリクエストを送信する
送信前チェック
- コードがエラーなしでビルドされる (
pnpm build) - テストがパスする (
pnpm test:run) - コードがフォーマットされている (
pnpm format) - コードがリントされている (
pnpm lint) - 型チェックがパスする (
pnpm typecheck) - MCP インスペクターまたは内部 Storybook で変更をテスト済み
- 必要に応じて changeset が作成されている (
pnpm changeset)
ヘルプ
- アイデアと機能リクエスト: ディスカッションを開始
- バグレポート: Issue を作成
- 質問: GitHub ディスカッション で質問
📄 ライセンス
MIT - 詳細は LICENSE を参照
注記: このプロジェクトは実験的であり、活発に開発中です。AI エージェントを Storybook と統合する最適な方法を模索する中で、API とアーキテクチャは変更される可能性があります。