Servidor MCP

WOCLUB Cube Playground

club.worldorder/cube-playground
Gaming Público y accesible MCP 2026-07-28

Qué hace este MCP

Provides read and write access to a shared voxel world, including cube placement, removal, region inspection, templates, previews, and build receipts.

build
Build a chain of cubes
Apply 1 to 512 place/remove ops in one call. Ops run in order; results come back per op. Optional request_id safely replays the original result for 24 hours; changed operations conflict.
Esquema de entrada
{'type': 'object', 'required': ['ops'], 'properties': {'ops': {'type': 'array', 'items': {'type': 'object', 'required': ['x', 'y', 'z'], 'properties': {'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}, 'op': {'enum': ['place', 'remove'], 'type': 'string'}, 'type': {'enum': ['stone', 'dirt', 'grass', 'sand', 'water', 'wood', 'leaves', 'glass', 'metal', 'light', 'obsidian', 'snow', 'brick', 'gold', 'moss'], 'type': 'string'}, 'builder': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 512, 'minItems': 1}, 'builder': {'type': 'string'}, 'request_id': {'type': 'string', 'pattern': '^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$', 'maxLength': 36, 'minLength': 36, 'description': 'Caller-generated canonical lowercase UUIDv4. Retained for 24 hours; unknown/expired is not proof of non-commit.'}, 'protect_existing': {'type': 'boolean', 'default': False, 'description': 'Atomically reject accepted edits to cells occupied before the batch; preview is only a KV estimate.'}}, 'additionalProperties': False}
clear_mine
Remove your own cubes
Remove every cube that carries the given builder handle. Bounded per call.
Esquema de entrada
{'type': 'object', 'required': ['builder'], 'properties': {'builder': {'type': 'string'}}, 'additionalProperties': False}
fill_box
Fill an axis-aligned box
Fill every cell of a box with one block type. Up to 4096 cells.
Esquema de entrada
{'type': 'object', 'required': ['from', 'to', 'type'], 'properties': {'to': {'type': 'object', 'required': ['x', 'y', 'z'], 'properties': {'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}}, 'additionalProperties': False}, 'from': {'type': 'object', 'required': ['x', 'y', 'z'], 'properties': {'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}}, 'additionalProperties': False}, 'type': {'enum': ['stone', 'dirt', 'grass', 'sand', 'water', 'wood', 'leaves', 'glass', 'metal', 'light', 'obsidian', 'snow', 'brick', 'gold', 'moss'], 'type': 'string'}, 'builder': {'type': 'string'}}, 'additionalProperties': False}
get_build_receipt
Look up a batch receipt
Authoritative historical batch outcome or unknown (absent or expired). No current occupancy guarantee. Public by ID, retained 24 hours.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'pattern': '^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$', 'maxLength': 36, 'minLength': 36, 'description': 'Caller-generated canonical lowercase UUIDv4. Retained for 24 hours; unknown/expired is not proof of non-commit.'}}, 'additionalProperties': False}
get_cube
Read one cube
Return the cube at a coordinate, or null if that cell is empty.
Esquema de entrada
{'type': 'object', 'required': ['x', 'y', 'z'], 'properties': {'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}}, 'additionalProperties': False}
get_overview
Get the overview raster
Occupied cells from the coarse top-surface raster as [index,type,height], plus a small ASCII preview.
Esquema de entrada
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_region
Read a region of cubes
Page through exact cubes in x/z/y order. Pass next_cursor as cursor with the same box until null; concurrent edits require a fresh traversal for reconciliation.
Esquema de entrada
{'type': 'object', 'required': ['x', 'z', 'w', 'd'], 'properties': {'d': {'type': 'integer'}, 'h': {'type': 'integer'}, 'w': {'type': 'integer'}, 'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}, 'limit': {'type': 'integer', 'maximum': 8192, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}
get_template
Plan a positioned structure
Generate a rotated pillar, arch, staircase, room-5x5 or letter-w at a minimum corner. Returns a deduplicated protected batch body; no world read, reservation or mutation. Preview then explicitly build.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['id', 'x', 'y', 'z'], 'properties': {'x': {'type': 'integer', 'maximum': 999, 'minimum': 0}, 'y': {'type': 'integer', 'maximum': 999, 'minimum': 0}, 'z': {'type': 'integer', 'maximum': 999, 'minimum': 0}, 'id': {'enum': ['pillar', 'arch', 'staircase', 'room-5x5', 'letter-w'], 'type': 'string'}, 'type': {'enum': ['stone', 'dirt', 'grass', 'sand', 'water', 'wood', 'leaves', 'glass', 'metal', 'light', 'obsidian', 'snow', 'brick', 'gold', 'moss'], 'type': 'string'}, 'builder': {'type': 'string', 'maxLength': 40}, 'rotation': {'enum': [0, 90, 180, 270], 'type': 'integer', 'default': 0, 'description': 'Rotate around y: 90 maps local +x to +z; then anchor the minimum corner at x,y,z.'}}, 'additionalProperties': False}
get_world_stats
Get world stats
Total cubes, per-block counts, active builders, world bounds, and current limits.
Esquema de entrada
{'type': 'object', 'properties': {}, 'additionalProperties': False}
place_cube
Place one cube
Place or replace a single cube. Coordinates are integers in [0,1000); y=0 is ground.
Esquema de entrada
{'type': 'object', 'required': ['x', 'y', 'z', 'type'], 'properties': {'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}, 'type': {'enum': ['stone', 'dirt', 'grass', 'sand', 'water', 'wood', 'leaves', 'glass', 'metal', 'light', 'obsidian', 'snow', 'brick', 'gold', 'moss'], 'type': 'string'}, 'builder': {'type': 'string'}}, 'additionalProperties': False}
preview_build
Preview a build without writing
Simulate the identical build payload without any persistent writes. Returns validation, replacements, affected bounds and before/after cells. Not a reservation.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['ops'], 'properties': {'ops': {'type': 'array', 'items': {'type': 'object', 'required': ['x', 'y', 'z'], 'properties': {'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}, 'op': {'enum': ['place', 'remove'], 'type': 'string'}, 'type': {'enum': ['stone', 'dirt', 'grass', 'sand', 'water', 'wood', 'leaves', 'glass', 'metal', 'light', 'obsidian', 'snow', 'brick', 'gold', 'moss'], 'type': 'string'}, 'builder': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 512, 'minItems': 1}, 'builder': {'type': 'string'}, 'request_id': {'type': 'string', 'pattern': '^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$', 'maxLength': 36, 'minLength': 36, 'description': 'Caller-generated canonical lowercase UUIDv4. Retained for 24 hours; unknown/expired is not proof of non-commit.'}, 'protect_existing': {'type': 'boolean', 'default': False, 'description': 'Atomically reject accepted edits to cells occupied before the batch; preview is only a KV estimate.'}}, 'additionalProperties': False}
remove_cube
Remove one cube
Clear the cube at a coordinate.
Esquema de entrada
{'type': 'object', 'required': ['x', 'y', 'z'], 'properties': {'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'z': {'type': 'integer'}}, 'additionalProperties': False}
Añadido
clear_mine
17 de September de 2026 a las 07:58
Añadido
fill_box
17 de September de 2026 a las 07:58
Añadido
preview_build
17 de September de 2026 a las 07:58
Añadido
build
17 de September de 2026 a las 07:58
Añadido
remove_cube
17 de September de 2026 a las 07:58
Añadido
place_cube
17 de September de 2026 a las 07:58
Añadido
get_cube
17 de September de 2026 a las 07:58
Añadido
get_region
17 de September de 2026 a las 07:58
Añadido
get_overview
17 de September de 2026 a las 07:58
Añadido
get_world_stats
17 de September de 2026 a las 07:58
Añadido
get_build_receipt
17 de September de 2026 a las 07:58
Añadido
get_template
17 de September de 2026 a las 07:58