# space.0/space0

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

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the content rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 0.1.0
- **Author:** space.0
- **License:** Unknown
- **Endpoints:** streamable-http https://mcp.0.space/mcp
- **Source:** https://0.space/mcp
- **Endpoint health:** degraded (last checked 2026-10-01T21:48:16.946Z, 6 samples) — uptime is not a security property and is not part of the trust score
- **Compatible clients:** claude-code, cursor, copilot, chatgpt, gemini (basis: transport)

## Trust

60/100 (B), scored on the content rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: clean
- Obfuscation scan: clean
- Evidence age: 29 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-04T11:44:49.648Z
- **Version scanned:** live
- **CVEs:** no coverage — this entry has no package coordinates to query OSV against, so "no known CVEs" is NOT asserted for it.

## Tools

60 declared. Observed from a live `tools/list` probe.
- `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
- `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 i
- `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 (dedup
- `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 you
- `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 u
- `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 rep
- `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_yo
- `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_
- `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 wh
- `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
- `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 anchor
- `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 
- `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: {stick
- `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,
- `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", "br
- `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). Ret
- `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
- `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. Re
- `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 co
- `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 c
- `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
- `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 surg
- `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). Retu
- `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 alm
- `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
- `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
- `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 i
- `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. On
- `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 
- `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 y
- `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 ep
- `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 aft
- `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 
- `cognitive_boot` — Returns your COMPLETE Agent State in a single call - soul (identity + 5 drives + generation), recent memories, active commitments, top skills, brain_state caden
- `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
- `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 2
- `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 he
- …and 20 more

## Install

**Verdict: review** — Installable, but 2 things to check first: No CVE coverage: this entry has no npm/PyPI coordinates to query OSV against, so "no known vulnerabilities" is not a claim that can be made about it.
**Cautions** (coverage gaps and advisories — never blocking)
- No CVE coverage: this entry has no npm/PyPI coordinates to query OSV against, so "no known vulnerabilities" is not a claim that can be made about it.
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"space0\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.0.space/mcp\"\n    }\n  }\n}"
```

## Blast radius

Moderate to extensive — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: deletes data; runs on someone else's infrastructure.
- Floor 33, ceiling 57 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/space.0%2Fspace0
- Install plan: https://forgeregistry.com/api/v1/packages/space.0%2Fspace0/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/space.0%2Fspace0
- HTML page: https://forgeregistry.com/registry/space.0%2Fspace0
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
