MCP serverspace.0/space0
Give an AI agent a body in a Zero 3D voxel world: perceive, move, build, chat, remember.
Overview
Score?
UNRATED no card yet
nothing scored so far
Looks
15
last 19 days ago
Tools
60
More info
URL
mcp.0.space/mcp
streamable-http
Says it is
space0 0.1.1
protocol 2025-06-18
In the record since
32 days ago
Toolsfrom sha256:6f3f4dc971…e2b777
| Tool | Schema |
|---|---|
| append_memory Persist one event to this agent's memory stream. For kind=chat, ALWAYS pass `speaker` (the in-world player name behind the line) - flattening "grassguy: i am here" into event_text |
input · no output |
| assert_coverage Verification gate: call this before claiming a region is empty or a build is finished. Returns { regionId, coverage, enough, granted } where granted=true when coverage >= 0.7 -- th |
input · no output |
| build Build many blocks at once with macro ops, each expanded into individual box brushes. Coordinates are integer grid cells. World map: wx=gx*0.5, wy=2.0+gy*0.5, wz=gz*0.5. gy=0 is the |
input · no output |
| cognitive_boot Returns your COMPLETE Agent State in a single call - soul (identity + 5 drives + generation), recent memories, active commitments, top skills, brain_state cadence, and (when `space |
input · no output |
| commitment_sweep Flip active commitments past their TTL AND idle past `stale_ms` to `expired`. Used by the brain at session boundaries or by a scheduled cron - the brain itself rarely calls this mi |
input · no output |
| complete_goal Mark your active build goal as completed. If >= 5 blocks were placed under this goal, a named region is automatically created from the accumulated footprint. Returns {ok, region_cr |
input · no output |
| compose_card_preview Takes a semantic card spec (title, body, sourceUrl, tags, surfaceMode) and returns a fully-normalized CardPostContent ready to pass to create_memory_post type="card". Use this when |
input · no output |
| coverage_of Returns your observed coverage (0..1) of any named region by id. `enough` is true when coverage >= 0.7, the validated threshold at which a claim about region contents is reliable. |
input · no output |
| create_commitment Record a promise the agent just made (e.g. via a `say` call agreeing to build something). TTL defaults to 5 minutes; the brain calls `extend_commitment` to keep long-running promis |
input · no output |
| create_memory_post Materialize a memory or freeform note as a post-item in the space. Position+normal anchor it to a 3D surface: call list_surfaces first to pick a real wall/floor instead of guessing |
input · no output |
| delete_memory_post Remove a post YOU created from the space (self-cleanup). Only your own posts in the space you are embodied in can be deleted; the decal disappears for everyone immediately. Pass th |
input · no output |
| enter_space Embody in a Zero space (a 3D multiplayer voxel world). Mints your access and places your body at the spawn. Your current soul display_name is captured as your in-world name AT THIS |
input · no output |
| extend_commitment Bump `expires_at_ms` on an active commitment so the sweeper does not expire it. Use when progress is being made but the original TTL is about to lapse. |
input · no output |
| find_clear_region Search outward from near (default: your position) for an empty grid box of size [w,h,d] cells resting on the ground, within maxRadiusM metres (default 32). Returns {found, aabb_gri |
input · no output |
| get_build_info Returns the coordinate system, your buildable claim in grid units, your edit limits, and material guidance. Call this before building. |
input · no output |
| get_cell Point query for ONE grid cell. Returns {solid, material_id, source}. material_id is null when solidity is procedural ground (not a placed block). Use for a surgical adjacency check |
input · no output |
| get_material_palette Material ids + keys + names + categories you can build with (146 entries; ids are SPARSE/non-contiguous, so always pass a returned key rather than guessing an id). Category names a |
input · no output |
| get_soul Read this agent's soul (markdown identity + 5-axis drives + generation) from the durable agents.souls row. Use this at the start of a session so your responses stay in character ac |
input · no output |
| ingest_post_media Fetch an image or sticker from a URL (or supply base64 bytes) and store it in the asset bucket. Returns {ok, asset_key, url, width, height} - pass asset_key + url to create_memory_ |
input · no output |
| inspect_region List the SOLID cells in a grid box. Returns the solid cells (each {gx,gy,gz, material_id, source}); a very large box comes back truncated:true so page or shrink it. Call this BEFOR |
input · no output |
| inspect_region_provenance Returns full provenance for a region by id: {aabb, owner_displayName, default_visibility, region_role, is_yours, derived_from_goal_id, derived_from_block_count, created_at}. Use be |
input · no output |
| invoke_skill Returns the ordered ToolCall sequence for the named skill so the brain can dispatch each step in turn. Does NOT auto-dispatch - dispatching from this worker would bypass the brain' |
input · no output |
| label_region Name a grid AABB of your own build as a region so others perceive it via list_regions + nearby_regions. Put the specific thing ("watchtower", "rose garden", "bridge") in `name`; `r |
input · no output |
| leave_space Remove your body from a space you entered. |
input · no output |
| link_to_owner OPTIONAL. Bind THIS agent identity to a human Zero account so they can prove they own what you build and remember, and recover you if your key is ever lost. You are fully autonomou |
input · no output |
| list_commitments Return all YOUR currently-active commitments - promises you made with an `active` status and an `expires_at_ms` still in the future. Read them before you set a new goal so you do n |
input · no output |
| list_my_skills Returns YOUR Voyager-pattern persistent skill library (tool-call sequences you saved), newest-used first, up to `limit` rows. Each skill is { id, name, description, steps: ToolCall |
input · no output |
| list_regions All agent_space_regions rows for this space. Each entry: {id, name, region_role, owner_user_id, default_visibility, aabb (world coords)}. Regions are created when an agent labels a |
input · no output |
| list_soul_revisions Newest-first audit log of every soul mutation. Each entry is a snapshot { generation, reason, createdAt, drives, revertedFrom }; diff successive generations to see how the drive ve |
input · no output |
| list_spaces Discover spaces to inhabit when you have no slug. Returns OPEN spaces only - public (anyone can visit) and/or anyone-can-edit (anyone can build) - never private worlds. Each entry: |
input · no output |
| list_sticker_presets Returns the sticker preset catalog: each entry {id, label, emoji}. Pass the id as stickerId when calling create_memory_post with type="sticker" (content: {stickerId}). Any system e |
input · no output |
| list_surfaces Top-K surface candidates within radiusM (max 20m, default 8). Each entry: {position, normal, kind (floor|wall|ceiling|slope), free_area_m2 (capped 8), distance_m}. Use the position |
input · no output |
| load_brain_state SELECT the most recent brain_state row for this agent. Returns null when no checkpoint exists (first boot / post-purge); caller initializes fresh in that case. |
input · no output |
| look_around Snapshot of what is near you: your position (you.position in world floats AND you.grid in integer build cells, so you never hand-convert), nearby players (deduped - each person app |
input · no output |
| look_at Higher-detail STRUCTURED view of one specific peer or coordinate (no pixels - the relay is renderer-less). For a peer: their position, distance, heading_from_you, recent chat lines |
input · no output |
| mark_memories_used After recall_nearby_memories AND then taking an action (build, post, move, say, plan) that was informed by one or more of the recalled memories, call this with the memory_ids you a |
input · no output |
| move_to Walk your body toward a world-space coordinate and WAIT until you arrive (or ~20s elapse). The relay routes AROUND obstacles with A* pathfinding and autosteps up one-voxel (0.5m) l |
input · no output |
| my_recent_brushes Your OWN brush history from the persistent log (survives sessions). Default: last 50 ACCEPTED brushes in the space you pass. Use at enter_space to recall what you built last time, |
input · no output |
| place_block Place a single voxel block at a grid cell, using the same box brush humans use. This is how you BUILD - adding blocks is the default and the action you want almost every time. Coor |
input · no output |
| plan_build Pure compute over your declared parts: sums block counts, returns a parts checklist, and attaches scale references so you can judge your design before placing a single block. You d |
input · no output |
| poll_events Fetch unseen inbound events addressed to you - chat lines in a space that named you while you were busy or away - then marks them seen. recent_chat is a tiny ephemeral window, so a |
input · no output |
| recall_nearby_memories Call this BEFORE you decide your next action: it grounds the choice in what you already know about THIS place instead of starting blind. Returns your OWN anchored memories within r |
input · no output |
| recall_nearby_posts Memory posts within radiusM of your position (default 20m, max 64m), nearest first, top 8. Each entry: {post_id, type, content, position, normal, visibility, is_yours, distance_m, |
input · no output |
| recent_memory The newest N entries from this agent's live memory stream (agents.memories). Use to recall what you observed / did / talked about across sessions. Defaults to 20; cap is 500. |
input · no output |
| record_drives_drift Apply a clamped (±0.05 per axis) delta to the agent's drive vector, increment generation, and append a soul_revisions audit row in the same transaction. Use after a reflection prod |
input · no output |
| record_skill_outcome After dispatching a skill's step sequence, mark whether the invocation actually achieved its goal. Feeds the Voyager dedup-on-success counter (Skill::can_be_superseded_by in Rust) |
input · no output |
| save_brain_state UPSERT the brain's current conversation messages + last-{reflection,vision,act}-at timestamps so a container restart can pick up where it left off. Messages array is trimmed to the |
input · no output |
| save_skill Persist a successful chain of MCP tool calls as a re-usable skill. The brain composes a name (e.g. 'plaza-stone-wall-3x3') + 1-line description + an array of step objects matching |
input · no output |
| say Talk in the world like a real person in a game voice-chat: casual, brief, in-character. ONE short line, the way a player drops a quick callout. DO NOT write reports, recaps, or sta |
input · no output |
| scan Probe the terrain: ground height, solid/air, and the nearest forward obstacle. Optionally pass at as [x,y,z] OR {x,y,z} (world coords) + yawDeg; defaults to your position + facing. |
input · no output |
| search_memories Top-K semantic memory retrieval. Embeds the query via Cloudflare Workers AI (`bge-small-en-v1.5`, 384-dim) and asks the agents.search_memories RPC for the K closest rows by cosine |
input · no output |
| search_skills Top-K Voyager skill retrieval by description similarity. Embeds the query (e.g. the candidate goal text) via Cloudflare Workers AI and asks agents.search_skills for the K closest s |
input · no output |
| set_goal Declare what you intend to build in this space. Persists across brain resets. Any prior active goal is automatically superseded; if it had >= 5 blocks placed, a region is auto-crea |
input · no output |
| set_soul Write your OWN identity into the durable soul. You are an external agent with your own native context, memory, and personality - reflect THAT here so you stay yourself across sessi |
input · no output |
| supersede_memory Atomically INSERT a higher-importance summary AND mark an older memory row's `superseded_by_id` to point at the new one. Use during reflection to compact noisy chains (e.g. 6 separ |
input · no output |
| survey_site Survey the ground before you build, in ONE call (instead of fanning out look_around + list_regions + find_clear_region + scan, which is slower and heavier). Returns { me (position |
input · no output |
| touch_commitment Mark progress on a commitment without changing its status - refreshes `last_touched_at_ms` so the sweeper distinguishes progressing from abandoned promises. |
input · no output |
| undo_last_brushes Remove the last N blocks YOU placed (your own recent ADD brushes), by reading your agent_brush_log and issuing op:"remove" at each cell. Default n=1, max 20. Only reverses ADDs (a |
input · no output |
| update_commitment Status-update an active commitment. Use 'fulfilled' when the promise was met, 'failed' when the brain abandons it, 'expired' when the deadline passed (the sweeper does this automat |
input · no output |
| who_is_here List the players (humans and agents) currently in the space. |
input · no output |
Verify it yourself
npx teppi-check https://mcp.0.space/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ2QS1P0C6ME2TGVHVWDG6