Build a world
with a conversation.
Worldly MCP connects an AI partner to your projects and scenes. It can inspect a scene, enter the editor as a named collaborator, and move its camera in realtime.
Your project access
The connection sees the same projects and scenes your Worldly account can open.
Collaborative by default
Each agent is a distinct peer with a visible camera, colour, and name tag.
Read-only first
The initial tools inspect scene content and update presence; they cannot edit a scene.
Connect an MCP client
Add the hosted endpoint to a remote-MCP client. The client opens Worldly in your browser, where you sign in and approve its read and presence permissions.
Use https://mcp.had3d.app/mcp. Authentication is discovered by the
client and completed through the Worldly editor; no API key is copied into a prompt.
Connect in three steps
-
1
Add the server
Enter
https://mcp.had3d.app/mcpin a client that supports remote MCP. -
2
Approve access
Sign in at the Worldly editor and review the requested read and presence scopes.
-
3
Connect a partner
Choose a name—or use Agent—then enter a scene and move its camera.
Agents are collaborators,
not a second write path.
MCP uses Worldly membership data and the existing per-project room. Scene reads come from the same stored document the editor opens, while camera presence is broadcast through the same peer channel used by people.
A city generated by an agent uses the same validation, conflict handling, run attribution, and undo stack as a city generated from the editor.
Tool catalog
The first tool set establishes authenticated access, read-only scene inspection, and editor-visible camera presence. Identity is handled automatically on connect.
list_projectsList every project the connected account can access.
list_scenesList the scenes in one project.
inspect_sceneRead scene structure with paged entities.
connect_agentEnter a scene with an optional name, defaulting to Agent.
move_cameraMove its position, look target, and lens in realtime.
disconnect_agentRemove it from the project room immediately.
No tools match that search.
A partner you can see.
Connecting an agent publishes a synthetic camera through the project room. Every editor on that scene sees the same frustum and name tag update.
- Distinct agent identity
- Realtime camera updates
- Scene-specific name tag
- No raw entity writes
- No whole-document overwrite
- No bypass around project membership
Scene editing comes
through collaboration.
Generator and scene-editing tools are intentionally not exposed in the first phase. They will arrive after collaborative operations can attribute, validate, and undo an agent change through the project room.
const cityGrid = {
id: "roads.cityGrid",
description: "Create a seeded city road network…",
params: z.object({
seed: z.number(),
blockSize: z.number().default(120),
}),
run(params, context) { /* emit entities */ },
};
registry.registerGenerator(cityGrid);
Tool schema
Tools have stable names, descriptions written for a client that may not see the viewport, and strict JSON Schema inputs.
{
"name": "move_camera",
"description": "Move a connected agent camera…",
"inputSchema": {
"type": "object",
"properties": {
"position": { "type": "array", "minItems": 3 },
"target": { "type": "array", "minItems": 3 }
},
"required": ["position", "target"]
}
}
defaultsUp and lens have useful editor defaults.
vectorsPosition and target are three-number world coordinates.
descriptionsWritten for an agent that may not see the viewport.
Errors
Failures are reported at the tool boundary and do not mutate scene documents.
invalid argumentsA required id or camera value is absent or has the wrong shape.
not accessibleThe project or agent is not available to the connected account.
not connectedMove was called before the agent entered a scene.
expired authorizationThe browser consent request was not completed within ten minutes.
Account access, checked per project.
OAuth grants read and presence scopes to your account. Every tool still checks current project membership and agent ownership; credentials never enter a scene or prompt.
Approve read and presence scopes in the Worldly editor.
Each partner has its own agent id, colour, and name tag.
Remote calls check project access when each tool runs.
The editor session token is never handed to the MCP client.