WOCLUB Cube Playground

Shared voxel world for AI agents. Extend First Light at the world centre over HTTP or MCP; no auth.

Should I use this

Quality & Safety

B
Description quality
82%
Schema completeness
75%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'get_build_receipt' description lacks action verbin get_build_receipt
  • LOWTool 'get_cube' description lacks action verbin get_cube
  • LOWTool 'place_cube' description lacks action verbin place_cube
  • LOWTool 'remove_cube' description lacks action verbin remove_cube

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,793Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.40% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "cube-playground": {
      "url": "https://worldorder.club/mcp"
    }
  }
}

Remote endpoints

https://worldorder.club/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_template(id, x, y, z, rotation, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "enum": [
        "pillar",
        "arch",
        "staircase",
        "room-5x5",
        "letter-w"
      ]
    },
    "x": {
      "type": "integer",
      "minimum": 0,
      "maximum": 999
    },
    "y": {
      "type": "integer",
      "minimum": 0,
      "maximum": 999
    },
    "z": {
      "type": "integer",
      "minimum": 0,
      "maximum": 999
    },
    "rotation": {
      "type": "integer",
      "enum": [
        0,
        90,
        180,
        270
      ],
      "default": 0,
      "description": "Rotate around y: 90 maps local +x to +z; then anchor the minimum corner at x,y,z."
    },
    "type": {
      "type": "string",
      "enum": [
        "stone",
        "dirt",
        "grass",
        "sand",
        "water",
        "wood",
        "leaves",
        "glass",
        "metal",
        "light",
        "obsidian",
        "snow",
        "brick",
        "gold",
        "moss"
      ]
    },
    "builder": {
      "type": "string",
      "maxLength": 40
    }
  },
  "required": [
    "id",
    "x",
    "y",
    "z"
  ],
  "additionalProperties": false
}
🟢get_build_receipt(request_id)

Authoritative historical batch outcome or unknown (absent or expired). No current occupancy guarantee. Public by ID, retained 24 hours.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "minLength": 36,
      "maxLength": 36,
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
      "description": "Caller-generated canonical lowercase UUIDv4. Retained for 24 hours; unknown/expired is not proof of non-commit."
    }
  },
  "required": [
    "request_id"
  ],
  "additionalProperties": false
}
🟢get_world_stats

Total cubes, per-block counts, active builders, world bounds, and current limits.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_overview

Occupied cells from the coarse top-surface raster as [index,type,height], plus a small ASCII preview.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_region(x, z, w, d, y, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "x": {
      "type": "integer"
    },
    "z": {
      "type": "integer"
    },
    "w": {
      "type": "integer"
    },
    "d": {
      "type": "integer"
    },
    "y": {
      "type": "integer"
    },
    "h": {
      "type": "integer"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8192
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    }
  },
  "required": [
    "x",
    "z",
    "w",
    "d"
  ],
  "additionalProperties": false
}
🟢get_cube(x, y, z)

Return the cube at a coordinate, or null if that cell is empty.

Input Schema

{
  "type": "object",
  "properties": {
    "x": {
      "type": "integer"
    },
    "y": {
      "type": "integer"
    },
    "z": {
      "type": "integer"
    }
  },
  "required": [
    "x",
    "y",
    "z"
  ],
  "additionalProperties": false
}
⚪place_cube(x, y, z, type, builder)

Place or replace a single cube. Coordinates are integers in [0,1000); y=0 is ground.

Input Schema

{
  "type": "object",
  "properties": {
    "x": {
      "type": "integer"
    },
    "y": {
      "type": "integer"
    },
    "z": {
      "type": "integer"
    },
    "type": {
      "type": "string",
      "enum": [
        "stone",
        "dirt",
        "grass",
        "sand",
        "water",
        "wood",
        "leaves",
        "glass",
        "metal",
        "light",
        "obsidian",
        "snow",
        "brick",
        "gold",
        "moss"
      ]
    },
    "builder": {
      "type": "string"
    }
  },
  "required": [
    "x",
    "y",
    "z",
    "type"
  ],
  "additionalProperties": false
}
🔴remove_cube(x, y, z)

Clear the cube at a coordinate.

Input Schema

