Skip to content
Merged
Show file tree
Hide file tree
Changes from 75 commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
691c12e
Start review
kasperpeulen Nov 12, 2025
96656c8
Fix
kasperpeulen Nov 12, 2025
fad2366
More comments
kasperpeulen Nov 12, 2025
99511ca
Fix config files and restructure
kasperpeulen Nov 13, 2025
4b9c00d
Merge remote-tracking branch 'origin/next' into kasper/review
kasperpeulen Nov 13, 2025
89e8cad
Resolve conflicts
kasperpeulen Nov 13, 2025
7e7bd1c
Fix github actions
kasperpeulen Nov 13, 2025
6654fa9
Fix coverage
kasperpeulen Nov 13, 2025
b13a87c
Fix type error
kasperpeulen Nov 13, 2025
61dca61
Fix
kasperpeulen Nov 13, 2025
f9ed2bd
Fix
kasperpeulen Nov 13, 2025
12bca9f
Dedupe
kasperpeulen Nov 13, 2025
b2e0905
Update packages/mcp/src/index.ts
kasperpeulen Nov 14, 2025
24e8e19
Update .github/workflows/check.yml
kasperpeulen Nov 14, 2025
31b0f43
Update .github/workflows/check.yml
kasperpeulen Nov 14, 2025
9e79960
Improve get/post handling
kasperpeulen Nov 14, 2025
b6aba7b
Merge remote-tracking branch 'origin/kasper/review' into kasper/review
kasperpeulen Nov 14, 2025
8a1c782
Dedupe vite
kasperpeulen Nov 14, 2025
f81a14a
lock file
kasperpeulen Nov 14, 2025
99a3c79
test perf of check-everything in CI
kasperpeulen Nov 14, 2025
b969454
rename
kasperpeulen Nov 14, 2025
29e09c8
rename
kasperpeulen Nov 14, 2025
e18e272
Add turbo caching
kasperpeulen Nov 14, 2025
105d223
check cache invalidation
kasperpeulen Nov 14, 2025
9ce6085
refactor
kasperpeulen Nov 14, 2025
7c1d0b2
refactor
kasperpeulen Nov 14, 2025
108ecdf
refactor
kasperpeulen Nov 14, 2025
af2b999
refactor
kasperpeulen Nov 14, 2025
9a97888
Use node version file
kasperpeulen Nov 14, 2025
e59e9f1
description
kasperpeulen Nov 14, 2025
ad16d8a
refactor
kasperpeulen Nov 14, 2025
28047fd
rollback
kasperpeulen Nov 14, 2025
824bdea
use turbo for artifacts
kasperpeulen Nov 14, 2025
fb3e5c3
install node
kasperpeulen Nov 14, 2025
8a8a0b0
optimize
kasperpeulen Nov 14, 2025
6984084
install offline for faster symlinking
kasperpeulen Nov 14, 2025
a6b2683
optimize
kasperpeulen Nov 14, 2025
32df889
Check ci
kasperpeulen Nov 14, 2025
a795cd6
Only upload test results on failure
kasperpeulen Nov 14, 2025
9ddf5a3
Check github reporter
kasperpeulen Nov 14, 2025
e5659a9
Fix command
kasperpeulen Nov 14, 2025
df8b23e
Fix test
kasperpeulen Nov 14, 2025
895c841
Remove check everything
kasperpeulen Nov 14, 2025
113b8d3
test corepack enable
kasperpeulen Nov 14, 2025
3be6885
test corepack enable
kasperpeulen Nov 14, 2025
c7e39a0
test corepack enable
kasperpeulen Nov 14, 2025
fd84e85
fix
kasperpeulen Nov 14, 2025
ca3a965
Check if this is faster
kasperpeulen Nov 14, 2025
6a755d8
Check if this is faster
kasperpeulen Nov 14, 2025
0bf549f
no cache
kasperpeulen Nov 14, 2025
2f9fae3
rollback
kasperpeulen Nov 14, 2025
bece1b2
Change nothing
kasperpeulen Nov 14, 2025
570b2a6
Fix prettier
kasperpeulen Nov 14, 2025
503c24f
Modify changeset for MCP server GET responses
kasperpeulen Nov 14, 2025
d53e363
Prettier
kasperpeulen Nov 14, 2025
766462e
use docker
kasperpeulen Nov 14, 2025
d647a91
debug
kasperpeulen Nov 14, 2025
c63f9ee
use node 24
kasperpeulen Nov 14, 2025
82eb804
Try own caching
kasperpeulen Nov 14, 2025
1009ad5
Prune it
kasperpeulen Nov 14, 2025
c11c4ec
Don't format pnpm lock
kasperpeulen Nov 14, 2025
f4dd004
Fix
kasperpeulen Nov 14, 2025
7fdccdf
again
kasperpeulen Nov 14, 2025
7f26a54
use composite
kasperpeulen Nov 14, 2025
8031a63
change
kasperpeulen Nov 14, 2025
f51ef45
Revert "change"
kasperpeulen Nov 14, 2025
2bef2b9
Revert "use composite"
kasperpeulen Nov 14, 2025
b5390ee
Revert "again"
kasperpeulen Nov 14, 2025
3aae7aa
Revert "Fix"
kasperpeulen Nov 14, 2025
c37520c
Revert "Don't format pnpm lock"
kasperpeulen Nov 14, 2025
2f1124d
Revert "Prune it"
kasperpeulen Nov 14, 2025
c243468
Revert "Try own caching"
kasperpeulen Nov 14, 2025
11fa125
Revert "use node 24"
kasperpeulen Nov 14, 2025
74296ba
Revert "debug"
kasperpeulen Nov 14, 2025
177ea6a
Revert "use docker"
kasperpeulen Nov 14, 2025
2127776
Address feedback
kasperpeulen Nov 17, 2025
889e682
Initial plan
Copilot Nov 17, 2025
e926395
Update README and Copilot instructions for script changes
Copilot Nov 17, 2025
e123532
Address feedback
kasperpeulen Nov 17, 2025
90dfdfb
Merge remote-tracking branch 'origin/next' into kasper/review
kasperpeulen Nov 17, 2025
0034279
Make it loose
kasperpeulen Nov 17, 2025
09dfed6
Watch storybook by default
kasperpeulen Nov 17, 2025
9a06f3a
Fix command
kasperpeulen Nov 17, 2025
c23cf72
Merge pull request #76 from storybookjs/copilot/sub-pr-70
kasperpeulen Nov 17, 2025
8e0dd1f
Fix
kasperpeulen Nov 17, 2025
ffde8c8
Add pnpm to ignore
kasperpeulen Nov 17, 2025
94bfa31
Fix dev command
kasperpeulen Nov 17, 2025
6b76bef
Cleanup
kasperpeulen Nov 17, 2025
c531ddc
Merge remote-tracking branch 'origin/next' into kasper/review
kasperpeulen Nov 18, 2025
b59aaae
get CI green
kasperpeulen Nov 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/sour-colts-retire.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@storybook/addon-mcp': patch
---

