MCP setup
The MCP server is a read-only catalog: ten tools that describe kits, assets, capabilities, scenes and integration guides, and issue short-lived download URLs. It never writes to your machine and runs no code — the local CLI downloads, verifies and installs.
Connect your agent
Discovery works without credentials; get_download_url for the kit needs your API token. The server URL is the registry origin followed by /mcp.
Claude Code (tested with 2.1.283)
{
"mcpServers": {
"agent-ready-assets": {
"type": "http",
"url": "<registry origin>/mcp",
"headers": {
"Authorization": "Bearer ${AGENT_READY_ASSETS_TOKEN}"
}
}
}
}export AGENT_READY_ASSETS_TOKEN=<API token from your account page>
claude --mcp-config .mcp.jsonClaude Code replaces ${AGENT_READY_ASSETS_TOKEN} in the file's headers with the variable from your shell, so the file holds no token and can be shared.
What the placeholders in the commands mean
<registry origin>and<site origin>: the address of this website, scheme and host only (for examplehttps://followed by the host name in your address bar, no path). The website, the account service and the catalog registry share this one origin; the MCP server is at<registry origin>/mcp. The CLI accepts https only (plain http only for a local loopback registry).<API token from your account page>: create one on your account page after signing in. It installs only what your account is entitled to; the free sampler needs no token.- Run
npx agent-ready-assets …only inside the project where the SDK is installed: npx then runs the project's own CLI fromnode_modules/.bin. Outside such a project npx would look for a package of that name on the public npm registry, where we publish none — do not run it there (pnpm exec agent-ready-assets …never downloads anything).
Codex (tested with 0.164.0)
[mcp_servers.agent-ready-assets]
url = "<registry origin>/mcp"
bearer_token_env_var = "AGENT_READY_ASSETS_TOKEN"export AGENT_READY_ASSETS_TOKEN=<API token from your account page>
codexCodex reads the bearer token from the environment variable named in bearer_token_env_var.
Other MCP clients
Only the clients named above were exercised in recorded runs. The server speaks MCP Streamable HTTP (stateless, JSON responses).
Tools
| Tool | Use it for |
|---|---|
list_kits / get_kit | kits, their tested scenes, layouts, modular hosts and connector ids |
search_assets | ranked, version-pinned search (category, capability, triangle and size budgets) |
get_asset | catalog entry, manifest, versions, licence |
get_customization_capabilities | typed capabilities, swap choices with parts, swatches, connectors, refusals |
get_customization_guide | config example, SDK code, validation commands, unsupported requests |
recommend_scene | a validated scene derived from a tested kit scene, trimmed to a budget |
get_integration_guide | install commands and complete entry files (Three.js or R3F) |
get_validation_report | the public QA report |
get_download_url | a short-lived URL plus the CLI command to install it (needs the token) |
The tools describe mechanics; two patterns are documented here for planning a scene: buildings that look different but share one model are variants of one base asset (the swap choices and swatches get_customization_capabilities lists), and what is refused on purpose, with the alternative, is on capabilities and limits.
Then install with the CLI
The agent runs the command the guide returns, in your project. The same commands work without MCP (quickstart):
export AGENT_READY_ASSETS_REGISTRY=<registry origin>
export AGENT_READY_ASSETS_TOKEN=<API token from your account page>
npx agent-ready-assets kit add stylized-town@0.4.0 --to public/assets
npx agent-ready-assets verify
npx agent-ready-assets verify-project --browser chromium- Installs into public/assets/ (served by Vite/your bundler as /assets/) and pins everything in assets.lock.json (commit it). Repeating the command is a no-op; it never overwrites files you changed (exit 1, FILE_CONFLICT) unless you pass --force.
- This package needs an entitlement: export AGENT_READY_ASSETS_TOKEN before running the command. The token is sent only to the registry, never written to any file.
- SDK: npm install three@0.186.1 @agent-ready-assets/runtime-three@0.5.1 (React: also @agent-ready-assets/runtime-r3f@0.5.1 react react-dom @react-three/fiber) and -D @agent-ready-assets/asset-cli@0.5.1. Pre-release: the SDK packages are not on the public npm registry yet; install the packed .tgz files you were given (npm install ./vendor/<file>.tgz).
- After installation everything works offline: no CDN at runtime, no Blender, no Blender MCP.
The entry files get_integration_guide returns are the ones on the Three.js and React Three Fiber pages (SDK 0.5.1): the Three.js entry assembles the kit's scene with { optimize: true }; the R3F entry renders it inside <OptimizedScene> with instanceId on each <Asset>.