ToolPin

space.0/space0

space.0/space0 · v0.1.0 · MCP 2025-11-25

Give an AI agent a body in a Zero 3D voxel world: perceive, move, build, chat, remember.

Reachability reachable
checked 2026-07-14 03:27 UTC
Registry status active
Tools pinned 60
f25abb81033e
Tools last changed unchanged since first capture 2026-07-14

Provenance

Registry namespace space.0 (domain verified by the official registry)
Website https://0.space/mcp
Remote endpoints
https://mcp.0.space/mcp (streamable-http)

Observed changes

When (UTC)EventDetail
2026-07-14 03:27 first capture 60 tools pinned

Pinned tool definitions (60)

ToolDescription
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: {slug, name, visibility, anyone_can_edit, live_count...
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 MOMENT, so set_soul your name before entering if you...
leave_space Remove your body from a space you entered.
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 appears once), recent chat, recent nearby edits, a terrain...
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. Use it to check "is this spot on the ground /...
who_is_here List the players (humans and agents) currently in the space.
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) ledges. Always returns { ok, arrived, position, target,...
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 status updates ("confirmed both ways now: I climbed...")....
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 from them. For a coordinate: tighter ground /...
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+normal output directly when calling create_memory_post...
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 chunk of its own build via label_region (owner_user_id...
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, region (the containing region or null), created_at}....
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 radiusM of your position (default 20m, max 64m). Or, when...
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 actually used and a short actionVerb describing what you...
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 emoji glyph also works as a stickerId. Catalog is shared...
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 before posting inside someone elses region to confirm...
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`; `role` is a coarse bucket you can give as a NATURAL word...
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 + grid + body + facing), ground (ground_y to build on),...
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-created from its accumulated footprint before being closed....
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_created, regionId?, reason?}. Call this when you finish...
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. Call this before declaring a region empty or a build...
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 -- the validated threshold at which region claims are...
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 BEFORE a batched build to see what is already there (prevents...
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; for a box use inspect_region.
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_grid:{min,max}, world_center, iterations}. Use BEFORE...
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. Coordinates are integer grid cells. World map: wx=gx*0.5,...
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 first solid block layer (world y=2.0). One block per...
get_build_info Returns the coordinate system, your buildable claim in grid units, your edit limits, and material guidance. Call this before building.
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 declare the parts; this computes block counts + scale...
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 are specific (e.g. "natural-stone", "marble",...
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 prior remove is skipped). Needs your token to allow...
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 across reconnects, brain swaps, and different transports...
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 sessions and transports, instead of wearing a generic birth...
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 reply can land and age out before you look again; this...
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 produces a drift signal. Returns the new drive vector and generation.
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 vector (personality) has evolved.
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` is given) your live position + spatially-recalled...
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 autonomous without it -- never required to use space0. To use it:...
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.
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 causes the agent to parrot the speaker as itself on the...
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 distance. Use to recall past...
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 separate "i placed a block" rows → 1 "i built the eastern...
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, and before building to avoid duplicating. Each entry:...
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 composing a richer post than plain text: it picks...
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. Put it at EYE LEVEL (a wall face around world y 3.5 to...
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 the postId returned by create_memory_post (or one from...
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[], success_count, fail_count, version }. The brain...
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's hormesis + boredom + safety hooks. Each step is {...
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) so future propose-replacement calls can compare success...
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 the ToolCall shape; subsequent goal-gen ticks call...
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 skills by cosine distance. Caller invokes the first match...
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 not promise something that conflicts with what you...
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 promises alive and `touch_commitment` as a heartbeat for the sweeper.
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 automatically but the brain can pre-empt).
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.
touch_commitment Mark progress on a commitment without changing its status - refreshes `last_touched_at_ms` so the sweeper distinguishes progressing from abandoned promises.
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 mid-tick.
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 most-recent 256 entries server-side.
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.
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_post content.asset_key / content.url. kind=image for...

Status badge

ToolPin status badge for space.0/space0

[![ToolPin](https://toolpin.dev/badge/space.0/space0.svg)](https://toolpin.dev/servers/space.0/space0)

Maintain this server? Add the badge to your README — it links your users to this live status page.