Search and install 112 production React, TypeScript and Tailwind CSS UI components from Layro.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
'Bearer <token>' with the CLI token from layropro.com/account. A free account's token unlocks the free components; lifetime access unlocks Pro. Search and component details work without it.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Whether the caller can take a component or template, and why: free, subscriber, lifetime, purchased or unauthorized.
A component or template slug.
Whether the caller can take a component or template, and why: free, subscriber, lifetime, purchased or unauthorized.
| Argument | Type | Description |
|---|---|---|
| slug* | string | A component or template slug. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"description": "A component or template slug."
}
}
}Everything about one component except its source: when to use it, props, variants, npm dependencies, the files it installs, a typechecked usage example with real props, how it sizes and scrolls (layout), the components it pairs with and the recipes it appears in.
| Argument | Type | Description |
|---|---|---|
| slug* | string | A component slug, like "data-table". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"description": "A component slug, like \"data-table\"."
}
}
}The complete source for one component and every file it imports, ready to save at the paths given. Free components need a free Layro account's token; Pro components need the caller's Layro lifetime access. Install with the shadcn CLI instead when you can run commands (see get_installation).
| Argument | Type | Description |
|---|---|---|
| slug* | string | A component slug, like "data-table". |
| include_dependencies | boolean | Also return every file it imports (the theme, foundations, sibling components). Default true. Set false only if those are already in the project. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"description": "A component slug, like \"data-table\"."
},
"include_dependencies": {
"type": "boolean",
"description": "Also return every file it imports (the theme, foundations, sibling components). Default true. Set false only if those are already in the project."
}
}
}Installation for one or more components: the one-time @layro registry setup for components.json, the shadcn CLI command (always @layro/<slug>, never a bare URL), a ready-to-run agent command with a 15-minute install token when this connection carries a CLI token, the npm packages still missing (pass installed_packages from package.json), the files and where they go, and the theme setup.
| Argument | Type | Description |
|---|---|---|
| mode | string | Default "cli": the shadcn CLI install, packages and files. "manual" or "both" adds copy-by-hand steps, for when you cannot run the CLI. |
| slugs* | array | One or more component slugs. |
| package_manager | string | Default npm. |
| installed_packages | array | npm packages the project already has (from package.json), so they are not suggested again. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slugs"
],
"properties": {
"mode": {
"enum": [
"cli",
"manual",
"both"
],
"type": "string",
"description": "Default \"cli\": the shadcn CLI install, packages and files. \"manual\" or \"both\" adds copy-by-hand steps, for when you cannot run the CLI."
},
"slugs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 10,
"minItems": 1,
"description": "One or more component slugs."
},
"package_manager": {
"enum": [
"npm",
"pnpm",
"yarn",
"bun"
],
"type": "string",
"description": "Default npm."
},
"installed_packages": {
"type": "array",
"items": {
"type": "string",
"maxLength": 214
},
"maxItems": 300,
"description": "npm packages the project already has (from package.json), so they are not suggested again."
}
}
}Complete, runnable files that combine several Layro components the way they fit together: an AI chat app shell (Sidebar + Conversation History + AI Chat, with a phone drawer), a dashboard app and a billing page. Without a slug, lists the recipes. Every recipe typechecks against the components.
| Argument | Type | Description |
|---|---|---|
| slug | string | A recipe slug, like "ai-chat-app". Leave out to list the recipes. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"description": "A recipe slug, like \"ai-chat-app\". Leave out to list the recipes."
}
}
}One template's details and whether the caller may download it. Never returns the template's files.
| Argument | Type | Description |
|---|---|---|
| slug* | string | A template slug, like "settle". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"description": "A template slug, like \"settle\"."
}
}
}The theme's colour tokens (light and dark values, and what each one colours), how to restyle Layro to a brand from your own CSS without editing components, the type scale, and the cn() config for it.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}The categories in the Layro catalogue with the components in each, plus the library contract: stack, theme, access, install path, and the accessibility and responsive behaviour every component has.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Find Layro React + Tailwind components by what they do. Returns the best matches first with slug, category, access (free or pro) and version. Start here, then call get_component for details.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many results. Default 8. |
| query* | string | What you need, in plain words: "animated dashboard card", "date range picker". |
| category | string | Only this category (name or slug from list_categories). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many results. Default 8."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "What you need, in plain words: \"animated dashboard card\", \"date range picker\"."
},
"category": {
"type": "string",
"maxLength": 64,
"description": "Only this category (name or slug from list_categories)."
}
}
}Find complete Layro React / Next.js templates: what each is, its stack, a live preview and how it is licensed.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | What the template is for. Leave out to list all templates. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"description": "What the template is for. Leave out to list all templates."
}
}
}