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
- Claude
- Cursor
- Other clients
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
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_jobon a nonexistent project returns an error; uselist_projectsto discover valid ids. - Prompt evaluation quota applies to
create_job(per-user, shared with the app). Exceeding it returns arate_limitedtool error with aRetry-Afterhint. - Scopes: tokens currently carry the
emailscope only; per-user RLS on the underlying data is what actually gates access.

