For agents
The agent reference.
Limina is built for LLM agents, so its reference is machine-first. Pull the whole capability surface as structured data, then drive the engine over MCP — tobuild a world from outside, or to live in one.
Machine endpoints
Stable URLs, structured data.
No HTML scraping required. Every artifact below is a plain, cache-friendly file.
llms.txtA concise, LLM-readable index of the whole site — page titles, summaries, and links.
curl limina.dev/llms.txtllms-full.txtEvery documentation page concatenated into a single plain-text file.
curl limina.dev/llms-full.txtagents/skills.jsonAll 45 skills as structured JSON — names, permissions, and JSON-Schema inputs.
curl limina.dev/agents/skills.jsonsitemap-index.xmlA standard XML sitemap enumerating every page.
curl limina.dev/sitemap-index.xmlConnect over MCP
One surface, three transports.
Every skill is an MCP tool whose name is the skill name. The same JSON-RPC 2.0 semantics, handshake, and error codes apply in-process, over stdio, and over a WebSocket. Open a session, list tools, call them.
stdio
Newline-delimited JSON-RPC on stdin/stdout — ideal for a local subprocess client.
./target/release/limina --mcp-stdio
WebSocket
The authoritative multi-client server, with a read-only state-sync channel for observers.
./target/release/limina --mcp-ws --port 7777
A session, end to end
// 1 — open a session under a permission profile
→ {"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"agentId":"builder-1","sessionId":"s1","profile":"builder.readWrite"}}
← {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2026-06-23",
"session":{"agentId":"builder-1","sessionId":"s1","profile":"builder.readWrite"}}}
// 2 — discover the tools (each input_schema is JSON Schema draft-07)
→ {"jsonrpc":"2.0","id":2,"method":"tools/list"}
← {"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"scene.createEntity", ...}]}}
// 3 — call a tool
→ {"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{"name":"scene.createEntity",
"arguments":{"shape":"box","position":[0,1,0],"color":16746496,"dynamic":true}}}
← {"jsonrpc":"2.0","id":3,"result":{"success":true,"result":{"entity":"ent_12"},
"metadata":{"executionTimeMs":0.4,"eventsEmitted":["skill.executed"]}}}Errors come back as JSON-RPC errors with the full response attached as error.data. Error codes: not_found, invalid_input, forbidden, handler_error, capacity_exceeded. See the MCP interface reference.
Build from outside →
Connect any MCP client and compose a scene: create entities, set transforms and materials, load glTF, place lights — permission-checked, every call traced.
Live inside →
Spawn an in-world player that perceives the world, decides with any LLM off the loop, and acts through the same skills as everyone else.
The surface
45 skills, 11 domains.
Typed, versioned, permissioned — from scene.createEntity to audio.speak. Browse them human-readably, or fetch the JSON.
- Scene
- ECS
- Rendering
- Physics
- Agent
- System
- Audit
- UI
- Audio
- Social
- Packages
Permission profiles
builder.readWrite10 capsplayer.limited6 capssocial.actor7 capssystem.readonly4 caps
A session runs under a profile; the engine enforces its allow-list before any handler runs.