Skip to main content
Michelangelo ships a remote MCP server — AI agents like Claude, Cursor, and any MCP-compatible client can connect directly and operate on the platform on behalf of a user: list projects, start AI generations, and wait for them to finish.
The server speaks Streamable HTTP (stateless) and implements the MCP authorization spec: when your client connects, it runs a standard OAuth 2.1 + PKCE flow automatically — Dynamic Client Registration, consent screen, token — with zero manual setup. No API keys to copy, nothing to install.
The MCP server is a pure client of the public API: every tool call goes through the same contract, the same per-user permissions (RLS), and the same server-side prompt evaluation. Anything the API can’t do, MCP can’t do either.

Connect your agent

Add a custom MCP connector with the server URL:
On first use, a browser window opens the Michelangelo consent screen. Sign in with Google, GitHub, an email code, or your password — the same Michelangelo account you use in the app — approve, and you’re connected. Claude handles registration and tokens for you.

Available tools

create_job accepts an optional model tier — light (faster, cheaper, for simple changes) or full (deepest reasoning, for complex builds). The tiers are vendor-neutral: the concrete model behind each tier is a server-side detail that improves over time without breaking your integration. If omitted, server-side prompt evaluation assigns the tier.

A typical agent flow

Generations can take a long time (complex builds up to ~1 hour). wait_for_job never hangs forever: it waits up to your budget with exponential backoff, then hands control back with the current status. A failed job is a normal outcome, not a tool error — the agent reads job.error and can react (fix the prompt, retry).

Current limits

  • Project creation is not available via API/MCP yet — jobs run on projects the user already created in the Michelangelo app. create_job on a nonexistent project returns an error; use list_projects to discover valid ids.
  • Prompt evaluation quota applies to create_job (per-user, shared with the app). Exceeding it returns a rate_limited tool error with a Retry-After hint.
  • Scopes: tokens currently carry the email scope only; per-user RLS on the underlying data is what actually gates access.