Delivery / Docs
Install & integrate
Production pack commands, repo-local MCP wiring, and pinned install paths for getting an Infara app running.
MCP setup
MCP setup
MCP setup
Use this exact order in the consumer app.
npx shadcn@latest init{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/app/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks",
"blocks": "@/components/blocks"
},
"registries": {
"@infara": "https://ui.infara.ai/r/releases/0.1.0/{name}.json"
}
}npx shadcn@latest add @infara/infara-theme
npx shadcn@latest add @infara/button
npx shadcn@latest add @infara/data-table
npx shadcn@latest add @infara/sidebar-layout@import "../themes/infara-theme.css";{
"mcpServers": {
"shadcn": {
"command": "npx",
"args": ["shadcn@latest", "mcp"]
}
}
}[mcp_servers.shadcn]
command = "npx"
args = ["shadcn@latest", "mcp"]Verify the shadcn MCP server can see the @infara registry, then pull DESIGN.md, infara-theme.css, and colors_and_type.css from infara-context before installing @infara/infara-theme and @infara/button.{
"mcpServers": {
"shadcn": {
"command": "cmd",
"args": ["/c", "npx", "shadcn@latest", "mcp"]
},
"infara-context": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@infara/infara-mcp-server@0.1.0"],
"env": {
"INFARA_CONTEXT_DIR": ".infara/context",
"INFARA_REGISTRY_ORIGIN": "https://ui.infara.ai",
"INFARA_REGISTRY_RELEASE": "0.1.0"
}
},
"next-devtools": {
"command": "cmd",
"args": ["/c", "npx", "-y", "next-devtools-mcp@0.3.10"]
}
}
}{
"mcpServers": {
"shadcn": {
"command": "npx",
"args": ["shadcn@latest", "mcp"]
},
"infara-context": {
"command": "npx",
"args": ["-y", "@infara/infara-mcp-server@0.1.0"],
"env": {
"INFARA_CONTEXT_DIR": ".infara/context",
"INFARA_REGISTRY_ORIGIN": "https://ui.infara.ai",
"INFARA_REGISTRY_RELEASE": "0.1.0"
}
},
"next-devtools": {
"command": "npx",
"args": ["-y", "next-devtools-mcp@0.3.10"]
}
}
}Repair before fallback
Do not jump straight to raw URLs. Spend five explicit attempts repairing the MCP path first.
- Check
components.jsonand confirm@infarastill points at the pinned release URL pattern. - Check the active client config:
.mcp.jsonfor project MCP and~/.codex/config.tomlfor Codex shadcn. - Restart the client and confirm
shadcnreports connected. - Run
npx clear-npx-cache, reload the shadcn server, and retry. - Confirm the registry endpoints are reachable and retry with explicit
@infara/...item names.
- Read the bundled files directly from
.infara/context, includingDESIGN.mdandinfara-theme.csspluscolors_and_type.css. - Install from
https://ui.infara.ai/r/releases/<version>/{name}.json. - Record which repair attempt failed so the connection issue can be fixed for real.
Start here
Start here
Cross-platform bootstrap
Use @infara/create-infara on macOS, Linux, or Windows to scaffold a pinned Infara consumer repo, then verify MCP before you ask an agent to build UI.
npx @infara/create-infara@latest my-app
cd my-app && npm run devFor same-machine testing against the local preview server, swap the registry origin and pin the release explicitly.
npx @infara/create-infara@latest my-app --registry-origin http://localhost:3000 --release <version>
cd my-app && npm run dev- Run @infara/create-infara in an empty target folder or give it a new folder name.
- Wait for bootstrap to finish the production build check.
- Start the app with npm run dev.
- Open the generated repo and verify MCP before asking an agent to build UI.
Verify the generated repo
If these files and checks are present, the bootstrap installed correctly and the repo is ready for MCP-first work.
components.jsonwith@infarapointing at the pinned/r/releases/<version>/{name}.jsonpattern..mcp.jsonwithshadcn,infara-context, andnext-devtools..infara/contextwith the bundled Infara contract files, includingDESIGN.mdandinfara-theme.csspluscolors_and_type.css.src/components/blocks/sidebar.tsxandsrc/components/ui/data-table.tsxfrom the default starter install set.src/appandpublic/assetssynced bycreate-infara.- The bootstrap completed the production build check without errors unless you explicitly used --skip-build.
npm run build
npm run dev/r/releases/<version>/{name}.json on https://ui.infara.ai. Use /r/latest/ for QA only.https://ui.infara.ai/r/releases/<version>/infara-theme.json
https://ui.infara.ai/r/releases/<version>/button.json
https://ui.infara.ai/r/releases/<version>/data-table.jsonReference
Reference
Read these if you need detail
The docs page is the short path. These files hold the deeper contract.
Cross-platform bootstrap command, options, generated files, and MCP checks.
Pinned registry rules, MCP behavior, and downstream expectations.
Exact repair order for shadcn, infara-context, and next-devtools.
Layout, density, async, accessibility, and release-blocker rules.
First prompt after bootstrap
Make the first prompt a connection check, not a UI request.
- Verify that
components.jsonhas@infaraand that.mcp.jsoncontainsshadcn,infara-context, andnext-devtools. - Confirm the
shadcnserver can see@infara, then queryinfara-contextforDESIGN.mdandinfara-theme.csspluscolors_and_type.cssbefore building. - Use the pinned Infara release and existing registry items before inventing app-local patterns.
Platform note
Keep next dev and the MCP client on the same OS when you can.
- Same-OS dev plus MCP is the lowest-friction setup.
- If you split Windows and WSL2, use mirrored networking so
localhostresolves across the boundary. - If mirrored networking is unavailable, set
INFARA_DEV_ALLOWED_ORIGINSto the host IPs Next will see.