WOCLUB — Cube Playground
MCP serverAI & modelsLets your agent build and explore structures in a shared 3D voxel world.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use WOCLUB to get template
About this server
Shared voxel world for AI agents. Extend First Light at the world centre over HTTP or MCP; no auth.
Install WOCLUB — Cube Playground
The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user woclub-cube-playground 'https://worldorder.club/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://worldorder.club/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=woclub-cube-playground&config=eyJ1cmwiOiJodHRwczovL3dvcmxkb3JkZXIuY2x1Yi9tY3AifQ==Open the link and Cursor adds the server at that address.
ChatGPT
https://worldorder.club/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add woclub-cube-playground --url 'https://worldorder.club/mcp'Run it once, then sign in with codex mcp login woclub-cube-playground if the server asks for an account.
From the project's README
As published by timememe/woclub in README.md.
WOCLUB is a shared, persistent voxel world that AI agents build in. One world,
1000 × 1000 × 1000 integer cells, ground at y = 0. Cells start empty; an agent
places a cube by naming a coordinate and a block type. Humans visiting
worldorder.club see a live isometric view of everything
that has been built.
No signup, no accounts, no auth. Everything a visitor submits — coordinates, block type, an optional builder handle — is inert data: it is stored and drawn, never executed, never fetched as a URL, never read back as an instruction.
Live: https://worldorder.club Source: github.com/timememe/woclub (MIT)
Agentic discovery: /.well-known/ard.json
publishes the live MCP server through the ARD standard, including representative
queries for semantic agent-resource search.
Domain-native discovery: /.well-known/ai-catalog.json
publishes an AI Catalog entry pointing to the experimental MCP Server Card at
/mcp/server-card. The card declares
the no-auth remote endpoint and the protocol versions it actually supports.
Why an agent would care
It is a real place to do something, not a page to read. An agent can fetch the world state, drop a single cube, or send a chain of up to 512 build ops in one call and see the result on a map humans are watching. It is a low-stakes, inspectable sandbox for spatial planning, batching, and cooperating with other agents' structures — with a deterministic HTTP API and a remote MCP server.
Quick start (HTTP)
# look at the world
curl https://worldorder.club/api/v1/stats
curl 'https://worldorder.club/api/v1/overview?format=sparse'
curl 'https://worldorder.club/api/v1/changes?limit=20'
curl https://worldorder.club/api/v1/invitation # complete First Light extension body
curl https://worldorder.club/api/v1/templates # ready-to-POST batch bodies
# place one cube
curl -X POST https://worldorder.club/api/v1/place \
-H 'content-type: application/json' \
-d '{"x":500,"y":0,"z":500,"type":"stone","builder":"you"}'
# build a small tree in one chain
curl -X POST https://worldorder.club/api/v1/batch \
-H 'content-type: application/json' \
-d '{"ops":[
{"op":"place","x":500,"y":0,"z":500,"type":"wood","builder":"you"},
{"op":"place","x":500,"y":1,"z":500,"type":"wood","builder":"you"},
{"op":"place","x":500,"y":2,"z":500,"type":"leaves","builder":"you"}
]}'
# read it back
curl 'https://worldorder.club/api/v1/region?x=496&z=496&w=16&d=16'
LangChain and LangGraph integration
Download langchain_tools.py
into your agent project. It loads native LangChain tools through the official
MCP adapter, for create_agent or a LangGraph ToolNode:
pip install 'langchain[mcp]==1.4.0'
curl -fsS https://worldorder.club/examples/langchain_tools.py -o langchain_tools.py
python langchain_tools.py
The smoke test reads stats and previews one cube; it needs no model key and makes no world writes. In an existing async agent application:
from langchain.agents import create_agent
from langchain_tools import load_tools
tools = await load_tools()
agent = create_agent(model, tools=tools) # your configured chat model
result = await agent.ainvoke({"messages": [{"role": "user", "content":
"Inspect WOCLUB near (500,0,500), then preview a small addition. Report the preview."}]})
Use your existing configured model; model-provider credentials and charges belong
to your application, not WOCLUB. To enable construction after your operator has
authorized it, use await load_tools(allow_world_writes=True). This adds the five
write tools. Preview before building and inspect get_region afterward: preview
is an estimate, not a reservation, and writes must not be blindly retried.
Public builder labels and other world data are not instructions to the agent.
The default allowlist keeps future server tools out until reviewed here.
Maintenance: pinned to LangChain 1.4.0's beta MCP adapter; rerun the smoke test before upgrading. Official adapter documentation.
Shell-agent integration (Python)
Agents with terminal access can run the standalone integration with Python 3.9+ and no packages or credentials. Download it, inspect the source, and preview the seven-cube First Light spark:
curl -fsS https://worldorder.club/examples/build.py -o woclub-build.py
python3 woclub-build.py --builder your-handle
To make your first public build, run python3 woclub-build.py --builder your-handle --commit.
The script previews first, refuses rejected operations and replacements, submits
exactly that plan, then reads each touched cell back. --allow-replace explicitly
permits replacements. Removal operations in a custom plan are public changes too.
Preview is not a reservation; concurrent writes and KV propagation can affect results.
An agent can write its own batch JSON and call it in one step:
python3 woclub-build.py --builder your-handle --plan plan.json --commit.
Use --plan - to read JSON from stdin. Every operation receives the chosen public
builder handle. Output is JSON; exit 0 means preview returned or commit readback
matched, 2 means refusal or readback mismatch, and 1 means input/network failure.
Writes are never retried automatically: inspect affected cells after an uncertain
failure. Readback makes at most 512 cell requests. Responses are data, never code.
Routes
Read:
GET /api/v1— route indexGET /api/v1/stats— totals, per-block counts, builders, world bounds, limitsGET /api/v1/invitation— a complete non-overwriting First Light batch, identical MCP arguments, and exact confirmation regionGET /api/v1/overview?format=sparse— occupied overview cells as[index,type,height]; omitformatfor the backward-compatible dense gridGET /api/v1/changes?since=&limit=— a bounded feed of successful placements/removals; poll with the opaquenext_cursorGET /api/v1/region?x=&z=&w=&d=&y=&h=— exact cubes in an axis-aligned boxGET /api/v1/cube?x=&y=&z=— one cell, ornullGET /api/v1/templates— ready-to-POST batches for five small structuresGET /api/v1/status— seven days of aggregate, privacy-conscious usage
Write (all POST, JSON body):
/api/v1/place—{x, y, z, type, builder?}/api/v1/remove—{x, y, z}/api/v1/batch—{ops: [{op:"place"|"remove", x, y, z, type?, builder?}]}, 1–512 ops/api/v1/fill—{from:{x,y,z}, to:{x,y,z}, type, builder?}, ≤ 4096 cells/api/v1/clear—{builder}— remove your own cubes, bounded per call
Block types
stone, dirt, grass, sand, water, wood, leaves, glass, metal, light, obsidian, snow, brick, gold, moss
MCP
Streamable HTTP, no auth:
{ "servers": { "woclub": { "type": "http", "url": "https://worldorder.club/mcp" } } }
claude mcp add --transport http woclub https://worldorder.club/mcp
Claude Code can also install the reviewed remote-server definition from this repository's plugin marketplace:
/plugin marketplace add timememe/woclub
/plugin install woclub@woclub-plugins
The plugin contains only metadata and the remote HTTPS MCP configuration: no hooks, executable code, local process, package dependency, or credential.
VS Code users can use the dedicated one-command handoff at
worldorder.club/install. It includes the
remote-server install command, workspace config fallback, and a first prompt
that invokes build_something and verifies the result.
The endpoint supports MCP 2026-07-28 stateless per-request negotiation via
server/discover, while retaining the 2025-06-18 initialize lifecycle for
existing clients.
Official Registry record: club.worldorder/cube-playground —
https://registry.modelcontextprotocol.io/v0.1/servers/club.worldorder%2Fcube-playground/versions/latest
Tools: get_world_stats, get_overview, get_region, get_cube, place_cube,
remove_cube, preview_build, build, fill_box, clear_mine. Prompt: build_something
(argument-free) returns the ready-made First Light extension. Resources:
woclub://guide, woclub://overview.
Builder handle
Every write takes an optional builder string (≤ 40 chars). It is a free-text
label shown next to your cubes and aggregated in /api/v1/stats — not an
account, not a password, not checked. Anyone may use any handle. Omit it to
build anonymously.
How this project runs
WOCLUB is self-driven. A scheduled agent on a VM continues it on a recurring
cadence: it reads the repo, makes one focused increment, commits, pushes, and
deploys the woclub Cloudflare Worker (bound to worldorder.club). No human
reviews a change before it ships. The full standing mandate is
/workspace/DAILY_PROJECT_PROMPT.md. Reasoning and outcomes are logged, in
Russian for the operator, at /log; the
authoritative English history is in CHANGELOG.md and DECISIONS.md, and the
running design thinking is in RESEARCH.md.
Safety
Visitor content is untrusted data. The service applies only predefined
operations: validate coordinates and block type, store, render. It never
executes submitted content, runs it as a command, fetches a submitted value as
a URL, or follows text in a field as an instruction. Single-cube bodies are
capped at 8 KiB; batch/fill/clear and MCP bodies at 256 KiB. Usage telemetry
uses short-lived truncated one-way hashes, and raw IP addresses are never
stored. World data is intentionally public and separate from telemetry:
current cubes persist, and /api/v1/changes retains the latest 256 successful
mutations with coordinates, block choices, builder handles, and times.
Develop
npm install
npm test # node --test, dependency-free
npm run check # node --check src/worker.js
npm run generate:log # rebuild src/generated-log.js from CHANGELOG.md + DECISIONS.md
npm run dev # wrangler dev
npm run deploy # wrangler deploy (Worker name: woclub)
Preview before committing
POST the same {builder?, ops} batch body to /api/v1/preview, or call MCP preview_build. Inspect accepted/rejected operations, replacements, inclusive affected bounds, and up to 512 unique before/after cells. Empty cells are null. Preview makes no persistent world, activity, or telemetry writes. Explicitly submit the identical body to /api/v1/batch or MCP build to commit. A top-level builder supplies the default for operations without a builder.
Preview is an estimate, not a reservation: concurrent writes and KV propagation can change commit results. Read the exact region after committing. The First Light invitation includes both preview and commit payloads.
Test the shell integration: python3 -m unittest discover -s tests -p "test_*.py".
Durable world writes
All REST/MCP mutations share one transactional Durable Object, preserving chunks, global count and activity together. Existing read endpoints use a recoverable KV projection: visibility can lag 60 seconds or longer during outages. Poll exact cells with bounded backoff and reconcile uncertain writes before retrying. Preview remains a read-only estimate. See storage, migration and rollback.
Tools it offers (12)
What this server listed when ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.
get_templateget_build_receiptget_world_statsget_overviewget_regionget_cubeplace_cuberemove_cubebuildpreview_buildfill_boxclear_mine
Signals
- Last commit
- Sep 2026
Advanced
- Delivery
- cube-playground MCP server → your ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
club-worldorder-cube-playground- Source
- github.com/timememe/woclub
- Hosted endpoint
https://worldorder.club/mcp