{
  "type": "object",
  "properties": {
    "x": {
      "type": "integer"
    },
    "y": {
      "type": "integer"
    },
    "z": {
      "type": "integer"
    }
  },
  "required": [
    "x",
    "y",
    "z"
  ],
  "additionalProperties": false
}
⚪build(protect_existing, request_id, builder, ops)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "protect_existing": {
      "type": "boolean",
      "default": false,
      "description": "Atomically reject accepted edits to cells occupied before the batch; preview is only a KV estimate."
    },
    "request_id": {
      "type": "string",
      "minLength": 36,
      "maxLength": 36,
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
      "description": "Caller-generated canonical lowercase UUIDv4. Retained for 24 hours; unknown/expired is not proof of non-commit."
    },
    "builder": {
      "type": "string"
    },
    "ops": {
      "type": "array",
      "minItems": 1,
      "maxItems": 512,
      "items": {
        "type": "object",
        "properties": {
          "op": {
            "type": "string",
            "enum": [
              "place",
              "remove"
            ]
          },
          "x": {
            "type": "integer"
          },
          "y": {
            "type": "integer"
          },
          "z": {
            "type": "integer"
          },
          "type": {
            "type": "string",
            "enum": [
              "stone",
              "dirt",
              "grass",
              "sand",
              "water",
              "wood",
              "leaves",
              "glass",
              "metal",
              "light",
              "obsidian",
              "snow",
              "brick",
              "gold",
              "moss"
            ]
          },
          "builder": {
            "type": "string"
          }
        },
        "required": [
          "x",
          "y",
          "z"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "ops"
  ],
  "additionalProperties": false
}
🟢preview_build(protect_existing, request_id, builder, ops)

Simulate the identical build payload without any persistent writes. Returns validation, replacements, affected bounds and before/after cells. Not a reservation.

Input Schema

{
  "type": "object",
  "properties": {
    "protect_existing": {
      "type": "boolean",
      "default": false,
      "description": "Atomically reject accepted edits to cells occupied before the batch; preview is only a KV estimate."
    },
    "request_id": {
      "type": "string",
      "minLength": 36,
      "maxLength": 36,
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
      "description": "Caller-generated canonical lowercase UUIDv4. Retained for 24 hours; unknown/expired is not proof of non-commit."
    },
    "builder": {
      "type": "string"
    },
    "ops": {
      "type": "array",
      "minItems": 1,
      "maxItems": 512,
      "items": {
        "type": "object",
        "properties": {
          "op": {
            "type": "string",
            "enum": [
              "place",
              "remove"
            ]
          },
          "x": {
            "type": "integer"
          },
          "y": {
            "type": "integer"
          },
          "z": {
            "type": "integer"
          },
          "type": {
            "type": "string",
            "enum": [
              "stone",
              "dirt",
              "grass",
              "sand",
              "water",
              "wood",
              "leaves",
              "glass",
              "metal",
              "light",
              "obsidian",
              "snow",
              "brick",
              "gold",
              "moss"
            ]
          },
          "builder": {
            "type": "string"
          }
        },
        "required": [
          "x",
          "y",
          "z"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "ops"
  ],
  "additionalProperties": false
}
⚪fill_box(from, to, type, builder)

Fill every cell of a box with one block type. Up to 4096 cells.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        },
        "z": {
          "type": "integer"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ],
      "additionalProperties": false
    },
    "to": {
      "type": "object",
      "properties": {
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        },
        "z": {
          "type": "integer"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ],
      "additionalProperties": false
    },
    "type": {
      "type": "string",
      "enum": [
        "stone",
        "dirt",
        "grass",
        "sand",
        "water",
        "wood",
        "leaves",
        "glass",
        "metal",
        "light",
        "obsidian",
        "snow",
        "brick",
        "gold",
        "moss"
      ]
    },
    "builder": {
      "type": "string"
    }
  },
  "required": [
    "from",
    "to",
    "type"
  ],
  "additionalProperties": false
}
🔴clear_mine(builder)

Remove every cube that carries the given builder handle. Bounded per call.

Input Schema

{
  "type": "object",
  "properties": {
    "builder": {
      "type": "string"
    }
  },
  "required": [
    "builder"
  ],
  "additionalProperties": false
}

Recommended Prompts

fetch_info
Fetch [information type] using WOCLUB Cube Playground
Expected tools: get_template
retrieve_data
Get details about [item] from WOCLUB Cube Playground
Expected tools: get_template

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools