MCP connector

Treza for Claude, ChatGPT, and Cursor

Give your assistant a video pipeline. Connect Treza’s hosted Model Context Protocol server and it can build a pipeline from a brief, run it, follow the render, and publish the result to a channel you connected. One URL, sign in once.

https://www.trezalabs.com/api/mcp

What your assistant can do once connected

Every tool maps to a step a producer takes, scoped to the account that signed in. The pipelines are whatever you built on the canvas, or whatever the assistant builds for you.

  • Build a pipeline from a brief

    Describe the video you want. The assistant starts from a template or the node vocabulary, creates the pipeline as a draft on your account, and fixes validation issues before anything runs.

  • Run it and follow the render

    run_pipeline starts the render on Treza's workers and returns a run id immediately. The assistant polls get_run and comes back with per-node results and the output URLs when the status flips.

  • Finish what you already made

    list_assets finds the clips, stills, and tracks on your account. assemble_video joins them into one video with a voiceover, a music bed from your library or composed from a description, and captions, and edit_asset captions, upscales, or trims a single file, with no graph to draw.

  • Publish to a connected channel

    connect_channel hands you a link to connect a YouTube channel or TikTok account in your browser. After that, publish_asset lays a finished video out for you to review and posts it when you press Post, and a pipeline can end with the upload on its own schedule.

  • Check credits before spending them

    estimate_run_cost prices one run against the current balance, and get_credit_balance returns the balance, plan usage, and a top-up link to hand to a person when it runs low.

  • Keep a schedule honest

    Pipelines whose published snapshot carries a schedule-trigger fire on their own. The assistant reports each schedule's state and next fire time, and pauses or resumes it without touching the published graph.

Add it to your client

ChatGPT adds Treza from its plugin directory. Every other client uses the same Streamable HTTP URL. On first use the client sends you to Treza to sign in and approve the scopes it asked for. No key touches the chat or a config file.

ChatGPT (plugin directory)

Open Treza in ChatGPT and add it, or search for Treza under Plugins. ChatGPT sends you to Treza to sign in with Google, then you mention @Treza in any chat.

Add Treza to ChatGPT
claude.ai (custom connector)
Open Settings, then Connectors, then Add custom connector, and enter https://www.trezalabs.com/api/mcp as the URL. Claude walks you through signing in to Treza and approving access. Approve once and the connector stays linked to your account.
Claude Code
claude mcp add --transport http treza https://www.trezalabs.com/api/mcp
Gemini CLI
gemini extensions install https://github.com/treza-labs/treza-plugin
# then, inside Gemini CLI, sign in:
/mcp auth treza
Cursor (.cursor/mcp.json or ~/.cursor/mcp.json)
{
  "mcpServers": {
    "treza": {
      "url": "https://www.trezalabs.com/api/mcp"
    }
  }
}
Muse Code (~/.config/muse/settings.json)
{
  "schema_version": 1,
  "mcp_servers": {
    "treza": {
      "transport": "streamable_http",
      "url": "https://www.trezalabs.com/api/mcp",
      "mode": "optional"
    }
  }
}
Other MCP clients
# Any MCP client that speaks Streamable HTTP.
# OAuth sign-in on first use, or a scoped API key as a bearer:
Authorization: Bearer treza_live_...

In Cursor, open Settings, Tools & MCP, New MCP Server, paste the JSON, and enable it. Muse Code reads its own settings file, where schema_version is required and the key is mcp_servers in snake case; add a headers entry alongside the URL if you would rather send a key than sign in. mode defaults to required, which aborts the whole session if a server is unreachable, so the snippet sets optional instead. Any other client that speaks Streamable HTTP MCP connects with the same URL: it completes the OAuth sign-in if it supports one, or sends a scoped API key with pipelines:read and pipelines:run permissions in the Authorization header. The Cursor walkthrough covers the editor setup step by step.

Sign in, then approve exactly these scopes

