r3plica
v2.3.4
Published
R3PLICA Hub — unified MCP connector for the R3PLICA catalog. Auto-discovers local Unreal Engine and SketchUp plugins. Works with Claude Desktop, Claude Code, Cursor, Continue, Zed, and any MCP-compatible client.
Downloads
214
Readme
r3 — R3PLICA CLI
Query the R3PLICA digital replicas catalog from your terminal. Search products, brands, collections, and finishes — built for AI agents, developers, and scripts.
Install
npm install -g r3plicaRequires Node.js 20+.
Quick Start
# Search products
r3 product search "dining table"
# List brands
r3 brand list
# Filter by brand and category
r3 product list --brand "Cattelan Italia" --category table
# Get product details
r3 product get <mongo_id>
# Pipe to jq
r3 product list --limit 5 --json | jq '.[].name'Commands
Products
r3 product list [--brand X] [--category X] [--collection X] [--designer X] [--year X] [--limit N] [--page N]
r3 product search <query> [--brand X] [--category X] [--designer X] [--year X] [--limit N]
r3 product get <mongo_id>
r3 product stats [--by category|brand|designer|year] [--brand X]
r3 product compare <id1> <id2>Brands
r3 brand list [--country X] [--limit N]
r3 brand search <query>Product Collections
Product collections are furniture lines from a brand (e.g., "Tudor" by Cattelan Italia).
r3 product-collection list [--brand X] [--limit N] [--page N] [--sort X] [--order asc|desc]
r3 product-collection search <query>Finish Collections
Finish collections are sets of material finishes (shaders) — wood types, fabrics, metals, leathers — that can be applied to product parts.
r3 finish-collection list [--brand X] [--category X] [--limit N] [--page N]
r3 finish-collection search <query>
r3 finish-collection get <mongo_id>Configuration
r3 config show
r3 config set api-url <url>Default API URL: https://api.r3plica.space/api/r3vault. Override with R3_API_URL environment variable or r3 config set.
Output
- Terminal: formatted table with headers and result count
- Piped: JSON (automatic detection)
--json: force JSON output--pretty: force table output--markdown: force markdown table output
# Table output (terminal)
$ r3 brand list --limit 3
┌──────────────────┬───────────────────────────┬─────────────────┬────────────┐
│ ID │ Name │ Country │ Products │
├──────────────────┼───────────────────────────┼─────────────────┼────────────┤
│ 0a497f00-cc6f-45 │ Driade │ Italy │ 29 │
│ 22b4a540-bcf2-4e │ We Are IB │ Italy │ 37 │
│ ab368a13-6038-41 │ Emu │ Italy │ 26 │
└──────────────────┴───────────────────────────┴─────────────────┴────────────┘
3 brands found
# JSON output (piped or --json)
$ r3 brand list --limit 1 --json | jq '.[0].name'
"Driade"Use with AI Agents
Claude Code / CLAUDE.md
Add to your project's CLAUDE.md:
## R3PLICA Catalog
The `r3` CLI queries the R3PLICA digital replicas catalog. Use it when the user
asks about furniture, finishes, brands, or design products.
- `r3 product search "query"` — search products by text
- `r3 product list --brand X --category X` — filter products
- `r3 product list --designer "Name"` — filter by designer
- `r3 product get <id>` — product details with finish options
- `r3 product stats --by brand` — catalog breakdown
- `r3 product compare <id1> <id2>` — side-by-side comparison
- `r3 brand list` — all available brands
- `r3 finish-collection list --brand X` — available finish collections
- Always use `--json` when processing results programmatically
- Run `r3 --help` for full command referenceMCP Server
The package also includes an MCP server for auto-discovery in Claude Desktop, Cursor, and similar IDEs.
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"r3plica": {
"command": "r3-mcp"
}
}
}The MCP server exposes the catalog through 13 tools — product_list, product_search, product_get, product_stats, product_compare, brand_list, brand_get, brand_search, product_collection_list, product_collection_search, finish_collection_list, finish_collection_search, finish_collection_get — plus 3 Unreal Engine tools (see below).
Remote MCP (no install)
For users who want to access the R3PLICA catalog from Claude Desktop without installing the full npm package, the catalog half is also available as a remote MCP endpoint hosted on Cloudflare Workers. Claude Desktop doesn't natively accept URL-only configs yet, so we use the standard mcp-remote bridge that proxies a local stdio connection to the remote HTTP endpoint:
{
"mcpServers": {
"R3PLICA": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.r3plica.space/sse"]
}
}
}Paste this into your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS) and restart Claude. The bridge is auto-fetched via npx on first connection — no manual install. The 13 catalog tools are immediately available.
Requires Node.js 20+ on the user's machine (for npx). When Claude Desktop adds native HTTP MCP support (in roadmap from Anthropic), users will be able to switch to the simpler {"url": ...} form.
Note: the UE bridge tools (ue_spawn_product, ue_move_actor, ue_list_scene, ue_list_available_assets, ue_get_camera) are NOT exposed remotely. They require localhost reachability to your Unreal Engine editor and are only available via the local stdio MCP server (this npm package).
Landing page with install instructions: mcp.r3plica.space
Deploying the Remote MCP (maintainers only)
The remote server is deployed via Cloudflare Workers. Local development:
npm run remote:dev # wrangler dev → http://localhost:8787
npm run remote:deploy # wrangler deploy → mcp.r3plica.space
npm run remote:tail # live logs from productionFirst-time setup:
wrangler login— authenticate with the R3PLICA Cloudflare account- (Optional) Create rate-limit KV namespace:
wrangler kv:namespace create RATE_LIMITand paste the returned id intowrangler.toml - Update DNS:
mcp.r3plica.spacecurrently points to the old Digital Ocean droplet — replace the A record with a CNAME to<your-workers-domain>.workers.dev(or use Cloudflare's "Add Custom Domain" UI from the Workers dashboard) wrangler deploy— pushes the worker live
Unreal Engine bridge (v1.6+)
The MCP server can drive a live Unreal Engine editor session to spawn and arrange R3PLICA products in a 3D scene. The AI assistant queries the catalog and places assets in the level, end-to-end in one conversation.
Tools
| Tool | Purpose |
|---|---|
| ue_spawn_product | Spawn an asset by product_id (resolves path via template) or explicit asset_path. Returns an actor tag. |
| ue_move_actor | Move/rotate a spawned actor by tag. |
| ue_list_scene | List all R3PLICA actors in the active level. |
One-time UE setup
- Enable plugins in the Unreal project: Remote Control API and Remote Control Web Interface (Edit → Plugins). Restart the editor.
- Confirm Remote Control is listening on
http://localhost:30010(default). Override withProject Settings → Plugins → Remote Controlor with-RCWebControlEnable -RCWebControlPort=30010launch flags. - Create a helper Blueprint
BP_R3MCPBridge(Actor) with three custom functions exposed to the editor:SpawnProduct(AssetPath: String, Location: Vector, Rotation: Rotator, Tag: String) → bool— loads the asset viaLoadAssetand callsSpawnActor, tagging the spawned actor withTag(and adding the gameplay tagR3Product).MoveActor(ActorTag: String, Location: Vector, Rotation: Rotator) → bool— finds the actor by tag and sets its transform.ListR3Actors() → String— returns a JSON string listing actors taggedR3Productwith{tag, asset, location, rotation}.- (Optional)
DeleteActor(ActorTag: String) → bool
- Place one
BP_R3MCPBridgeinstance in the demo level. - Create a Remote Control Preset
RCP_R3MCP(Content Browser → Right-click → Remote Control → Remote Control Preset). Open it, drag theBP_R3MCPBridgeactor in, and expose the four functions above.
Asset path convention
The default template matches the R3PLICA project convention:
/Game/R3PLICA/{brand}/Products/{collection}/Meshes/{asset_name}.{asset_name}Brand and collection segments preserve case (e.g. Cantori/Products/Avantgarde/). Names are sanitized to replace non-alphanumeric characters with underscores but no lowercasing is applied. Available template variables: {brand}, {collection}, {asset_name}, {category}.
Override globally if needed:
r3 config set ue-asset-template "/Game/R3PLICA/{brand}/{asset_name}.{asset_name}"Or pass asset_path explicitly to ue_spawn_product when the convention doesn't apply.
Config keys
r3 config set ue-host localhost # default
r3 config set ue-port 30010 # default
r3 config set ue-preset RCP_R3MCP # default
r3 config set ue-asset-template "/Game/R3PLICA/{brand}/{asset_name}.{asset_name}"Also overridable via R3_UE_HOST, R3_UE_PORT, R3_UE_PRESET, R3_UE_ASSET_TEMPLATE env vars.
Demo prompt
"Search for three Italian mid-century lounge chairs from the catalog, then arrange them around the origin facing inward, ~150 cm apart."
Claude calls product_search, picks results, then issues three ue_spawn_product calls with the appropriate locations and rotations.
Examples
# Find Italian brands
r3 brand list --country Italy
# Search chairs, limit to 5 results
r3 product search "chair" --limit 5
# Get all products from a brand
r3 product list --brand "Driade"
# Explore a product collection
r3 product-collection search "Tudor"
# Find products by designer
r3 product list --designer "Philippe Starck"
# Catalog stats
r3 product stats --by brand
r3 product stats --brand "Driade" --by designer
# Compare two products
r3 product compare <id1> <id2>
# Find wood finishes
r3 finish-collection list --category wood
# Script: get all brand names
r3 brand list --json | jq -r '.[].name'
# Script: count products per brand
r3 brand list --json | jq -r '.[].name' | while read brand; do
count=$(r3 product list --brand "$brand" --json 2>/dev/null | jq length)
echo "$brand: $count"
doneAbout R3PLICA
R3PLICA provides certified digital replicas of branded furniture, finishes, and materials to architects, interior designers, and visualization professionals. The catalog includes 60+ premium partner brands including Cattelan Italia, Driade, Poliform, and more.
License
Proprietary - R3PLICA S.r.l.
