Third Life · SDK
Build outside, walk it inside.
Let your own AI agent rough out a scene, prompt it for the details, then import the result into the builder. Or write the scene from a script. Own a plot? Build all of it here and deploy it with your wallet. Everything runs on your computer with Node.js 20 or newer; nothing to install.
- third-life-mcp.mjsAn MCP server: Claude Code, Codex, Claude Desktop, Cursor, VS Code and other agents build through it.
- third-life-pack.mjsPacks a scene JSON and its GLB models into the ZIP the builder imports; makes your plot's folder and deploys it.
- world.schema.jsonThe scene format as a JSON Schema, for scripts in any language.
- README.mdThe full guide: setup for each agent, the tools, the format, limits and troubleshooting.
First scene in 2 minutes
-
Put the server in a folder of its own (Node.js 20 or newer):
mkdir third-life && cd third-life curl -O https://third-life.alercebolson.workers.dev/sdk/third-life-mcp.mjs
On Windows PowerShell, write
curl.exe. -
Give it to Claude Code from that folder:
claude mcp add third-life -- node "$PWD/third-life-mcp.mjs" --scene "$PWD/my-world.json"
-
Start
claudethere and ask: “Use the third-life tools. Read describe_rules, then build a small walled garden with a fountain, benches, cypresses and a pergola. Use prefabs where they fit. After each round look at preview and describe_scene, then export_zip.” -
Open the free builder, go to Share, choose
Import world and pick
my-world.zip. Press Test walk, then keep prompting for the details.
Your plot, like a Decentraland scene
If you own a plot on the mainland, it is a folder on your computer: every 16 m cell of it, its street and its neighbours. Build it with any agent, look at it, then deploy it with your wallet.
Signed in with the wallet that owns the plot. It starts from your draft or your published plot. The plot editor has the same button, under Share.
-
Init. Unzip the template, or make it with the pack command:
node third-life-pack.mjs init --plot 5
-
Build with your agent in that folder. Its README has the line for Claude
Code (a folder made by
initalso has a.mcp.jsonit reads); Cursor and VS Code read their own setups there. Codex:codex mcp add third-life -- node "$PWD/third-life-mcp.mjs" --scene "$PWD/scene.json"
Positions run across the whole plot. Walls and floors may cross cell borders, where they are cut into one piece per cell; everything else stays inside one cell, and the tools say where it fits. -
Preview.
previewdraws the plot with its numbered cells and the street entrance;describe_scenewalks it from the street. -
Deploy.
node third-life-pack.mjs deploy
Your browser opens the deploy page, which reads the plot from your computer (127.0.0.1 only, a random link for 15 minutes). Signed in with your wallet, you see what changes cell by cell and approve it in your wallet. No key ever leaves your wallet. - Visit your plot on the mainland, and deploy again whenever you change it.
Use it from ChatGPT or Claude
ChatGPT on the web and Claude cannot run a file on your computer, so the site itself is the server. Add this address as a connector:
https://third-life.alercebolson.workers.dev/mcp
Your agent gets the same building tools, with the same checks, and builds a draft of your own plot kept for your wallet. You sign in once with your Tezos wallet and allow it. It can never publish: you open its draft in your plot editor, walk it, and publish it there with your wallet’s signature. It cannot sign, spend tez, upload files or see anything else of your account. You need an invited wallet with a claimed plot.
ChatGPT (web, a plan that allows custom MCP servers / developer mode):
- Open chatgpt.com/plugins, press +, choose Add custom MCP server. (Older menus: Settings › Apps & Connectors › Advanced settings › Developer mode, then Create.)
- Name
Third Life; connection: the address above, ending in/mcp. - Authentication OAuth, client ID and secret empty. Accept the warning and create it.
- A Third Life page opens: sign in with your wallet and press Allow.
-
In a new chat type
@, pick Third Life and ask: “Use Third Life. Read describe_rules, then build a small gallery on my plot with a courtyard and a fountain. After each round look at preview and describe_scene. When it is done, run validate and deploy.” ChatGPT asks you to confirm each change; that is its own safety step.
Claude (claude.ai, Desktop, mobile):
- Settings › Connectors › Add custom connector.
- Name
Third Life, URL the address above, advanced fields empty. - Connect, sign in with your wallet on the Third Life page, Allow.
- Turn Third Life on in a chat’s tools menu and ask as above.
Claude Code:
claude mcp add --transport http third-life https://third-life.alercebolson.workers.dev/mcp,
then /mcp to sign in. Codex:
codex mcp add third-life --url https://third-life.alercebolson.workers.dev/mcp,
then codex mcp login third-life. Agents that only take a header can use an
access token from your account › Connected agents.
From draft to published plot. When the agent calls deploy it
gives you a link to your plot editor, Share › AI agents. Open in the
editor puts its version in your editor as one step (Undo returns to yours);
Send my draft gives it your version, never over a newer one of its own. Then
publish from Share as always: your wallet signs, no tez is spent.
Disconnect an agent at any time in your account › Connected agents. Up to 4 drafts per wallet and 1,500 tool calls a day. Model files and NFTs are added by you in the plot editor.
Other agents
Use absolute paths. On Windows, write them with forward slashes in JSON
(C:/Users/you/third-life/my-world.json).
Codex CLI (OpenAI), from your folder:
codex mcp add third-life -- node "$PWD/third-life-mcp.mjs" --scene "$PWD/my-world.json"
Claude Desktop, in claude_desktop_config.json (Settings › Developer › Edit Config), then restart it:
{
"mcpServers": {
"third-life": {
"command": "node",
"args": ["/Users/you/third-life/third-life-mcp.mjs", "--scene", "/Users/you/third-life/my-world.json"]
}
}
}
Cursor, in .cursor/mcp.json:
{
"mcpServers": {
"third-life": {
"command": "node",
"args": ["${workspaceFolder}/third-life-mcp.mjs", "--scene", "${workspaceFolder}/my-world.json"]
}
}
}
VS Code, in .vscode/mcp.json:
{
"servers": {
"third-life": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/third-life-mcp.mjs", "--scene", "${workspaceFolder}/my-world.json"]
}
}
}
What your agent can do
Rough out with rooms, walls, floors and stairs a visitor can climb, or with the old-town
prefabs; hang empty frames for your NFTs; refine object by object. After each round it
can look: preview returns plans and elevations as an image, and
describe_scene walks the scene with the game’s own movement and says which
floors a visitor cannot reach. The same tools work inside the builder page, for agents
that drive it there.
Import it
- Open the free builder.
- Go to Share and choose Import world.
- Pick the ZIP. Walk it, then keep prompting your agent for the details.
A scene is one 16 × 16 m cell, in metres, y up; a plot is several, built and deployed whole as above. If the tools do not show up, the README has a troubleshooting section.