The consent page lists each scope the client requested, and the connection gets only what you approve.

  • pipelines:readView your pipelines and their runs
  • pipelines:runStart pipeline runs (spends account credits)
  • pipelines:writeCreate, edit, and publish pipelines
  • keys:provisionCreate scoped API keys for your account

Runs spend prepaid credits

A run started from chat is charged the same way as one started from the dashboard or the API: it draws the account’s prepaid balance and appears in the same run history with per-node results. The assistant can call estimate_run_cost before committing, and when the balance runs low, get_credit_balance returns a top-up link for a signed-in person. Credit packs are on the pricing page.

The tools, grouped by job

Twenty-five tools, each one a production step rather than a model parameter. That keeps tool selection reliable when the assistant is juggling your request alongside everything else in context.

Authoring

Requires the pipelines:write scope.

  • list_pipeline_templatesReady-made pipelines that create_pipeline can copy, each with the entry nodes a run's inputs are keyed by.
  • list_node_typesThe node types available for building graphs, grouped by category.
  • get_node_typePorts and config schema for one node type, with the live model catalog on model-bearing nodes.
  • create_pipelineCreate a draft pipeline from a template id or an initial node graph. Error-level issues block the save.
  • update_pipelineRename a pipeline, change its description, or replace its graph. Error-level issues block the write.
  • publish_pipelineSnapshot the draft as an immutable deployed version that schedules and the public APIs run.

Running

run_pipeline requires the pipelines:run scope.

  • list_pipelinesEvery pipeline on the account, with status, schedule state, and a summary of recent runs.
  • get_pipelineOne pipeline's metadata and node summary, or the complete graph with includeGraph.
  • make_videoA video from a description in one call: picks the model, prepares the render and prices it, and run_pipeline starts it once the person accepts.
  • run_pipelineStart a run in the background and get a run id back at once. Inputs are keyed by entry node id. Given estimate_run_cost's quoteId, it starts once, at the quoted price.
  • get_runOverall status plus per-node results and output URLs. Poll it until the status leaves running; it says what step the run is on and how long to wait before asking again.
  • cancel_runStop a run that is still going. A render stops once its current step finishes; one still waiting to start is closed at once and costs nothing.
  • list_runsRecent runs for a pipeline, newest first.
  • set_schedule_pausedPause or resume a published pipeline's schedule. Resuming skips the slots missed while paused.

Finishing media

assemble_video and edit_asset need pipelines:run and pipelines:write, and spend account credits. import_media and create_upload_url need pipelines:write and spend nothing.

  • list_assetsThe account's images, videos, and audio, newest first, as urls the next two tools accept.
  • assemble_videoJoin clips into one finished video over a voiceover and a music bed, composed from a description if you like, with captions if you want them. One clip and a description adds music to a video.
  • edit_assetRun any transform node over one file: captions, an upscale, background removal, a trim.
  • import_mediaAdd a file attached in ChatGPT, a public link, or an uploaded local file to the library, so a logo can go in the corner of a video.
  • create_upload_urlA one-time link that Claude Code, Codex, or Cursor PUTs a local file to, for import_media to add to the library.
  • open_libraryYour library on a page of its own, opened from ChatGPT's sidebar or beside a conversation. Only the panel calls it.

In ChatGPT

ChatGPT gets these in place of the authoring tools and edit_asset: it starts from templates and makes one edit per tool. The edits need pipelines:run and pipelines:write, and spend account credits.

  • create_from_templateCopy one of Treza's ready-made templates into the account as a pipeline to run.
  • add_voiceoverSpeak a script over a video or a picture, in any language, with the clip's own sound ducked under the voice.
  • add_captionsBurn captions into a video, transcribed from its speech or from a script.
  • trim_videoCut one stretch out of a video or audio file, optionally reframed to vertical 9:16.
  • add_overlayPut a logo, watermark, or badge on a video or a picture.
  • remove_backgroundCut the subject out of a picture or a video.
  • upscale_videoRaise a video to 1080p, 2K, or 4K.

Budgeting

