Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the OpusClip MCP server

Vendor MCP
Open markdown

The OpusClip MCP connector routes your AI agent's tool calls to OpusClip's own MCP server through Scalekit. Each user signs in to OpusClip once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 30 tools.

Tools
30
What they doRead · write · destructive
16 · 6 · 816 read6 write8 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the OpusClip MCP connection

    In AgentKit > Connections, create an OpusClip MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for OpusClip MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'opusclipmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize OpusClip MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'opusclipmcp_opusclip_whoami',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • opusclipmcp_opusclip_apply_editing_scriptDeprecated -- this tool no longer applies an editing script and does not re-render the clip; it is kept only to point you at its replacement.Read-only

    Apply Editing Script

    Deprecated -- this tool no longer applies an editing script and does not re-render the clip; it is kept only to point you at its replacement. Clip edits now run through `opusclip_edit_clip`: pass the same projectId and clipId plus the ops you want -- that tool's own description carries the vocabulary. It applies the edit server-side and re-renders, so there is no editing script to fetch, mutate, or post back.

    Inputs

    This tool takes no inputs.

  • opusclipmcp_opusclip_describe_clipReturns a single clip's detail: transcript, keywords, layout/aspect, score, preview URL, and render_pending -- whether a re-render is still in flight.Read-only

    Get Clip Details

    Returns a single clip's detail: transcript, keywords, layout/aspect, score, preview URL, and render_pending -- whether a re-render is still in flight. Poll render_pending after any edit or censor job to know when the new render is ready. Preview-only by design; for the HD file use export_clip.

    Inputs

    clipIdstringrequired
    The clip ID within the project.
    projectIdstringrequired
    The clip project ID.
  • opusclipmcp_opusclip_export_collectionReturns the HD download (export) URL for every clip in a collection.Read-only

    Export Collection

    Returns the HD download (export) URL for every clip in a collection. list_clips/describe_clip expose preview_url only, mirroring the web app where HD appears behind an explicit export -- HD URLs come only from this tool or export_clip (single clip). Read-only; nothing is written.

    Inputs

    collectionIdstringrequired
    Collection ID to export.
  • opusclipmcp_opusclip_get_editing_scriptDeprecated -- this tool no longer returns an editing script; it is kept only to point you at its replacement.Read-only

    Get Editing Script

    Deprecated -- this tool no longer returns an editing script; it is kept only to point you at its replacement. Clip edits now run through `opusclip_edit_clip`: pass the same projectId and clipId plus the ops you want -- that tool's own description carries the vocabulary. It applies the edit server-side and re-renders, so there is no editing script to fetch, mutate, or post back.

    Inputs

    This tool takes no inputs.

  • opusclipmcp_opusclip_get_social_copy_jobReturns the current status (and generated copy, if any) for a previously created social-copy job.Read-only

    Get Social Copy Job

    Returns the current status (and generated copy, if any) for a previously created social-copy job. Use to poll until the job concludes.

    Inputs

    jobIdstringrequired
    The copy job ID.
  • opusclipmcp_opusclip_get_transcriptReturns the source-video transcript for a clip project: paragraph-level text with per-word timing (ms).Read-only

    Get Clip Transcript

    Returns the source-video transcript for a clip project: paragraph-level text with per-word timing (ms). Use for transcript review, search, or as input to other tools. NOT the same as per-clip captions: this is the source video, not any one clip, and editing it here is not possible. The `paragraphs` field is omitted when the project has no transcript yet (still processing or transcription failed). For range-limited API callers, paragraphs are filtered to the billed range.

    Inputs

    projectIdstringrequired
    The clip project ID.
  • opusclipmcp_opusclip_get_usageReturns the calling organization's current API cap usage so the agent can check headroom BEFORE submitting work: monthly { used, limit, remaining, reset_at } (credits; ~1 credit per minute of source video) and concurrent { used, limit } (in-flight API projects).Read-only

    Get API Usage

    Returns the calling organization's current API cap usage so the agent can check headroom BEFORE submitting work: monthly { used, limit, remaining, reset_at } (credits; ~1 credit per minute of source video) and concurrent { used, limit } (in-flight API projects). When the workspace is exempt from caps (Enterprise OpenApi pack or caps disabled) it returns { uncapped: true } with no numbers. Same numbers the X-RateLimit-* response headers carry. Use this to decide whether a batch fits under the cap instead of waiting for the 403.

    Inputs

    This tool takes no inputs.

  • opusclipmcp_opusclip_list_brand_templatesLists the brand templates owned by the calling OpusClip organization.Read-only

    List Brand Templates

    Lists the brand templates owned by the calling OpusClip organization. Used to populate template pickers before creating new clip projects.

    Inputs

    This tool takes no inputs.