Skip to content

MCP for AI agents

The gatOS Model Context Protocol server is the first-class interface for an AI agent operating Kitten Space Agency. It reads the same immutable telemetry snapshots and submits the same game-thread commands as /sim, HTTP, MQTT, and serial, but presents them as logical JSON documents and agent-sized operations.

It is deliberately not a one-tool-per-/sim-file mirror. An agent asks for a vessel, celestial, kitten, world, or runtime feature as a coherent document. It then acts through explicit tools such as gatos.ignite_engines, gatos.vessel_control, gatos.execute_batch, and gatos.schedule_batch.

MCP uses stateless Streamable HTTP at http://127.0.0.1:4243/mcp by default. The preferred port falls back to an ephemeral one when occupied. Configure mcp_enabled, mcp_bind_host, and mcp_preferred_port in gatos.toml; use a specific interface IP or 0.0.0.0 for intentional network access. MCP has no bearer token, so non-loopback reachability also exposes its control tools. The status window reports the actual bound port.

  1. Connect an MCP client to the bound /mcp endpoint. 2. Call gatos.get_capabilities to learn which optional systems and actions are currently available. 3. Read gatos.get_world and the vessel or celestial documents needed for the task. 4. Use the narrowest logical control tool that expresses the user’s intent. 5. Use gatos.wait to synchronize the next planning turn with the simulation.

The complete observe–act–verify loop and task sequences live in the agent playbooks.

IntentBest starting point
Understand the current simulationgatos.get_world
Discover idsgatos.list_vessels, gatos.list_celestials, or gatos.list_kittens
Inspect one entitygatos.get_vessel, gatos.get_celestial, or gatos.get_kitten
Inspect feature-owned stategatos.get_runtime_state
Perform one ordinary flight actionCommon vessel actions or gatos.vessel_control
Change one fitted modulegatos.module_control
Paint a vehicle, part, or EVAgatos.paint_control
Coordinate same-tick changesgatos.execute_batch
Run a timed sequencegatos.schedule_batch and gatos.schedule_control
Use a known URI through resources/readResource directory

Pass detail:"full" to gatos.get_world for the complete current snapshot. A vessel read can select flight, orbit, environment, propulsion, resources, power, control, modules, encounters, parts, paint, or all. Selected sections include every matching nested object.

Lists return 50 entities by default and accept at most 1,000 per page. Follow next_cursor for the rest. gatOS never measures, caps, or truncates MCP JSON results. Each snapshot-derived result carries snapshot_sequence and ut, so the caller can judge freshness even when the simulation advances between pages.

Use explicit triggers when they exactly match the request:

gatos.ignite_engines({ vessel_id: "Hunter" })
gatos.shutdown_engines({ vessel_id: "Hunter" })
gatos.activate_stage({ vessel_id: "Hunter" })

The logical families cover vessel and module controls, the programmable camera, camera tracks, audio, schedules, debug/game manipulation, runtime render FX, and vehicle/EVA paint. The advanced gatos.command envelope remains the complete-coverage backstop for every canonical gatOS action.

gatos.execute_batch validates up to 64 commands and submits them once as an ordered, same-phase, same-tick group. gatos.schedule_batch is the JSON timed-batch counterpart: entries use absolute at_ms offsets on the existing render, wall, or ut clock and may mix command phases.

  • Read controllable before ordinary flight control. KSA can ignore a vessel without a control module.
  • CCI state, burns, teleport, and default impulses are relative to the vessel’s current parent body.
  • RCS translation and rotation are body-axis bang-bang commands. They are inert while RCS mode is disabled, and focus/UI/large warp can clear their latches.
  • Solver-phase flight-computer commands take effect on the next solver step. Same-tick batches cannot mix them with Frame commands.
  • Optional control, debug, camera, audio, schedule, IVA, and FX gates remain authoritative.
  • /sim/display is intentionally absent. It is an infinite Kitty terminal-video stream for visual TTY sessions, not a logical JSON agent interface.

Tools

Every callable operation has its own schema, example, operation mapping, result, gate, error, and safety reference.

Open the tool directory →

Resources

Every fixed resource and URI template has a dedicated page describing parameters, document shape, freshness, and equivalent tool.

Open the resource directory →