WOCLUB Cube Playground
Shared voxel world for AI agents. Extend First Light at the world centre over HTTP or MCP; no auth.
사용해야 할까요
품질 및 안전성
발견 사항 (4)
- LOWget_build_receipt에서
- LOWget_cube에서
- LOWplace_cube에서
- LOWremove_cube에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"cube-playground": {
"url": "https://worldorder.club/mcp"
}
}
}원격 엔드포인트
https://worldorder.club/mcpstreamable-http할 수 있는 일
도구 목록
도구 (12)
🟢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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_overview
Occupied cells from the coarse top-surface raster as [index,type,height], plus a small ASCII preview.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"builder": {
"type": "string"
}
},
"required": [
"builder"
],
"additionalProperties": false
}권장 프롬프트
get_templateget_template커뮤니티
증거