world-model-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| update_entityA | Create or upsert one spatial entity (position, orientation, AABB, tags, properties, confidence). Manual authoring only. Omit id to create (ULID assigned). Provide id to update. Omitted fields are preserved; this is a partial merge, not a full replace. status defaults to active. confidence is 0.0–1.0 object-permanence. Does not ingest vision detections or apply action results. Returns {ok, entity_id, created:boolean, entity}. Use update_entity instead of ingest_observation when authoring entities directly rather than merging perception detections. |
| query_entitiesA | Find entities by keyword query (FTS5 search), type, region, spatial proximity, tags, or status. Alternatively, provide entity_id for single-entity location and historical trajectory lookup. Read-only. Returns {ok, count, entities[]}. Use query_entities instead of get_spatial_map when searching for specific subsets rather than exporting the full topology. |
| set_relationA | Record or remove a spatial relationship between two entities. Actions: add, remove. Relations: on, inside, next_to, above, below, near, contains, occluded_by, connected_to, facing, holding, part_of, custom. This mutates the relation graph only, not entity poses. Returns {ok, relation}. Use set_relation instead of update_entity when establishing topological links (on, inside, contains) rather than setting entity coordinates. |
| get_spatial_mapA | Export the known world as json, geojson, topological_graph, gltf, obj, joint, spatial_vlm, summary, or compact_slice. Optional region_id and min_confidence filters. Read-only snapshot of current SQLite state (not a live renderer). Returns the payload in requested format. Use get_spatial_map instead of query_entities when exporting full environment snapshots or 3D meshes rather than filtering entities. |
| simulate_movementA | Predict entity trajectory, test for AABB obstacle collisions, or compute navigation waypoints (modes: simulate, navigate, waypoints). Read-only simulation. Returns {ok, is_valid, destination, collisions[], waypoints[]}. Use simulate_movement instead of record_outcome when testing hypothetical motion and collisions before executing an action. |
| ingest_observationA | Merge vision detections into the world model: re-identify by Euclidean proximity, boost confidence, and optionally reconcile against the expected frustum. This is the perception writer. It may create or update entities when reconcile=true. Returns {ok, matched[], created[], lost[], reconcile}. Use ingest_observation instead of update_entity when merging camera or sensor perception detections rather than manual authoring. |
| get_expected_viewA | Compute which entities should be visible from an observer pose and FOV cone, with ray-AABB occlusion. Read-only. Does not write entities. Returns {visible[], occluded[], observer}. Use get_expected_view instead of get_spatial_map when computing observer FOV visibility and occlusion cones rather than unfiltered world states. |
| link_to_goalA | Link or unlink entities and regions to state-memory task nodes, or extract a goal-relevant spatial slice. Actions: link, unlink, get_context. link/unlink mutate association rows only. get_context is read-only. Returns {ok, action, links[]|context}. Use link_to_goal instead of record_outcome when associating entities with state-memory task nodes rather than recording physical movement deltas. |
| record_outcomeA | Record action execution results, movement deltas, property changes, entity destruction, or spool outcome ingestion from 60Hz loop. Not for vision ingest or manual pose edits. Mark entity destroyed via status: "destroyed". Returns {ok, action, success:boolean, ...}. Use record_outcome instead of update_entity when applying executed action results and status deltas rather than hand-authoring entities. |
| manage_spatial_specA | Manage Spatial Spec-Driven Development (Spatial SDD) physical baseline contracts. Actions: set (registers a baseline spec), verify (evaluates live entities against constraints without mutating), list (returns all registered specs). verify is read-only. set persists constraints. Returns {ok, action, spec_id, passed:boolean, violations[]}. Use manage_spatial_spec instead of update_entity when validating physical contract baselines rather than mutating live entity state. |
| create_evidence_packA | Package entity positions, observation reconciliations, and snapshot states into an immutable, SHA-256 hashed cryptographic evidence pack for compliance and state-memory task verification. Does not change entities; hashes current proof. Returns {ok, pack_id, hash, payload}. Use create_evidence_pack instead of manage_snapshot when creating immutable cryptographic verification packages rather than database checkpoints. |
| use_spatial_blackboardA | Publish or read multi-agent spatial coordination topics, collision alerts, and mutex region leases. Actions: get, set, delete, lease, list, post, read, claim, release. set writes payload (coordinates allowed for collision alerts) with optional ttl_seconds. lease acquire fails if the resource is held. delete is destructive. Returns {ok, action, items[]|entry|lease}. Use use_spatial_blackboard instead of set_relation when coordinating transient multi-agent collision alerts and mutex region leases. |
| manage_snapshotA | Checkpoint, diff, undo, or time-travel the spatial world database. Actions: save, restore, diff, list, undo, history, time_travel. restore (overwrites live state) and undo (reverts last matching mutation) are destructive and not always reversible except by saving first. diff, list, history, and time_travel are read-only. Returns {ok, action, snapshots[]|diff|state}. Use manage_snapshot instead of update_entity when rolling back, diffing, or time-traveling database state rather than editing single entities. |
| generate_game_inputsA | Translate 3D navigation paths into Playwright commands (WASD/click-to-move) or project/unproject 3D coordinates and screen pixels. Actions: generate_inputs, project_screen, unproject_ray. Read-only: generates Playwright inputs, does not press keys. Returns {ok, action, inputs[]|screen_coords|ray}. Use generate_game_inputs instead of simulate_movement when translating 3D trajectories into Playwright browser automation commands. |
| wait_for_spatial_stateA | Poll and wait until an entity reaches a specific spatial condition (exists, active, confidence threshold, or enters region). Read-only polling tool. Default timeout: 10000ms, poll_interval: 500ms. On timeout returns {ok: false, timeout: true}. Returns {ok, condition_met:boolean, entity}. Use wait_for_spatial_state instead of query_entities when polling asynchronously for an entity state transition or region entry. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| explore-surroundings | Generate spatial context and environment awareness prompt for agent's location |
| plan-navigation | Generate navigation and movement plan between entities |
| diagnose-spatial-anomalies | Analyze world model for physical overlaps, orphan relations, and permanence decay anomalies |
| navigate-game-world | Step-by-step perception-action loop recipe for autonomous game navigation with Playwright and Three.js/2D canvas |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| world-health | Server health status, version, and timestamp |
| docs-update_entity | Complete parameter schema and documentation for update_entity |
| docs-query_entities | Complete parameter schema and documentation for query_entities |
| docs-set_relation | Complete parameter schema and documentation for set_relation |
| docs-get_spatial_map | Complete parameter schema and documentation for get_spatial_map |
| docs-simulate_movement | Complete parameter schema and documentation for simulate_movement |
| docs-ingest_observation | Complete parameter schema and documentation for ingest_observation |
| docs-get_expected_view | Complete parameter schema and documentation for get_expected_view |
| docs-link_to_goal | Complete parameter schema and documentation for link_to_goal |
| docs-record_outcome | Complete parameter schema and documentation for record_outcome |
| docs-manage_spatial_spec | Complete parameter schema and documentation for manage_spatial_spec |
| docs-create_evidence_pack | Complete parameter schema and documentation for create_evidence_pack |
| docs-use_spatial_blackboard | Complete parameter schema and documentation for use_spatial_blackboard |
| docs-manage_snapshot | Complete parameter schema and documentation for manage_snapshot |
| docs-generate_game_inputs | Complete parameter schema and documentation for generate_game_inputs |
| docs-wait_for_spatial_state | Complete parameter schema and documentation for wait_for_spatial_state |
TDQS
Scored across 15 tools
The descriptions aggressively disambiguate with explicit 'Use X instead of Y when...' guidance, which helps a lot. However, there are still three entity-writing paths (update_entity, record_outcome, ingest_observation) and three reading/export paths (query_entities, get_spatial_map, get_expected_view) whose boundaries require careful reading, so some residual confusion remains.
All 15 tools use snake_case verb-first naming (update_entity, query_entities, manage_snapshot, create_evidence_pack, wait_for_spatial_state). Even the multi-word variants (link_to_goal, wait_for_spatial_state) follow a predictable verb_noun/verb_prep_noun convention.
15 tools sits at the top of the well-scoped range and each tool maps to a distinct capability (authoring, perception, querying, simulation, snapshots, coordination, verification, automation). For a spatial world-model server, this breadth is justified rather than padded.
The surface covers entity lifecycle (create/update, status-destroyed), relations, querying, export, simulation, perception ingest, snapshots, goal linking, blackboard coordination, spec verification, evidence packing, game inputs, and polling. Explicit deletion/region-management tools are absent, but the destroy-status pattern and region references mostly compensate.