Liro MCP
Liro MCP is a remote Model Context Protocol server operated by Liro that allows AI coding agents to search, inspect, and install production-ready React UI components, screens, and templates from the Liro library. It provides tools for searching components, retrieving props and code, and generating installation commands via the shadcn CLI, enabling agents to build UIs using pre-verified, state-complete components rather than generating them from scratch.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://liro.dev/api/mcpWhat its tools do
10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to liro.dev ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for specific UI components like billing plans or chat windows
- Retrieve component props, variants, and source code
- Generate shadcn installation commands for selected components
- Get recipes for full screens like code editors or dashboards
Source and maintenance
Protocol and capabilities
- Server
- liro 1.4.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 10 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
search_components — Search Liro components
Find Liro 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.
{
"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)."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_component — Get a Liro component
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.
{
"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\"."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_component_code — Get a Liro component's code
The complete source for one component and every file it imports, ready to save at the paths given. Free components need a free Liro account's token; Pro components need the caller's Liro lifetime access. Install with the shadcn CLI instead when you can run commands (see get_installation).
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_installation — Install Liro components
Installation for one or more components: the one-time @liro registry setup for components.json, the shadcn CLI command (always @liro/<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.
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_categories — List Liro categories
The categories in the Liro catalogue with the components in each, plus the library contract: stack, theme, access, install path, and the accessibility and responsive behaviour every component has.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_templates — Search Liro templates
Find complete Liro React / Next.js templates: what each is, its stack, a live preview and how it is licensed.
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_template — Get a Liro template
One template's details and whether the caller may download it. Never returns the template's files.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"description": "A template slug, like \"avero\"."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_access — Check Liro access
Whether the caller can take a component or template, and why: free, subscriber, lifetime, purchased or unauthorized.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"description": "A component or template slug."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_theme — Get the Liro theme
The theme's colour tokens (light and dark values, and what each one colours), how to restyle Liro to a brand from your own CSS without editing components, the type scale, and the cn() config for it.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_recipe — Get a Liro recipe
Complete, runnable files that combine several Liro 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.
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 652 ms
- 95th percentile latency
- 652 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 652 ms · metadata changed · 10 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http liro-mcp https://liro.dev/api/mcpCodex
codex mcp add liro-mcp --url https://liro.dev/api/mcpCursor
{
"mcpServers": {
"liro-mcp": {
"url": "https://liro.dev/api/mcp"
}
}
}Cline
{
"mcpServers": {
"liro-mcp": {
"type": "streamableHttp",
"url": "https://liro.dev/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"liro-mcp": {
"type": "http",
"url": "https://liro.dev/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http liro-mcp https://liro.dev/api/mcpClaude Desktop
https://liro.dev/api/mcpWindsurf
{
"mcpServers": {
"liro-mcp": {
"serverUrl": "https://liro.dev/api/mcp"
}
}
}Let your agent find its tools
Find servers like Liro MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other developer tools servers
Do you run Liro MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.