Handle GET responses in the MCP server
27 changes: 18 additions & 9 deletions .github/actions/setup-node-and-install/action.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
name: 'Setup Node.js and Dependencies'
description: 'Sets up Node.js, caches and installs dependencies'
description: 'Sets up Node.js, caches, installs dependencies and turbo cache'

inputs:
install-offline:
description: 'Install offline for speed?'
required: false
default: 'false'

runs:
using: 'composite'
steps:
- name: Setup Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version-file: '.nvmrc'

- name: Install pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0

- name: Setup Node.js
- name: Use Node.js 24
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: 24
cache: 'pnpm'
cache: pnpm

- name: Cache for Turbo
uses: rharkor/[email protected]

- name: Install dependencies
if: ${{ inputs.install-offline != 'true' }}
shell: bash
run: pnpm install --frozen-lockfile --prefer-offline --ignore-scripts

- name: Install dependencies
if: ${{ inputs.install-offline == 'true' }}
shell: bash
run: pnpm install --frozen-lockfile --offline --ignore-scripts
140 changes: 27 additions & 113 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ permissions:
id-token: write # used to upload artifacts to codecov

jobs:
build-mcp:
name: Build @storybook/mcp
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -24,22 +24,7 @@ jobs:
uses: ./.github/actions/setup-node-and-install

- name: Build
run: pnpm build --env-mode=loose --filter @storybook/mcp

build-addon-mcp:
name: Build @storybook/addon-mcp
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 2 # see https://docs.codecov.com/docs/environment-specific-requirements#github-actions

- name: Setup Node.js and Install Dependencies
uses: ./.github/actions/setup-node-and-install

- name: Build
run: pnpm build --env-mode=loose --filter @storybook/addon-mcp
run: pnpm turbo run build

build-storybook:
name: Build internal Storybook
Expand All @@ -52,70 +37,42 @@ jobs:
uses: ./.github/actions/setup-node-and-install

