Agents & API
Everything on Tridsy is machine-readable. Agents can discover assets, read typed knob schemas and export exactly the variant they need — over a remote MCP server or a plain REST API. There's also an llms.txt summary.
MCP server
Remote MCP over Streamable HTTP at https://tridsy.com/api/mcp. Works without a key for free assets (lower limits); add an API key from your account for Pro assets and higher quotas.
Claude Code
claude mcp add --transport http tridsy https://tridsy.com/api/mcp \ --header "Authorization: Bearer $TRIDSY_KEY"
Claude Desktop, Cursor & other clients (JSON config)
{
"mcpServers": {
"tridsy": {
"type": "http",
"url": "https://tridsy.com/api/mcp",
"headers": {
"Authorization": "Bearer tds_your_key_here"
}
}
}
}Raw JSON-RPC
curl -s https://tridsy.com/api/mcp -H "content-type: application/json" -d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "search_assets", "arguments": { "query": "tree" } }
}'Tools
Search the catalog by free text and/or filters. Returns slugs, names, tiers and triangle counts.
Full description of one asset including its knob schema (types, ranges, defaults, options) and size in meters.
Themed kits whose assets share palette, scale and grid. Use them to build coherent scenes.
Configure an asset with knob values and get a download URL (valid 1 hour). Unknown knobs are ignored, out-of-range values are clamped; the resolved values are returned.
REST API
| GET | /api/v1/assets | Search: q, category, kit, tier, limit, offset |
| GET | /api/v1/assets/{slug} | Details + knob schema + defaults |
| GET | /api/v1/assets/{slug}/export | format=glb|usdz|obj|js plus knobs as query params |
| POST | /api/v1/assets/{slug}/export | JSON body {"format": "glb", "params": {...}} |
| GET | /api/v1/kits | Kits with palettes, grids and asset lists |
# Two-floor cottage with a blue roof, as GLB curl -L "https://tridsy.com/api/v1/assets/cottage/export?format=glb&floors=2&roofColor=2f5d8a" -o cottage.glb # Inspect the knobs first curl -s https://tridsy.com/api/v1/assets/cottage | jq .params
Auth & limits
- Send
Authorization: Bearer tds_…. Keys are created and revoked in your account. - Without a key: free assets only, 30 exports per day per IP. Free accounts: 200/day. Pro & Lifetime: 5,000/day.
- Pro assets answer
402without a Pro plan; quota exhaustion answers429. Errors are JSON:{"error": "..."}. - MCP export URLs are pre-signed and valid for one hour, so agents can hand them to any downloader.
Conventions
- 1 unit = 1 meter, +Y up, front faces +Z, origin at the ground center of the footprint.
- Assets in one kit share a palette and a grid size (listed per kit), so neighbors line up.
- Every asset has a
seedknob; same knobs + same seed = identical geometry. - Out-of-range values are clamped and unknown knobs ignored; responses include the resolved values.
- Characters keep named joint nodes (hips, spine, head, arm_L, forearm_L, leg_L, …) in GLB exports.
Live ES modules
The js format returns the asset's generator itself. Import it and rebuild variants at runtime with your own copy of three.js — the knob schema ships inside the module.
import * as THREE from "three";
import create, { schema } from "./pine-tree.js";
for (let i = 0; i < 50; i++) {
const tree = create(THREE, { seed: i + 1, height: 4 + Math.random() * 4 });
tree.position.set(Math.random() * 40 - 20, 0, Math.random() * 40 - 20);
scene.add(tree);
}