Connect AI tools to Pluma docs, component metadata, and migration guidance through the Pluma MCP server.
Model Context Protocol (MCP) server for accessing Pluma design system components and documentation.
To use this MCP server in Cursor, add the following configuration to your ~/.cursor/mcp.json:
Environment Variables:
GITHUB_TOKEN: Required for accessing private repositories (if applicable)NPM_CONFIG_USERCONFIG: Path to your .npmrc file for package registry authenticationTo use this MCP server in Claude Code, add the following to your ~/.claude.json:
Environment Variables:
GITHUB_TOKEN: Required for accessing private repositories (if applicable)NPM_CONFIG_USERCONFIG: Path to your .npmrc file for package registry authenticationThe report_gap tool reports that Pluma fell short of what an agent needed.
Its description tells the agent to call it the moment it finds no component,
variant or prop for what it is building, or hits a layout, styling,
accessibility, docs or API gap, before it writes a workaround.
The report goes to the handlers listed under gapReport in pluma.config.mjs
in the server's working directory, the same file and handlers
pluma-cli report-gap uses; see
pluma.config.mjs in the
@customerio/pluma-cli README for the file, the report format and the built-in
handlers. With no handler configured, the report is appended to
.pluma/gap-reports.jsonl at the root of the repository that holds file (the
nearest directory up from it that holds a .git), or of the server's working
directory without one, and the tool points the agent at the package's issue
tracker. Agents should pass file as an absolute path.
| Parameter | Description |
|---|---|
category | Required. One of missing_component, missing_variant, missing_prop, layout_gap, styling_gap, a11y_gap, api_friction, docs_gap, other. |
intention | Required. What the agent was trying to do, up to 2000 characters. |
detail | What it tried or built instead, up to 8000 characters. |
component | The kebab-case id of the Pluma component the gap is about, e.g. date-picker. |
file | The absolute path of the file being worked on, recorded relative to the repository root. |
source | ai (the default), human or automation. |
confirmPublic | Let handlers whose audience is public run. The agent should pass it only after the user agreed to share the report publicly. |
The tool returns the receipt: one delivery per handler and an overall status
of filed, partial, failed, routed_only or consent_required, derived as
the CLI README describes.
The server bundles the report format, config loader, handlers and delivery
from @customerio/pluma-cli/gap-report, so building it builds the CLI first.
Clone the repository and navigate to the MCP package:
Install dependencies:
Build the project:
Build the component manifest and component data:
Full build:
Quick development build:
Run in development mode:
Type checking:
The MCP Inspector is a great tool for testing your MCP server during development.
Build the server:
Run the inspector with your local build:
The inspector will open a web interface where you can: