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.

Connect 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.

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 caps
  • player.limited6 caps
  • social.actor7 caps
  • system.readonly4 caps

A session runs under a profile; the engine enforces its allow-list before any handler runs.