The connector and the CLI call the same Moda service, so plan entitlements, credits, brand kits, and canvases are
identical across both. Nothing is gated on which transport you picked.
Connector URL
Authentication
The connector URL supports two authentication methods. Pick one per caller — the server accepts both concurrently, so one teammate can be signed in over OAuth while a scheduled job uses a key:- OAuth sign-in — the default, and what the setup steps below use. The host holds the tokens, the model never sees a credential, and there is no plan requirement.
- A Moda API key as a bearer token — send
Authorization: Bearer moda_live_...against the same connector URL above.
Using an API key
Mint the key
In Moda, go to Settings → Developer → REST API → Create API key. Any plan can create one.
The key is shown once — copy it into a secret manager.
Keep the default scopes
The connector enforces scopes per tool on key auth, so a narrowed key returns
insufficient_scope on individual tools — export, media, drive and site calls fail first — with
nothing to indicate the key rather than the endpoint is at fault. OAuth grants skip that check.
Accept the picker’s default, which is every scope except Organization admin. Scopes beyond
the connector’s allow-list are stripped on connector calls anyway but stay live for the REST API
and CLI on the same key, so adding admin gains nothing here and widens it everywhere else. Don’t
narrow it further unless you want a deliberately restricted key.Point the host at the connector URL
Use the connector URL from the top of this page and send the key as
Authorization: Bearer moda_live_.... Nothing else changes — the same tool surface, the same
workspace, the same credits.Set it up on claude.ai
Open the Moda listing
Go to Moda in the Claude connector directory, or find
it under Customize → Connectors by searching for
Moda.Connect and sign in
Click Connect. Moda opens an OAuth sign-in in your browser; approve the scopes. Tokens are held by Claude — the
model never sees a credential.
Choose a workspace
If your Moda account belongs to more than one workspace, Moda asks which one this connection should act in. One
workspace and the step is skipped. Your agent can still act in another of your teams on an individual call; changing
the default means disconnecting and reconnecting.
Turn it on in the chat
In a conversation, click + at the lower left (or type
/), hover Connectors, and toggle Moda on.Adding it by URL
Use this when you do not see Moda in your connector directory. It reaches exactly the same server; it is only a longer way in.Open connector settings
Go to Customize → Connectors, click +, and choose Add custom
connector.
Add Moda
Name it
Moda, paste the connector URL above, and click Add. Then connect and sign in as above.Plan and workspace notes
Every member holds their own grant, so each one only ever sees the canvases, orgs, and credits their own Moda account
has access to.
Set it up on ChatGPT
ChatGPT reaches the same connector once its developer switch is on:Turn on developer mode
Settings → Security and login → Developer mode. Once per account.
Create the connector
Open ChatGPT Plugins, click +, and create a developer-mode app for a remote MCP server using the connector
URL above.
search/fetch tool shape, which
this surface does not expose. Developer mode is the supported route.
First calls
The connector expects two calls before real work:moda_bootstrap— the handshake. Returns your identity and teams, plan tier, scopes, entitlements, and the current media model matrix in one payload, so the assistant can skip a pile of lookups. (Brand kits come frombrand_list.)load_skill— Moda’s full authoring guides, served live by the server. Call it before authoring a format you have not authored yet in this conversation. See Skills.
What the connector can and cannot reach
The connector runs in the host’s cloud and talks to Moda’s servers. It never touches your machine. It can use: conversation context, attachments the host passes to tools, URLs you paste, and files already in your Moda workspace. It cannot use: local paths, local folders, repositories on your disk, or writing an export to a folder you choose. No connector tool takes a file path. Two consequences worth knowing:- Content goes inline. Markup and edit programs are passed as string arguments, not read from a file.
- Results come back as links. Every mutation returns the canvas’s editor URL, and exports return a download link rather than writing a file. Opening it in the browser is the connector’s equivalent of the CLI writing the file next to your source.
upload tool falls back to an in-conversation upload control, and failing that, to uploading the file at moda.app and telling the assistant to look for it.
The tool surface
The connector exposes one focused profile rather than everything Moda can do — a tool list an assistant can actually hold in its head:
Work that takes a while — a video render, a large export — returns a task handle immediately; the assistant polls
task_status rather than blocking the conversation.
Authoring is the default: the assistant builds the canvas itself with the tools above. The deterministic tools are
free, media_fetch_logo and media_video_frames included. Three consume the workspace’s Moda credits —
canvas_edit_image, media_remove_background, and task_delegate.
task_delegate is the other route — it hands the whole brief to Moda’s own design agent, which builds the design on
a canvas by itself while the assistant waits. Like any long job it returns a task handle and the canvas link straight
away.
The assistant is told to reach for it only when your own words hand the work over — naming Moda’s agent, making Moda
the one doing the designing (“I want Moda to design this deck”), or naming the hand-off itself (“delegate this to
Moda”). “Use Moda to make a deck” is not that: there Moda is where the work happens, so the assistant authors it.
That judgement is recorded rather than trusted: the tool requires a user_request_quote carrying your own wording
that handed the work over, the assistant may not invent one, and the quote is kept on the call so a delegation that
spent credits can be audited against what you actually asked for.
Troubleshooting
Still stuck? support@moda.app.