Skip to content

reforma-ai/shadcn

unversioned · f68298a607f9MIT

Find shadcn/ui components and examples in the registries this project already uses

MCP servers

Declared configuration, as published in mcp.json. The directory shows indexed content; it never connects to or executes these servers.

shadcn
{
  "command": "bunx",
  "args": [
    "shadcn",
    "mcp"
  ],
  "description": "Search, view, and example-code items from registries in components.json. Add still goes through the CLI.",
  "tools": {
    "get_project_registries": {
      "title": "Get project registries",
      "description": "Registry names from components.json. Errors if that file is missing.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    "list_items_in_registries": {
      "title": "List registry items",
      "description": "List items from registries in components.json.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "registries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Registry names (e.g. ['@shadcn', '@coss']). Omit to list every configured registry."
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by type shorthand (ui, block, component, …)."
          },
          "limit": {
            "type": "number",
            "description": "Max items (default 100; 0 = no limit)."
          },
          "offset": {
            "type": "number",
            "description": "Items to skip."
          }
        }
      }
    },
    "search_items_in_registries": {
      "title": "Search registry items",
      "description": "Fuzzy search names and descriptions. Then get_item_examples_from_registries for usage.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Fuzzy match against item names and descriptions."
          },
          "registries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Registry names (e.g. ['@shadcn']). Omit to search every configured registry."
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by type shorthand (ui, block, component, …)."
          },
          "limit": {
            "type": "number",
            "description": "Max items (default 100; 0 = no limit)."
          },
          "offset": {
            "type": "number",
            "description": "Items to skip."
          }
        },
        "required": [
          "query"
        ]
      }
    },
    "view_items_in_registries": {
      "title": "View registry items",
      "description": "Name, description, type, and file contents. For demos use get_item_examples_from_registries.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Namespaced names (e.g. ['@shadcn/button', '@coss/alert'])."
          }
        },
        "required": [
          "items"
        ]
      }
    },
    "get_item_examples_from_registries": {
      "title": "Get item examples",
      "description": "Demo code and dependencies. Query like 'button-demo' or 'card example'.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Example search, e.g. 'accordion-demo', 'button example'."
          },
          "registries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Registry names. Omit to search every configured registry."
          }
        },
        "required": [
          "query"
        ]
      }
    },
    "get_add_command_for_items": {
      "title": "Get add command",
      "description": "Returns the shadcn add CLI string. Does not install — run that command next.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Namespaced names (e.g. ['@shadcn/button'])."
          }
        },
        "required": [
          "items"
        ]
      }
    },
    "get_audit_checklist": {
      "title": "Get audit checklist",
      "description": "Post-add checklist (imports, deps, lint, types).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
  }
}

What this package declares

The files a client reads when it loads this plugin, exactly as this revision carries them.

{
    "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
    "name": "shadcn",
    "description": "Find shadcn/ui components and examples in the registries this project already uses",
    "author": {
        "name": "shadcn",
        "url": "https://ui.shadcn.com"
    },
    "homepage": "https://ui.shadcn.com",
    "repository": "https://github.com/shadcn-ui/ui",
    "license": "MIT",
    "extensions": {
        "reforma": {
            "default": true,
            "logo": "assets/logo.svg",
            "logoSmall": "assets/logo-small.svg",
            "interface": {
                "displayName": "shadcn",
                "brandColor": "#000000",
                "logoSmall": "assets/logo-small.svg"
            },
            "agent": {
                "installApproval": false,
                "mentions": [
                    "ui.shadcn.com"
                ]
            }
        }
    }
}

Client extensions

Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.

  • reforma