- name: Build
run: pnpm build-storybook
run: pnpm turbo run build-storybook

test-mcp:
name: Test @storybook/mcp
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 2 # see https://docs.codecov.com/docs/environment-specific-requirements#github-actions

- name: Setup Node.js and Install Dependencies
uses: ./.github/actions/setup-node-and-install

- name: Run tests with coverage
run: pnpm --filter @storybook/mcp test run --coverage --reporter=default --reporter=junit --outputFile=test-report.junit.xml
run: pnpm turbo run test:ci

- name: Upload test and coverage artifact
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
if: always()
- name: Upload coverage to Codecov
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
name: test-mcp
path: |
packages/mcp/coverage/
packages/mcp/test-report.junit.xml

test-addon-mcp:
name: Test @storybook/addon-mcp
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

- name: Setup Node.js and Install Dependencies
uses: ./.github/actions/setup-node-and-install

- name: Build @storybook/mcp (dependency)
run: pnpm build --filter @storybook/mcp

- name: Run tests with coverage
run: pnpm --filter @storybook/addon-mcp test run --coverage --reporter=default --reporter=junit --outputFile=test-report.junit.xml
use_oidc: true
fail_ci_if_error: true
files: |
coverage/lcov.info

- name: Upload test and coverage artifact
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
- name: Upload test results to Codecov
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
if: always()
with:
name: test-addon-mcp
path: |
packages/addon-mcp/coverage/
packages/addon-mcp/test-report.junit.xml

typecheck-mcp:
name: Type check @storybook/mcp
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

- name: Setup Node.js and Install Dependencies
uses: ./.github/actions/setup-node-and-install

- name: Run type checking
run: pnpm --filter @storybook/mcp typecheck
use_oidc: true
fail_ci_if_error: true
files: |
test-report.junit.xml

typecheck-addon-mcp:
name: Type check @storybook/addon-mcp
typecheck:
name: Type check
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -124,11 +81,8 @@ jobs:
- name: Setup Node.js and Install Dependencies
uses: ./.github/actions/setup-node-and-install

- name: Build @storybook/mcp (dependency)
run: pnpm build --filter @storybook/mcp

- name: Run type checking
run: pnpm --filter @storybook/addon-mcp typecheck
run: pnpm turbo run typecheck

publint:
name: Publint
Expand All @@ -141,7 +95,7 @@ jobs:
uses: ./.github/actions/setup-node-and-install

- name: Run linting
run: pnpm publint
run: pnpm turbo run publint

lint:
name: Lint
Expand All @@ -154,7 +108,7 @@ jobs:
uses: ./.github/actions/setup-node-and-install

- name: Run linting
run: pnpm lint
run: pnpm turbo run lint:ci

format-check:
name: Check formatting
Expand All @@ -167,44 +121,4 @@ jobs:
uses: ./.github/actions/setup-node-and-install

- name: Check formatting
run: pnpm format --check

collect-coverage:
name: Collect coverage and test results
runs-on: ubuntu-latest
needs: [test-mcp, test-addon-mcp]
if: always()
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 2 # see https://docs.codecov.com/docs/environment-specific-requirements#github-actions

- name: Download @storybook/mcp coverage
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
with:
name: test-mcp
path: packages/mcp/

- name: Download @storybook/addon-mcp coverage
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
with:
name: test-addon-mcp
path: packages/addon-mcp/

