close
Skip to main content

MCP Server

SpAItial hosts a remote Model Context Protocol (MCP) server so AI agents — Cursor, Claude, VS Code, Cline, and anything else that speaks MCP — can generate and manage 3D worlds directly, without you writing any API glue.

https://mcp.spaitial.ai/mcp

It's a stateless, streamable-HTTP server. Every tool maps 1:1 onto the Developer API, so an agent can prompt → generate → poll → download a splat or mesh entirely on its own.

Discovery

Agents that support MCP Server Cards can discover the hosted server from:

https://mcp.spaitial.ai/.well-known/mcp/server-card.json

The card advertises the streamable-HTTP endpoint, auth schemes, and supported MCP surfaces. A compatibility alias is also available at https://mcp.spaitial.ai/.well-known/mcp.json.

Install

Pick your agent below. Everywhere you see spt_live_YOUR_KEY, replace it with your real key. The server accepts the key as either X-Spaitial-Api-Key: <key> or Authorization: Bearer <key>.

Add spaitial MCP server to Cursor

Clicking the badge opens Cursor and pre-fills the server. After it's added, open Settings → MCP, edit the spaitial server, and replace the placeholder key with your own.

Tools

ToolMaps to
list_modelsGET /v1/models
create_worldPOST /v1/worlds — text / image URL / base64 / file_id / panorama_id, is_pano, output_format, visibility, webhook, idempotency
edit_panoramaPOST /v1/panoramas/edit — edit a completed API-created world/request, or iterate on a pano_..., with an optional reference image set
list_panoramasGET /v1/panoramas
get_panoramaGET /v1/panoramas/:id
get_edited_panorama_download_urlGET /v1/panoramas/:id/download (resolved signed URL)
get_world_statusGET /v1/worlds/requests/:id/status
get_worldGET /v1/worlds/requests/:id
list_world_requestsGET /v1/worlds/requests
get_splat_download_urlGET /v1/worlds/requests/:id/splat (resolved signed URL)
get_panorama_download_urlGET /v1/worlds/requests/:id/panorama (resolved signed URL)
update_worldPATCH /v1/worlds/requests/:id
cancel_worldPOST /v1/worlds/requests/:id/cancel
start_mesh_exportPOST /v1/worlds/requests/:id/exports/:type
get_mesh_exportGET /v1/worlds/requests/:id/exports/:type

Each tool returns the same JSON shapes documented in the API reference, including the standard error envelope.

Visibility scope: connector vs. web app

list_world_requests (and the individual get_world* lookups) only see worlds generated through the API/connector with your API key. Worlds you create in the Spaitial web app (dashboard) are not listed by the connector — even when the API key belongs to the same account.

For an automation or agent flow, generate through the connector (create_world) so the pipeline can read the result back. If you kick off generation in the web app, the connector won't be able to discover or download that world.

Example prompts

Once installed, just ask your agent in natural language:

  • "Generate a Spaitial world of an empty cozy reading nook and give me the splat download URL when it's done."
  • "Edit world <world-id>: change the rug to yellow, then show me the edited panorama."
  • "Add this attached sofa to pano_..., then create a new world from the result."
  • "List my recent world generations and their statuses."
  • "Export a simplified collision mesh for request req_... and download it when ready."

The agent calls create_world, polls get_world_status, then get_splat_download_url / start_mesh_export — the same flow you'd script against the REST API, driven by the model.

For app-style edits, the agent calls edit_panorama, lets you inspect the returned pano_... with get_edited_panorama_download_url, optionally iterates by passing that pano_... back to edit_panorama, then calls create_world with panorama_id when you're satisfied.

Notes

  • Authentication is identical to the REST API — the same spt_live_ / spt_test_ keys and scopes apply per tool.
  • Generation time is ~5–10 minutes (Echo 2 - Standard); agents should poll get_world_status rather than block.
  • Panorama edits are synchronous and return a pano_... artifact. There is no aspect-ratio option; edited panoramas stay valid for world generation.
  • Downloads return short-lived signed URLs (~5 min); resolve them just before fetching.
  • Prefer scripting instead? See the LLM Skills page for a self-contained REST reference, or install the skill with npx skills add spaitial-dev/spaitial-api-skill.