Skip to content
PluginStats

@storybook/mcp weekly downloads statistics

By storybook (2 listings) · npm · MCP servers

MCP server that serves knowledge about your components based on your Storybook stories and documentation

View on npm Fresh · Oct 18, 2026

@storybook/mcp has 1,130,743 recorded weekly downloads on npm, a decrease of 45.0% over the past 30 days, ranking #194 of 2,322 tracked listings.

Weekly downloads
1,130,743
Official API · Oct 18, 2026
7-day growth
-52.0%
-1.2M weekly downloads
30-day growth
-45.0%
-924.8K weekly downloads
90-day growth
-39.5%
-739.4K weekly downloads
Rank
#194
Among tracked npm listings

About @storybook/mcp

Storybook MCP

Reusable MCP package for Storybook component and docs knowledge.

Learn more about Storybook at storybook.js.org.

Self-hosting @storybook/mcp

This package is a library: the tarball ships one module and no executable. It declares no bin, starts no process, and has no CLI. You register its tools on an MCP server you own, using the snippets below. If you want a running Storybook MCP server with no code at all, use the dev server instead — storybook dev serves one at /mcp through @storybook/addon-mcp.

Prerequisites
  • Node.js 20+
  • A manifests source containing:
    • components.json (required)
    • docs.json (optional)
Example implementation

The Storybook repository has a local HTTP server built on this package, serve.ts, that loads manifests from a directory or URL. It is a development harness and is not part of the published package.

The snippets below cover the common self-hosting patterns.

Minimal implementation
import { createStorybookMcpHandler } from '@storybook/mcp';

const storybookMcpHandler = await createStorybookMcpHandler();

export async function handleRequest(request: Request): Promise<Response> {
	if (new URL(request.url).pathname === '/mcp') {
		return storybookMcpHandler(request);
	}

	return new Response('Not found', { status: 404 });
}
With custom manifest source

Use manifestProvider when your manifests are not available from the same origin/path layout:

const storybookMcpHandler = await createStorybookMcpHandler({
	manifestProvider: async (_request, path) => {
		return asyncReadManifestFromSomewhere(path);
	},
});
API reference
createStorybookMcpHandler

Type:

(options?: StorybookMcpHandlerOptions) => Promise<Handler>;

type Handler = (req: Request, context?: StorybookContext) => Promise<Response>;

Creates and configures an MCP HTTP handler with all built-in docs tools registered.

Parameters
options

Type: StorybookMcpHandlerOptions

Default: {}

Server-level configuration. The handler uses this at creation time and as a fallback for per-request context.

Returns

Type: Promise<Handler>

A fetch-compatible request handler for your /mcp endpoint.

Behavior

Note: onSessionInitialize can only be set at handler creation time (in options).

Example
import { createStorybookMcpHandler } from '@storybook/mcp';

const mcp = await createStorybookMcpHandler({
	manifestProvider: async (_request, path) => {
		return await fetchManifest(path);
	},
});

export async function handleRequest(request: Request) {
	if (new URL(request.url).pathname !== '/mcp') {
		return new Response('Not found', { status: 404 });
	}

	return mcp(request);
}
Handler options and request context

@storybook/mcp uses the same core fields in two places:

  • Handler creation (createStorybookMcpHandler(options))
  • Per-request override (handler(request, context))

Type:

type StorybookContext = {
	request?: Request;
	manifestProvider?: (
		request: Request | undefined,
		path: string,
		source?: Source,
	) => Promise<string>;
	sources?: Source[];
	onListAllDocumentation?: (params: {
		context: StorybookContext;
		manifests: AllManifests;
		resultText: string;
		sources?: SourceManifests[];
	}) => void | Promise<void>;
	onGetDocumentation?: (
		params:
			| {
					context: StorybookContext;
					input: { id: string; storybookId?: string };
					foundDocumentation: ComponentManifest | Doc;
					resultText: string;
			  }
			| {
					context: StorybookContext;
					input: { id: string; storybookId?: string };
			  },
	) => void | Promise<void>;
};

type StorybookMcpHandlerOptions = StorybookContext & {
	onSessionInitialize?: (initializeRequestParams: InitializeRequestParams) => void | Promise<void>;
};

[!NOTE] onSessionInitialize is only used when provided at handler creation time (createStorybookMcpHandler(options)). It is ignored in per-request context.

InitializeRequestParams is the tmcp initialize payload type, and its exact structure may change in patch versions. Prefer treating it as an opaque protocol payload unless you need specific fields.

manifestProvider

Type:

(request: Request | undefined, path: string, source?: Source) => Promise<string>;

Primary extension point for production setups.

Use this when manifests are not available at the default same-origin paths. Your function returns the raw JSON string for each requested manifest path.

For a real customization example (switching between HTTP and filesystem-backed manifest loading), see the Example implementation section above.

Manifest paths requested by built-in tools:

  • ./manifests/components.json (required)
  • ./manifests/docs.json (optional)
request

Type: Request

The incoming HTTP request for the current call, as a Web Fetch API (WHATWG) Request.…

Description from the npm listing.

  • mcp
  • storybook

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@storybook/mcp weekly downloads on npm, last 90 days: 1,130,743 weekly downloads as of Oct 18, 2026, -39.5% over 90 days.@storybook/mcpWeekly downloads on npm · Last 90 days1,130,743downloads / week-39.5% over 90 days1M1.5M2M2.5M3MJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@storybook/mcp weekly downloads on npm, last 90 days: 1,130,743 weekly downloads as of Oct 18, 2026, -39.5% over 90 days.

7/30/90-day growth

@storybook/mcp weekly downloads growth on npm: -52.0% over 7 days, -45.0% over 30 days, -39.5% over 90 days.@storybook/mcpWeekly downloads growth on npm1,130,743downloads / week now7-day growth-1,222,934 weekly downlo…-52.0%30-day growth-924,829 weekly downloads-45.0%90-day growth-739,377 weekly downloads-39.5%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@storybook/mcp weekly downloads growth on npm: -52.0% over 7 days, -45.0% over 30 days, -39.5% over 90 days.

Ranking history

@storybook/mcp npm ranking history: currently #194 (by weekly downloads).@storybook/mcpnpm ranking · by weekly downloads · Last 90 days#194current rank#40#60#80#100#120#140#160#180#200Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 17, 2026 – Oct 20, 2026 · 4 observations · Updated Oct 18, 2026pluginstats.com
@storybook/mcp npm ranking history: currently #194 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,162 shown · page 10, #14 (overall #194)
All npm: every listing in weekly downloads order

Listing placement

MCP servers277 listings · 14 pages · page 1, #13 (overall #13)
MCP servers: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (544)
Recent weekly downloads observations for @storybook/mcp
Date (UTC)Weekly downloadsChange vs. previous
1,130,743+90.8K
1,039,909-202.3K
1,242,193-29.6K
1,271,766-524.5K
1,796,285-528.1K
2,324,3600
2,324,360-29.3K
2,353,677+42.1K
2,311,552+57.4K
2,254,196+56.1K
2,198,102+37.6K
2,160,546+41.4K
2,119,110-530.1K
2,649,208—

Similar npm MCP servers plugins

All 20 @storybook/mcp alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@storybook/mcp. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.