arc-world-engine-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARC_API_KEY | No | API key required to access a real public ARC environment. | |
| ARC_WORLD_MCP_TRANSPORT | No | Set to 'streamable-http' for an HTTP transport. Defaults to stdio. | stdio |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_worldB | Create an empty deterministic world using raw ARC colors 0-15. |
| load_static_mapA | Replace the static color and collision layers without creating actors. |
| set_viewportC | Set the integer camera origin and viewport, up to 64 by 64 cells. |
| create_actorC | Create a generic actor; cells are [local_x, local_y, optional_color]. |
| update_actorC | Update only the provided generic actor state and transform fields. |
| remove_actorA | Delete an actor and automatically remove ECE rules that reference it. |
| split_actorC | Split one actor by partitioning all of its local topology cells. |
| merge_actorsC | Merge actors into the first ID using their rendered world topology. |
| add_directional_movementC | Bind ACTION1-4 to up/down/left/right movement for an actor. |
| add_ruleB | Attach actor ECE code. Use actor.value predicates and frame N effects. condition_code supports and/or, for example:
|
| add_collision_effectB | Apply an effect when one actor collides with another actor or static map. |
| add_click_effectC | Apply an effect when ACTION6 clicks the source actor. |
| add_timer_effectC | Apply an actor effect on discrete action ticks, not wall-clock time. |
| simulate_actionB | Advance one deterministic turn; ACTION6 uses viewport click coordinates. |
| compare_observationB | Compare a real ARC frame against the model's current rendered viewport. |
| create_snapshotB | Clone the complete native world for later rollback. |
| rollbackB | Restore a previously named native snapshot. |
| get_world_stateA | Return rendered layers, actors, rules, hashes, trace, and debug history. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| current_world_resource | Complete current world model as JSON. |
| current_frame_resource | Current predicted ARC frame as JSON. |
TDQS
Scored across 18 tools
Most tools have clear, distinct purposes, such as creating/updating/removing actors, adding effects by trigger type, and managing snapshots. The only minor overlap is between the general add_rule and the specific add_*_effect tools, but descriptions clarify their scopes.
Tool names mostly follow a consistent verb_noun snake_case pattern (create_actor, update_actor, remove_actor, add_rule). Minor deviations include merge_actors using plural while other actor operations are singular, and rollback lacking a noun object.
18 tools is on the higher side but each addresses a distinct aspect of the world engine: world setup, actor management, simulation, effects, and state inspection. No tool seems redundant, and the count is appropriate for the complex domain.
The tool surface covers the full lifecycle of world management: creating worlds, loading static maps, actor CRUD, simulation, rule/effect binding, observation comparison, and snapshot rollback. There are no obvious gaps that would prevent an agent from completing common tasks.