Anjin Media

MCP server

A video editing MCP server
for AI agents.

An agent that can write the brief can now finish the edit. The MCP server exposes the whole workflow as tools: find the footage, compose a cut against the brief, read the plan, render the files.

Nothing is generated. Every segment is lifted from your own footage and named in a plan the agent can read before any render.

55 tools · OAuth or Bearer key · streamable HTTP

ONE TASK, COMPLETEDanjin-media · MCP
YOU  The clearest answer we gave on data residency,
     45 seconds, vertical. Show me the plan first.

list_source_groups    → "Town hall · 12 Aug" · ready
create_cut            → c7d2… · "planning"
get_cut_plan          → v1 · 3 segments · 46.2 s
revise_cut_plan       "Lead with the answer itself."
                      → v2 · 3 segments · 44.8 s
────────  plan approved · the next call spends  ────────
render_cut            → 9:16 · queued
render.completed44.8 s · qc_passed · srt · edl · qc

The plan arrives as a document with source timecodes. render_cut is the step that produces the file. Source minutes are counted at ingest; each rendered aspect uses export minutes.

Why MCP

Video becomes an action an agent can complete.

Agents already research, write and file. Video has stayed a handoff: the workflow produces a request for an editor, then stops. These tools carry the task through to the finished file.


The brief is already written

Your agent holds the context: the campaign, the audience, the argument it is making. create_cut takes that context as a prompt of up to 2,000 characters and plans an edit from the footage to match it.


The plan is machine-readable

Planning returns a document: ordered segments, each naming its source and timecodes, with an estimated duration against the target. An agent can check the result against the brief and correct it before anything renders.


Same contract as your code

Composition tools share their service contracts with the REST API. The wider catalogue also includes Explore, thumbnails and review tools using the app's product services.

The toolset

55 tools cover the workflow.

Grouped the way an agent uses them, with real names and required permissions. Product actions use the same underlying services as the app and, where a REST equivalent exists, the API.

The 55 MCP tools: name, required scope, and what each tool does.
ToolScopeWhat it does
Sources and transcripts
list_source_groupsreadBrowse the footage library, with durations and camera counts.
get_source_groupreadRead a source group's files, metadata and readiness.
get_transcriptreadRead diarized speech with segment or word-level timing.
get_speakersreadRead speaker labels, speaking time and sample quotes.
name_speakerswriteGive diarized speakers their display names.
mask_transcript_wordswriteMask or restore words or terms for subsequent reads and renders; existing output can become stale.
set_content_regionswriteOverride source intro, outro, sponsor and call-to-action regions used to exclude material from edits.
redetect_content_regionswriteRe-run source content-region detection, replacing a manual override.
Explore ideas
get_workspacereadRead workspace capabilities and whether Explore is available.
explore_sourcewriteGenerate transcript-grounded editorial concepts from a source.
get_conceptsreadRead the concepts and current Explore session.
present_conceptsreadPresent concept cards for a person to review.
select_conceptwriteSelect a concept within the current Explore session.
refine_conceptwriteRefine the selected concept with editorial feedback.
create_concept_cutwriteSave a selected concept as a cut with explicit output settings.
Plan cuts
create_cutwriteStart planning from a brief, one to four source groups and output settings.
get_cut_planreadRead the versioned segment plan; use cut status to check whether a revision has finished.
list_cutsreadBrowse the account's cuts.
get_cutreadRead one cut's status and settings.
revise_cut_planwriteReplan with a plain-language editorial instruction.
update_cut_planwriteRemove, reorder, pin or unpin plan segments.
validate_selectionsreadCheck proposed source selections before using them.
Render and review
quote_render_cutreadCheck the export-minute quote before rendering.
render_cutwriteRender a plan version in one to three aspects; exports consume export minutes.
get_rendersreadRead a cut's render statuses, signed downloads and sidecars.
list_rendersreadBrowse rendered outputs.
get_renderreadRead one render and its output metadata.
present_renderreadPresent a finished render for review.
get_operationreadLook up the outcome of an earlier call by its operation key.
delete_renderadminRemove a rendered output.
Brand, profiles and visual plans
list_brand_kitsreadBrowse reusable brand colours, typography and assets.
save_brand_kit_defaultsadminChange a brand kit's defaults for future work.
list_render_profilesreadBrowse reusable render profiles.
get_render_profilereadRead a render profile and its versions.
create_render_profilewriteCreate a reusable render profile.
save_render_profile_versionwriteAppend a new version of a render profile.
archive_render_profileadminArchive a render profile.
get_visual_planreadRead the framing plan associated with a cut.
propose_visual_planwritePropose an optional visual plan for review.
get_visual_plan_proposalreadRead a proposed visual plan.
preflight_visual_planreadCheck a visual proposal before approval.
approve_visual_planwriteApprove a visual proposal for the cut.
Thumbnails
get_thumbnail_contractreadRead supported thumbnail layouts and controls.
get_thumbnail_stylereadRead a brand kit's thumbnail defaults.
save_thumbnail_styleadminChange thumbnail defaults for a brand kit.
preview_thumbnail_stylereadPreview a thumbnail style before saving it.
create_thumbnailwriteStart a thumbnail draft for a finished render.
get_thumbnailreadRead a thumbnail draft and its current state.
get_output_thumbnailreadRead the thumbnail associated with an output.
save_thumbnailwriteSave edits to a thumbnail draft.
preview_thumbnailreadPreview the draft thumbnail.
approve_thumbnailwriteExplicitly approve a thumbnail for use.
retry_thumbnailwriteRetry thumbnail preparation.
export_thumbnailreadDownload an approved thumbnail export.
inspect_thumbnail_candidatereadInspect a source-frame candidate for the thumbnail.