Read-only, so any connection can call these.

  • get_profileWhich Treza account the connection is signed in to: a stable id, the email and the name.
  • estimate_run_costWhat one run of the draft graph will charge, step by step, and whether the balance covers it, with a quoteId run_pipeline holds the run to.
  • get_credit_balancePrepaid balance, plan usage, and purchasable credit packs, with a top-up link for a signed-in person.

Publishing and access

create_api_key needs the keys:provision scope, which only an OAuth consent or first-party session carries.

  • list_connected_channelsThe YouTube channels and TikTok accounts on the account, with the ids a publishing node needs.
  • connect_channelA link to connect a YouTube channel or TikTok account, finished by you in your own browser after signing in to Treza.
  • publish_assetLay a finished video out for review before it posts to YouTube or TikTok: the account, the title, and on TikTok who can view it and its disclosures.
  • confirm_publishPosts what publish_asset prepared when you press Post in the panel. Only the panel calls it.
  • create_api_keyMint a durable scoped treza_live_ key for headless use of the pipeline APIs and MCP. The raw key is shown once.

A brief becomes a pipeline

How a request plays out over the connector. The assistant picks the tools; the pipeline does the production.

  1. You

    Turn the newest episode of my podcast feed into a captioned vertical Short every week and post it to my YouTube channel.

  2. Assistant

    Calls list_pipeline_templates and finds Podcast Clip Factory, a template that pulls the newest episode from an RSS feed, picks the most shareable 30 to 60 second moment, cuts it, and builds a captioned cover-art Short. Calls list_connected_channels to get the channel id for the upload node, then create_pipeline with templateId podcast-clip-factory and the feed URL, and update_pipeline to point the upload node at your channel and set the weekly schedule-trigger.

  3. Assistant

    Calls estimate_run_cost, reports the estimated charge against the balance, and asks whether to proceed.

  4. You

    Go ahead, and run one now so I can check it.

  5. Assistant

    Calls run_pipeline and gets a run id back immediately, then polls get_run while the render happens on Treza's workers. Reports the per-node results and the finished Short's URL. When you are happy with it, publish_pipeline arms the weekly schedule.

Frequently asked questions

Do I need an API key to connect?

No. Adding the URL starts an OAuth flow: the client sends you to Treza, you sign in, and a consent page lists the exact scopes being requested for you to approve. No key touches the chat, a config file, or a committed repo. Headless clients can use a scoped treza_live_ API key as a bearer header instead.

Which scopes does the connector ask for?

pipelines:read to view pipelines and runs, pipelines:run to start runs, pipelines:write to create, edit, and publish pipelines, and keys:provision to mint scoped API keys. The consent page shows each one, and the server grants exactly what you approve. A connection can be allowed to trigger work without being allowed to change it.

What does a run started from chat cost?

The same as a run started from the dashboard or the API. Runs spend the account's prepaid credit balance, appear in the same run history, and are reserved against the balance when they start so an agent looping on run_pipeline cannot overspend. estimate_run_cost tells you the charge before you commit.

Can the assistant see other people's pipelines?

No. Every tool call resolves the caller to the owner identifiers it has proven and checks the pipeline against them. The connector sees and runs only pipelines on the account that signed in.

Does a long render block the chat?

No. run_pipeline enqueues the run on Treza's workers and returns the run id at once. The assistant polls get_run, which lists the steps completed so far while the run is still running, and returns the output URLs once it finishes.

Can it connect my YouTube channel for me?

It gives you the link. connect_channel returns a link you open in your browser, where you sign in to Treza and allow YouTube or TikTok to let Treza post. After that, list_connected_channels returns the channel id a publishing node needs, and publish_asset can post a finished video once you confirm it.

Calling a published pipeline from your own code instead of an assistant? The REST API exposes the typed /invoke endpoint and an OpenAI-compatible /chat/completions endpoint.

Connect your assistant to a video pipeline

Sign in, paste the URL into your client, and ask for a video. Prepaid credits, no subscription.

Sign in to Treza->