MCP
Bring your own agent.
Tonta ships a Model Context Protocol server so a customer's own agent — Claude, ChatGPT, Cursor, or anything else that speaks MCP — can plan, price and submit real work from inside a conversation.
Who this is for
Anyone who already lives inside an agent and would rather ask for a reel than open a web app. A connected workspace works from Claude Code, Claude Desktop, ChatGPT, Cursor, VS Code, or any MCP client that supports Streamable HTTP — no code required on your side.
What this connection can never do
Not policy on a page — the server has no code path for the things below. An agent connected here is bounded structurally, not by a setting someone could forget.
Workspace comes from the token, never an argument
No tool takes a workspace id. A tool that accepted one would be one prompt injection away from cross-tenant access — so that argument simply doesn't exist on this surface.
Spending always goes through a quote
There is no tool that takes a brief and a budget. create — the tool your agent reaches for first — classifies the brief, fills in the settings and returns a single-use, five-minute quote the same way estimate_job does; submit_job requires it. Unpriced spending isn't guarded — it's unrepresentable.
No agent's claim of approval is ever accepted
There is no confirmed: true parameter, because a parameter an agent can set is a parameter an agent will set. Above your confirmation threshold, Tonta asks through MCP elicitation if your client supports it, or parks the job and hands back a web approval link if it doesn't.
Money writes and impersonation are absent from the surface
Buying credits, changing a plan, deleting a workspace or a member, reading another workspace's anything, and any staff operation are not permission-checked here — they simply aren't reachable from this server.
Every call is audited
Actor, connection, tool, arguments, quote, cost and result are recorded on every call — the same trail a human console action leaves.
Bounded by a cap you set, independent of your plan
Each connection carries its own per-job and daily spend cap, editable from Settings. A confused or compromised agent is bounded by a number you chose, not the whole workspace's plan.
Authentication
OAuth 2.1 with PKCE, browser-based — no static API key on this surface. You authorise Tonta for one workspace the first time a client connects; access tokens are short-lived and refresh tokens rotate, with reuse of a rotated token revoking the whole family. A client Tonta has never heard of can still connect via Dynamic Client Registration (RFC 7591) — nobody has to register it by hand.
Connect a client
Claude Code
One command.
claude mcp add --transport http tonta https://tonta.media/api/mcpClaude Desktop / Cursor
Paste into claude_desktop_config.json (or .cursor/mcp.json), then restart.
{
"mcpServers": {
"tonta": { "type": "http", "url": "https://tonta.media/api/mcp" }
}
}ChatGPT / anything else
Settings → Connectors → Add connector → paste the URL.
https://tonta.media/api/mcpServer URL: https://tonta.media/api/mcp — the same one every client above uses.
What it looks like
You
Using Tonta, what would a 30-second faceless reel about home espresso cost, before you make anything?
Your agent
I'll estimate that with Tonta first. Three shots, cinematic preset, 9:16 — the quote comes back at $2.14 and is good for five minutes. Want me to submit it?
You
Yes, go ahead.
Your agent
Submitted. I'll watch it — plan is done, shots are generating now. I'll show you the cut here as soon as it's ready to review.
Every tool your agent can call
Read straight from the same contract the server is generated from — 70 tools today. No schemas dumped here; your MCP client reads those directly from the server on connect.
Read (42)
Act (28)
Connect a client
Sign in, open Settings → Integrations, pick your client and paste one line — you authorise Tonta for your workspace in the browser the first time it connects. No API key goes in a config file.
Connect in Settings