- name: Upload coverage to Codecov
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
use_oidc: true
fail_ci_if_error: true
files: |
packages/mcp/coverage/lcov.info
packages/addon-mcp/coverage/lcov.info
- name: Upload test results to Codecov
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
with:
use_oidc: true
fail_ci_if_error: true
files: |
packages/mcp/test-report.junit.xml
packages/addon-mcp/test-report.junit.xml
run: pnpm turbo run format:check
7 changes: 4 additions & 3 deletions apps/internal-storybook/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,18 @@
"scripts": {
"build-storybook": "storybook build",
"storybook": "storybook dev --port 6006 --loglevel debug",
"typecheck": "tsc --noEmit"
"typecheck": "tsc"
},
"devDependencies": {
"@storybook/addon-docs": "catalog:",
"@storybook/addon-mcp": "workspace:*",
"@storybook/react-vite": "catalog:",
"@types/react": "^18.2.65",
"@types/react-dom": "^18.2.21",
"@vitejs/plugin-react": "^4.7.0",
"@vitejs/plugin-react": "^5.1.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"storybook": "catalog:"
"storybook": "catalog:",
"vite": "catalog:"
}
}
20 changes: 3 additions & 17 deletions apps/internal-storybook/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,7 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"esModuleInterop": true,
"skipLibCheck": true,
"target": "es2023", // Node 20 according to https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping#node-20
"allowJs": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"moduleResolution": "bundler",
"module": "esnext",
"jsx": "react",
"isolatedModules": true,
"verbatimModuleSyntax": true,
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"noImplicitAny": true,
"lib": ["esnext", "dom", "dom.iterable"]
"jsx": "react"
},
"include": ["stories/**/*"]
"include": ["stories/**/*", "**/*.ts"]
}
1 change: 0 additions & 1 deletion apps/internal-storybook/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
});
29 changes: 21 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,41 @@
"changeset": "changeset",
"dev": "turbo run dev",
"format": "prettier --write .",
"format:check": "prettier --check .",
"inspect": "pnpm run --filter @storybook/addon-mcp inspect",
"lint": "oxlint --type-aware",
"check-everything": "pnpm run format --check && pnpm run lint && pnpm run publint && pnpm run build && pnpm run build-storybook && pnpm run typecheck && pnpm run test -- run",
"lint:ci": "oxlint --format github --type-aware",
"check": "turbo run build build-storybook format lint publint typecheck test --continue",
"check:watch": "turbo watch build build-storybook format lint publint typecheck test --continue --experimental-write-cache",
"publint": "turbo run publint",
"release": "turbo run build && pnpm changeset publish",
"storybook": "turbo run storybook",
"test": "turbo run test",
"typecheck": "turbo run typecheck"
"test": "vitest run",
"test:ci": "vitest run --coverage --reporter=default --reporter=github-actions --reporter=junit --outputFile=test-report.junit.xml",
"typecheck": "tsc",
"turbo": "turbo",
"turbo:test": "turbo run test",
"turbo:typecheck": "turbo run typecheck"
},
"devDependencies": {
"@changesets/changelog-github": "^0.5.1",
"@changesets/cli": "^2.29.6",
"@codecov/rollup-plugin": "^1.9.1",
"@codecov/vite-plugin": "^1.9.1",
"@modelcontextprotocol/inspector": "^0.16.5",
"@modelcontextprotocol/inspector": "^0.17.2",
"@storybook/addon-mcp": "workspace:",
"@storybook/mcp": "workspace:",
"@types/node": "20.19.0",
"@vitest/coverage-v8": "^4.0.8",
"oxlint": "^1.25.0",
"oxlint-tsgolint": "^0.4.0",
"pkg-pr-new": "^0.0.57",
"prettier": "^3.6.2",
"tsdown": "catalog:",
"turbo": "^2.3.5",
"vitest": "catalog:"
"publint": "^0.3.15",
"tsdown": "^0.16.4",
"turbo": "^2.6.1",
"vite-tsconfig-paths": "^5.1.4",
"vite": "catalog:",
"vitest": "^4.0.8"
},
"packageManager": "[email protected]+sha512.c9fc7236e92adf5c8af42fd5bf1612df99c2ceb62f27047032f4720b33f8eacdde311865e91c411f2774f618d82f320808ecb51718bfa82c060c4ba7c76a32b8"
}
13 changes: 3 additions & 10 deletions packages/addon-mcp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@
],
"scripts": {
"prebuild": "node -e \"fs.rmSync('./dist', { recursive: true, force: true })\"",
"build": "tsdown --config ../../tsdown.config.ts",
"build": "tsdown",
"dev": "pnpm run build -- --watch",
"inspect": "mcp-inspector --config ../../.mcp.inspect.json --server storybook-addon-mcp",
"publint": "publint",
"test": "vitest",
"typecheck": "tsc --noEmit"
"typecheck": "tsc"
},
"dependencies": {
"@storybook/mcp": "workspace:*",
Expand All @@ -41,15 +41,8 @@
"valibot": "catalog:"
},
"devDependencies": {
"@types/node": "catalog:",
"@vitest/coverage-v8": "catalog:",
"publint": "catalog:",
"storybook": "catalog:",
"ts-dedent": "^2.2.0",
"tsdown": "catalog:",
"typescript": "catalog:",
"vite": "^7.0.5",
"vitest": "catalog:"
"ts-dedent": "^2.2.0"
},
"peerDependencies": {
"storybook": "^9.1.16 || ^10.0.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0"
Expand Down
File renamed without changes.
Loading
Loading