- Created `openspec-ff-change` skill for fast-forward artifact creation. - Introduced `openspec-new-change` skill for structured change creation. - Developed `openspec-onboard` skill for guided onboarding through OpenSpec workflow. - Added `openspec-sync-specs` skill for syncing delta specs to main specs. - Implemented `openspec-verify-change` skill for verifying implementation against change artifacts. - Updated `.gitignore` to exclude OpenSpec generated files. - Added `skills-lock.json` to manage skill dependencies.
95 lines
2.3 KiB
Markdown
95 lines
2.3 KiB
Markdown
# shadcn MCP Server
|
|
|
|
The CLI includes an MCP server that lets AI assistants search, browse, view, and install components from registries.
|
|
|
|
---
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
shadcn mcp # start the MCP server (stdio)
|
|
shadcn mcp init # write config for your editor
|
|
```
|
|
|
|
Editor config files:
|
|
|
|
| Editor | Config file |
|
|
|--------|------------|
|
|
| Claude Code | `.mcp.json` |
|
|
| Cursor | `.cursor/mcp.json` |
|
|
| VS Code | `.vscode/mcp.json` |
|
|
| OpenCode | `opencode.json` |
|
|
| Codex | `~/.codex/config.toml` (manual) |
|
|
|
|
---
|
|
|
|
## Tools
|
|
|
|
> **Tip:** MCP tools handle registry operations (search, view, install). For project configuration (aliases, framework, Tailwind version), use `npx shadcn@latest info` — there is no MCP equivalent.
|
|
|
|
### `shadcn:get_project_registries`
|
|
|
|
Returns registry names from `components.json`. Errors if no `components.json` exists.
|
|
|
|
**Input:** none
|
|
|
|
### `shadcn:list_items_in_registries`
|
|
|
|
Lists all items from one or more registries.
|
|
|
|
**Input:** `registries` (string[]), `limit` (number, optional), `offset` (number, optional)
|
|
|
|
### `shadcn:search_items_in_registries`
|
|
|
|
Fuzzy search across registries.
|
|
|
|
**Input:** `registries` (string[]), `query` (string), `limit` (number, optional), `offset` (number, optional)
|
|
|
|
### `shadcn:view_items_in_registries`
|
|
|
|
View item details including full file contents.
|
|
|
|
**Input:** `items` (string[]) — e.g. `["@shadcn/button", "@shadcn/card"]`
|
|
|
|
### `shadcn:get_item_examples_from_registries`
|
|
|
|
Find usage examples and demos with source code.
|
|
|
|
**Input:** `registries` (string[]), `query` (string) — e.g. `"accordion-demo"`, `"button example"`
|
|
|
|
### `shadcn:get_add_command_for_items`
|
|
|
|
Returns the CLI install command.
|
|
|
|
**Input:** `items` (string[]) — e.g. `["@shadcn/button"]`
|
|
|
|
### `shadcn:get_audit_checklist`
|
|
|
|
Returns a checklist for verifying components (imports, deps, lint, TypeScript).
|
|
|
|
**Input:** none
|
|
|
|
---
|
|
|
|
## Configuring Registries
|
|
|
|
Registries are set in `components.json`. The `@shadcn` registry is always built-in.
|
|
|
|
```json
|
|
{
|
|
"registries": {
|
|
"@acme": "https://acme.com/r/{name}.json",
|
|
"@private": {
|
|
"url": "https://private.com/r/{name}.json",
|
|
"headers": { "Authorization": "Bearer ${MY_TOKEN}" }
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
- Names must start with `@`.
|
|
- URLs must contain `{name}`.
|
|
- `${VAR}` references are resolved from environment variables.
|
|
|
|
Community registry index: `https://ui.shadcn.com/r/registries.json`
|