Schemas, worked sessions and connection detail are in the MCP docs →

The loop

Plan, read, revise. Then render.

Planning is asynchronous: create_cut returns at once and the plan follows as a document the agent reads like any other structured result. Rendering is a separate, explicit call.

create_cutget_cut_planrevise_cut_planrender_cut

If the plan misses the brief, the agent has two correction paths. update_cut_plan applies structural edits synchronously at no cost: remove a segment, reorder, pin the ones that must survive. revise_cut_plan sends the whole plan back with an instruction, and a new version comes out of planning.

Every version is kept, and the loop can run as many passes as the brief needs before the render is requested. Source footage counts once per camera. AI is included; exports use export minutes. Launch plans start at £99 + VAT (£118.80 incl. 20% UK VAT) a month. See pricing →

The honesty is in the schema

render_cut · “THIS SPENDS MONEY”

That warning is in the tool description itself, in capitals, where an agent reads it before every call. Use quote_render_cut to check export minutes, then keep the render call behind your review. Other write tools can also start planning or media preparation; choose which actions your agent may run.

Prompts

What you say to the agent.

Three asks these tools can carry end to end, each inside the real limits: a target between 10 and 900 seconds, up to three aspects, up to four source groups per cut.

You, to your agent

“Take Tuesday's town hall and cut the clearest answer we gave on data residency. 45 seconds, vertical, and show me the plan before anything renders.”


create_cut · target_duration_s: 45 · aspects: ["9:16"] · 1 group

You, to your agent

“Search all four customer interviews for the moments where someone describes their first week, and compose a 90-second landscape reel in their own words.”


create_cut · target_duration_s: 90 · aspects: ["16:9"] · 4 groups

You, to your agent

“Make a 30-second square teaser from the keynote. Keep the running order chronological and apply our brand kit.”


create_cut · target_duration_s: 30 · aspects: ["1:1"] · chronology: "strict" · brand_kit_id: "b1a4…"

Connection

Connect your AI app to Anjin.

Open Connect your AI in Anjin’s account menu, choose your AI app and follow its setup steps.

Open Connect your AI →

Approve the connection when prompted, then ask: “List my footage in Anjin.” Choose a recording and describe the edit you need. Ask to review the plan before rendering.

The setup page guides compatible clients through OAuth. If your client needs a key, choose “Use an API key instead”. The manual example below is for API-key clients.

Endpoint
https://anjin-media-api.fly.dev/mcp
Transport
Streamable HTTP, stateless. There is no session to establish or keep alive; every call stands on its own.
Auth
Authorization: Bearer mk_live_… on every call for API-key clients. The same keys as REST are minted in the dashboard and shown once. Compatible connected clients can also use OAuth.
Scopes
Checked per tool: read, write or admin. A read key can explore footage and plans; it cannot create, revise or render.
Batching
JSON-RPC batch arrays are rejected with a 400: send one request per call.
.mcp.json
{
  "mcpServers": {
    "anjin-media": {
      "type": "http",
      "url": "https://anjin-media-api.fly.dev/mcp",
      "headers": {
        "Authorization": "Bearer mk_live_…"
      }
    }
  }
}

Manage keys through the account menu → Developers → API & MCP. Keys carry the scopes you choose. The connection guide walks through the first session.

Guardrails

Built for agents you have to trust.

An agent with tools is an agent with your allowance and your footage. The server is arranged so the risky step is explicit and everything before it is inspectable.

What stops an agent overspending?
Read the plan and request an export-minute quote before rendering. Keep auto_render off and require approval before render_cut. A write credential also permits planning and media preparation, so set the agent's approval rules for those actions too.
What can a scoped key not do?
Scopes are checked on every tool call. A read key explores footage and reads plans. A write key composes, revises and renders. Admin is required to delete renders, archive render profiles or change brand and thumbnail defaults. OAuth connections never receive admin scope; composition work can use read and write.
Can the render drift from what was approved?
render_cut accepts a plan_version, so the agent renders the exact version that was reviewed rather than whatever is latest. Every version is kept, whether the planner wrote it, a revision produced it, or update_cut_plan edited it.
What happens when a call is malformed?
The underlying service validates the request. A failed call returns structured problem JSON inside the tool result, including a stable code and human-readable detail, so the agent can correct its call.

Questions

Which MCP clients can connect?
Compatible OAuth clients and streamable-HTTP clients that can send an Authorization header can connect. The server is stateless; each call authenticates with its access token or API key.
Do I need a separate key for MCP?
No separate MCP key is needed: API-key clients use the same keys as REST. Start with Connect your AI in Anjin’s account menu. OAuth clients approve the connection through Anjin without pasting an API key; OAuth never grants admin scope. For API-key clients, use the key alternative or open the account menu → Developers → API & MCP. Choose explicit scopes and copy the raw key when it is shown once.
Can the agent render without my approval?
Only if you arrange it that way. render_cut is a separate, explicit call, and the plan is readable before it is made. Two things to know: setting auto_render on create_cut renders the first plan automatically, and a write-scoped key is allowed to call render_cut. For a human gate, keep auto_render off and have the agent hand you the plan.
What does the agent get back after a render?
For each aspect: the finished MP4 behind a signed URL, SRT and WebVTT captions, an EDL as JSON naming every segment's source and timecodes, and a QC report. get_renders returns them all in one call.
Is MCP behaviour different from the REST API?
Tools with a REST equivalent use the same service, validation and lifecycle. MCP also exposes app workflows such as Explore and presentation tools that have no REST equivalent. Clients discover typed tools and receive structured problem JSON when an action fails.

The edit is now a tool call.

55 tools · the same engine as the app and the API