Storybook MCP Server
resmiMembantu agen secara otomatis menulis dan menguji cerita untuk komponen UI Anda.
Dokumentasi
Storybook MCP - Panduan Kontributor
Selamat datang di monorepo Addon Storybook MCP! Proyek ini memungkinkan agen AI bekerja lebih efisien dengan Storybook dengan menyediakan server MCP (Model Context Protocol) yang mengekspos informasi komponen UI dan alur kerja pengembangan.
๐ฆ Paket
Monorepo ini berisi empat paket utama:
- @storybook/mcp - Pustaka MCP mandiri untuk menyajikan pengetahuan komponen Storybook (dapat digunakan secara independen)
- @storybook/addon-mcp - Addon Storybook yang menjalankan server MCP di dalam server pengembangan Storybook Anda, dan mencakup fungsionalitas @storybook/mcp dari Storybook lokal Anda
- @storybook/claude-code-plugin - Plugin Claude Code dengan keterampilan penyiapan Storybook dan konfigurasi MCP
- @storybook/codex-plugin - Plugin Codex dengan keterampilan penyiapan Storybook dan konfigurasi MCP
Setiap paket memiliki README sendiri dengan dokumentasi yang berorientasi pengguna. Dokumen ini ditujukan untuk kontributor yang ingin mengembangkan, menguji, atau berkontribusi pada paket-paket ini.
๐ Mulai Cepat
Menguji plugin Claude dan Codex dari GitHub
Penguji eksternal dapat memasang marketplace plugin langsung dari cabang
main repositori ini. Tidak diperlukan klon lokal.
Codex
codex plugin marketplace add storybookjs/mcp --ref main
codex plugin add storybook@storybook
Verifikasi marketplace dan plugin:
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
Verifikasi plugin dan server MCP:
claude plugin list --json
claude mcp list
Repositori sengaja menyimpan katalog marketplace di dua tempat. Katalog
root mendukung pemasangan GitHub dari storybookjs/mcp; katalog
lokal paket mendukung skrip pengembangan paket lokal. Keduanya harus tetap identik
kecuali untuk jalur sumber plugin relatif, dan validasi paket memeriksa
bahwa memang demikian.
Prasyarat
- Node.js 24+ - Proyek ini memerlukan Node.js 24 atau lebih tinggi (lihat
.nvmrc) - pnpm 10.19.0+ - Persyaratan manajer paket yang ketat (ditegakkan di
package.json)
# Use the correct Node version
nvm use
# Install pnpm if you don't have it
npm install -g [email protected]
Instalasi
# 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
Alur Kerja Pengembangan
# 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
Perintah Storybook memulai:
- Instance Storybook pengujian internal di
http://localhost:6006 - Addon dalam mode pantau, sehingga perubahan tercermin secara otomatis
- Server MCP tersedia di
http://localhost:6006/mcp
๐ ๏ธ Tugas Umum
Pengembangan
Perintah turbo watch build menjalankan semua paket dalam mode pantau, membangun ulang secara otomatis saat Anda membuat perubahan:
# 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
Membangun
# Build all packages
pnpm build
Pengujian
Monorepo menggunakan konfigurasi Vitest terpusat di tingkat root dengan proyek yang dikonfigurasi untuk setiap paket:
# 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
Men-debug Server MCP
Gunakan Inspektur MCP untuk men-debug dan menguji fungsionalitas server MCP:
# Launches the MCP inspector (requires Storybook to be running)
pnpm inspect
Ini menggunakan konfigurasi di .mcp.inspect.json untuk terhubung ke server MCP lokal Anda.
Atau, Anda juga dapat menggunakan perintah curl ini untuk memeriksa apakah semuanya berfungsi:
# 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": {}
}
}'
Men-debug dengan Storybook
Anda dapat memulai Storybook dengan:
pnpm storybook
Ini akan membangun semuanya dan memulai Storybook dengan addon-mcp, dan Anda kemudian dapat menghubungkan agen pengkodean Anda ke sana di http://localhost:6006/mcp (atau titik akhir addon yang Anda konfigurasi) dan mencobanya.
Bekerja dengan Aplikasi MCP
Untuk bekerja dengan dan men-debug aplikasi MCP yang dirender sebagai bagian dari alat pratinjau-cerita, Anda dapat:
- Gunakan build Insiders VSCode
- Pastikan pengaturan chat.mcp.apps.enabled diaktifkan
- Mulai Storybook repositori dalam mode pantau dengan menjalankan
pnpm storybookdi root - Mulai ulang VSCode dan, buka file
.vscode/mcp.jsondan pastikan Storybook MCP ditandai sebagai Berjalan, jika tidak klik Mulai. - Buka obrolan di VSCode dan tulis prompt seperti ini:
Tunjukkan bagaimana semua cerita tombol terlihat, menggunakan Storybook MCP
- Setelah prompt pertama ini, setiap kali Anda membuat perubahan, Storybook otomatis memulai ulang. Tunggu hingga benar-benar siap, lalu Anda dapat meminta "Jalankan alat lagi".
Anda juga dapat menggunakan inspektur dari MCPJam untuk memiliki kontrol tingkat rendah atas panggilan alat.
Pemformatan & Linting
# 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
๐ Pemeriksaan Kualitas
Monorepo mencakup beberapa pemeriksaan kualitas yang berjalan di 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
๐ Konvensi Kode
TypeScript & Impor
Selalu sertakan ekstensi file dalam impor relatif:
// โ
Correct
import { foo } from './bar.ts';
// โ Wrong
import { foo } from './bar';
- Impor JSON menggunakan sintaks atribut impor:
import pkg from '../package.json' with { type: 'json' };
๐ข Proses Rilis
Proyek ini menggunakan Changesets untuk manajemen versi:
# 1. Create a changeset describing your changes
pnpm changeset
Saat Anda membuat PR, tambahkan changeset jika perubahan Anda harus memicu rilis:
- Patch: Perbaikan bug, pembaruan dokumentasi
- Minor: Fitur baru, perubahan yang kompatibel mundur
- Major: Perubahan yang merusak
๐ค Berkontribusi
Kami menyambut kontribusi! Berikut cara memulai:
- Fork repositori dan buat cabang fitur
- Buat perubahan Anda mengikuti konvensi kode di atas
- Uji perubahan Anda menggunakan instance Storybook internal
- Buat changeset jika perubahan Anda memerlukan rilis
- Kirim pull request dengan deskripsi yang jelas
Sebelum Mengirim
- Kode dibangun tanpa kesalahan (
pnpm build) - Pengujian lulus (
pnpm test:run) - Kode diformat (
pnpm format) - Kode dilint (
pnpm lint) - Pemeriksaan tipe lulus (
pnpm typecheck) - Perubahan diuji dengan inspektur MCP atau Storybook internal
- Changeset dibuat jika perlu (
pnpm changeset)
Mendapatkan Bantuan
- Ide & Permintaan Fitur: Mulai diskusi
- Laporan Bug: Buka isu
- Pertanyaan: Tanyakan di Diskusi GitHub
๐ Lisensi
MIT - Lihat LICENSE untuk detail
Catatan: Proyek ini bersifat eksperimental dan dalam pengembangan aktif. API dan arsitektur dapat berubah seiring kami mengeksplorasi cara terbaik untuk mengintegrasikan agen AI dengan Storybook.