Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Descript MCP server

Vendor MCP
Open markdown

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

Tools
15
What they doRead · write · destructive
9 · 4 · 29 read4 write2 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 Descript MCP connection

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

    Scalekit credentials are available for Descript 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 = 'descriptmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Descript 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: 'descriptmcp_get_drive_info',
    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
  • descriptmcp_export_timelineExport a project composition as a timeline file (AAF, SESX, EDL, FCPXML, Premiere XML, or DaVinci Resolve XML) for import into another DAW/NLE.Read-only

    Export Timeline

    Export a project composition as a timeline file (AAF, SESX, EDL, FCPXML, Premiere XML, or DaVinci Resolve XML) for import into another DAW/NLE.

    Inputs

    formatstringrequired
    Timeline file format.one of aafsesxedlfcppremieredavinci_resolve
    project_idstringrequired
    UUID of the project to export from.
    callback_urlstring
    Webhook URL for job completion.
    composition_idstring
    Composition to export. Accepts a full UUID, a 5-character short ID from the project's Descript URL, or the project's full Descript URL (e.g. https://web.descript.com/{project_id}/{short_id}). Omit to use the first composition.
    create_track_per_fileboolean
    Generate one EDL/XML track per source media file rather than per script. Defaults to false. Not supported for fcp (FCPXML); rejected when true.
    include_commentsboolean
    Include annotation threads as timeline markers. Each thread is one ranged marker with replies in its note. Defaults to false; requires the timeline-export-comments feature.
    include_markersboolean
    Include document markers in formats that support them. Defaults to true.
    snap_frame_ratesboolean
    Premiere / DaVinci Resolve only. When true, snaps to standard broadcast frame rates (24, 25, 30, 50, 60 + NTSC variants). When false, uses the source frame rate. Defaults to true. Rejected when false for other formats.
    strip_spacesboolean
    AAF only. Strip spaces from media filenames for Logic Pro compatibility. Defaults to false. Rejected when true for other formats.
  • descriptmcp_export_transcriptExport a project composition as a transcript document in txt, markdown, HTML, RTF, or SRT format.Read-only

    Export Transcript

    Export a project composition as a transcript document in txt, markdown, HTML, RTF, or SRT format.

    Inputs

    formatstringrequired
    Transcript format.one of txtmarkdownhtmlrtfsrt
    project_idstringrequired
    UUID of the project to export from.
    composition_idstring
    UUID of a specific composition. Omit to use the first composition.
    include_markersboolean
    Include markers in transcript.
    include_speaker_labelsstring
    Speaker label mode. off=none, changes=on speaker change, every_paragraph=every paragraph. Defaults to changes.one of offchangesevery_paragraph
    timecodesobject
    Timecode options. When provided, timecodes are included in the output.
  • descriptmcp_get_drive_infoReturn the Descript drive (workspace) connected to the current session, including its ID and name.Read-only

    Get Drive Info

    Return the Descript drive (workspace) connected to the current session, including its ID and name.

    Inputs

    This tool takes no inputs.

  • descriptmcp_get_projectRetrieve detailed information about a Descript project, including its media files and compositions.Read-only

    Get Project

    Retrieve detailed information about a Descript project, including its media files and compositions.

    Inputs

    project_idstringrequired
    UUID of the project.
  • descriptmcp_list_foldersList folders in the Descript drive, optionally scoped to a parent folder.Read-only

    List Folders

    List folders in the Descript drive, optionally scoped to a parent folder.

    Inputs

    parent_pathstring
    Parent folder path (e.g. "Clients/Acme"). Returns child folders of this folder. Omit to list root-level folders.
  • descriptmcp_list_jobsList recent Descript jobs with optional filtering by project or job type.Read-only

    List Jobs

    List recent Descript jobs with optional filtering by project or job type.

    Inputs

    project_idstring
    Filter by project UUID.
    typestring
    Filter by job type.one of import/project_mediaagentpublishexport/timeline
  • descriptmcp_list_projectsList Descript projects accessible to the authenticated user, with optional filtering and sorting.Read-only

    List Projects

    List Descript projects accessible to the authenticated user, with optional filtering and sorting.

    Inputs

    created_afterstring
    Filter projects created after this ISO 8601 timestamp.
    created_beforestring
    Filter projects created before this ISO 8601 timestamp.
    created_bystring
    Filter projects created by this user UUID. Pass `me` to filter by the authenticated user.
    cursorstring
    Pagination cursor from a previous response's next_cursor.
    directionstring
    Sort direction (default: desc).one of ascdesc
    folder_pathstring
    Filter projects by folder path (e.g. "Clients/Acme/Videos"). Use "/" to separate nested folders. Returns only projects directly inside the deepest folder.
    limitnumber
    Number of projects per page (1-100, default 20).
    namestring
    Filter projects whose name contains this string (case-insensitive). To find a project by name, prefer search_drive, which ranks matches by relevance.
    sortstring
    Sort field (default: created_at).one of namecreated_atupdated_atlast_viewed_at
    updated_afterstring
    Filter projects updated after this ISO 8601 timestamp.
    updated_beforestring
    Filter projects updated before this ISO 8601 timestamp.
  • descriptmcp_search_driveSearch the connected drive for projects, folders, layout packs, and media files by name, by what is spoken or written inside them, or (on drives with the Enterprise plan) by what appears in videos and images.Read-only

    Search Drive

    Search the connected drive for projects, folders, layout packs, and media files by name, by what is spoken or written inside them, or (on drives with the Enterprise plan) by what appears in videos and images. The index covers project names, composition text, media transcripts, and media file names, across projects, the drive media library, and Brand Studio. Results are ranked by relevance by default and carry the ids other tools need (project_id, folder_id, asset_id) plus a url that opens the project, folder, or file in Descript. A visual video match also includes moment, the matched time range inside the video (start_time_sec and end_time_sec, in seconds). A file inside a project opens that project with the file highlighted. Thumbnails for the first 12 video and image results are returned as image content blocks, each preceded by a text block naming the asset_id it belongs to. Media file hits use type video, audio, or image. Prefer this over list_projects whenever the user is looking for a project or anything else in the drive, whether by a name fragment, a topic, or a phrase they remember. Use list_projects only to enumerate or page through every project in the drive, and list_folders to browse the folder hierarchy.

    Inputs

    querystringrequired
    Search terms to match against names and indexed contents. Leave time and ownership phrasing out of it once those are in the filter fields.
    limitinteger
    Maximum results to return (default 30, max 100).
    matcharray
    How the query may match: "name" for project, file, folder, and layout pack names; "content" for transcripts and composition text; "visual" for what appears in videos and images (available only on drives with the Enterprise plan, and must be used alone). Omitting matches only names and contents.
    ownerarray
    Return only items owned by these user UUIDs.
    sortstring
    How to sort results: "relevance" ranks the closest matches first, while "newest" and "oldest" sort by last-modified time. Defaults to relevance.one of relevancenewestoldest
    typearray
    Result types to return: project, video, image, audio, project_folder, media_library_folder, layout_pack. video, image, and audio cover files of that kind in the media library, Brand Studio, and inside projects. Omit to search every indexed type.
    updated_afterstring
    Only items modified at or after this ISO 8601 date or timestamp. A date-only value (YYYY-MM-DD) covers the start of that UTC day.
    updated_beforestring
    Only items modified at or before this ISO 8601 date or timestamp. A date-only value (YYYY-MM-DD) covers the end of that UTC day.