Reference

MCP server

Rendel's MCP tools, which a coding agent uses to set up or sync an app, and how a refusal comes back.

Rendel runs an MCP server at https://rendel.ai/api/mcp (streamable HTTP, stateless JSON-RPC). A coding agent connects to it, signs in through your browser for one app, and uses these tools to fill in the console while it works in your code. Set up with AI says how to connect Claude Code.

The tools call the same operations as the Setup API, so either path writes the same rows. Their names and descriptions never change for an app: an allow rule on mcp__rendel__* approves exactly these.

Tools

ToolWhat it does
rendel_start({app, tool, model?, os?, detected?})Call first. Connects to the app named in the prompt (app, its slug) and tells Overview the agent has connected. Returns the app, whether this is a setup or a sync (and, for a sync, the change the developer described), both publishable keys, the SDK versions and snippets, and the setup guide. Calling it again is harmless
rendel_get_contextWhat Rendel already holds: links and description, what was read from the app's website, the current appearance, experience, knowledge, actions and screens (each with its external_key and origin), the latest build's manifest, and facts
rendel_report_progress({events, detected?})Progress on the steps the server cannot see (discover, install, identity, verify), or a step skipped or failed; up to 50 events a call
rendel_set_appearanceThe look, from the app's theme, with where each value was read from, into the draft. Answers with any contrast warnings and their fixes
rendel_upload_logo({filename, content_base64})The logo from the repository: PNG, JPEG, WebP or SVG, up to 2 MB, as base64, into the draft
rendel_set_experienceName, tone, instructions, guardrails, topics to decline, languages, welcome title and line, up to four suggestions, into the draft
rendel_upsert_knowledge({items})Public URLs (Rendel fetches them) or texts written from the app's code and copy, by external_key; up to 25 items and 2 MB a call. {op: "archive", external_key} archives one
rendel_declare_screens({screens, archive})The screens the code registers with registerRoute, with the file and deep link; shown as planned until a build proves them
rendel_upsert_actions({items})The app's REST endpoints as HTTP actions, by external_key, up to 50 a call. auth: "user" sends the signed-in person's token (https only); one that needs a shared key is saved off
rendel_status({wait_for?})What the server knows now: the app has called in, knowledge is indexed, screens still missing, the Go live checks. wait_for (app_ready or knowledge_ready) waits up to about 50 seconds for that flag
rendel_run_smoke({latest?})Three to five questions from the configuration, each judged grounded or backed by an action; up to 2.5 minutes. latest: true returns the last run
rendel_complete({summary, files_changed, human_todos})Finishes with a summary, the files changed and the to-dos. A first setup also publishes the drafts and goes live when its four checks pass. Ends the session
rendel_fail({reason, step?})Stops with the reason and the step, shown on Overview. Ends the session

On a live app (a sync) every write becomes a proposal in Sync review instead of a change.

Refusals

A refusal comes back as a tool result with isError: true and a fixed message, so the agent reads it and carries on or stops. Only a missing or expired sign-in is an HTTP 401. Nothing in a result is text Rendel read from elsewhere: rendel_get_context gives ids, titles, addresses and external_keys, never a crawled page.

WhenThe result says
A write carries something that looks like a credentialWhich field, and that keys are entered in the console
A value fails its schemaThe field and what it expects
The session has ended or been stoppedThat the session is closed; start again from Overview
The app is live and this is a setupTo use Sync with code

Access

The agent signs in with OAuth 2.1: you approve it in your browser for one app, and the grant lasts until that setup ends, with access tokens that last an hour, refreshed only while the session is open. Stop the session (on Overview, or Settings → AI setup sessions) and the agent's access ends at its next call. Nothing is stored in your repository or your prompt. Clients find the server's details at:

  • https://rendel.ai/.well-known/oauth-protected-resource/api/mcp
  • https://rendel.ai/.well-known/oauth-authorization-server (PKCE with S256 only; dynamic client registration and client ID metadata documents)