Skip to main content
Glama
README.md
# Paragon MCP Server

MCP server for the [Open edX Paragon](https://paragon-openedx.netlify.app/) design system (v23.x). Gives AI assistants structured access to component documentation — props, events, code examples, and CSS design tokens — so they can write Paragon-based UI code without guessing.

## Installation

The quickest way to use this server is via npx (no clone needed):

```bash
claude mcp add paragon -- npx -y @romkask/paragon-mcp-server
```

Or add it manually to your MCP config (`~/.claude/settings.json` or project `.claude/settings.local.json`):

```json
{
  "mcpServers": {
    "paragon": {
      "command": "npx",
      "args": ["-y", "@romkask/paragon-mcp-server"]
    }
  }
}
```

## Available Tools

| Tool | Description |
|------|-------------|
| `list_components` | List all 63 Paragon components with categories, status, and counts |
| `get_component` | Get full details for a component or subcomponent (description, props, events, subcomponents) |
| `get_component_props` | Get all props with types and descriptions |
| `get_component_events` | Get all callback events (onClose, onToggle, etc.) |
| `list_examples` | List available code examples for a component |
| `get_example` | Get the full JSX code for a specific example |
| `get_components_variables` | Get CSS custom properties / design tokens |

## Subcomponent Lookup

All 73 subcomponents (e.g., `CardGrid`, `AlertHeading`, `FormControl`, `TableRow`) are automatically resolved to their parent component. Querying `get_component("CardGrid")` returns the full `Card` component info with a note indicating the subcomponent match.

## Data Coverage

- **63 components** (Button, Alert, Card, DataTable, Form, Modal, etc.)
- **73 subcomponents** with automatic parent resolution
- **410 props** with types and descriptions
- **69 events/callbacks**
- **295 live code examples**
- **443 CSS design token variables**

## Development

```bash
git clone https://github.com/RomkaSk/paragon-mcp-server.git
cd paragon-mcp-server
npm install
npm run build     # generates data + bundles with tsup
npm start         # run server
npm run dev       # dev mode with tsx
npm test          # run tests (348 tests covering all components & subcomponents)
```

## License

MIT

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation2/5

get_component aggregates props, events, examples, and CSS variables, making the separate tools like get_component_props and get_component_events redundant and ambiguous. An agent may struggle to decide whether to use the general or specific tool, though the list/detail distinction for examples is clear.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern using get_ and list_. The only inconsistency is get_components_variables using plural 'components' while others use singular 'component'. Overall, the naming is predictable and readable.

Tool Count5/5

Seven tools is well within the ideal range for a component documentation server. Each tool addresses a legitimate aspect of component exploration, and the count feels appropriately scoped without being bloated.

Completeness5/5

The server provides a complete surface for exploring Paragon components: listing components, getting detailed info, and accessing props, events, CSS variables, and examples. No obvious gaps exist for the intended purpose of discovering component APIs.