# Descript MCP

```json
{
  "name": "Descript MCP",
  "slug": "descript_mcp",
  "url": "https://composio.dev/toolkits/descript_mcp",
  "markdown_url": "https://composio.dev/toolkits/descript_mcp.md",
  "logo_url": "https://logos.composio.dev/api/descript_mcp",
  "categories": [
    "entertainment & media"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-09-03T05:38:01.413Z"
}
```

![Descript MCP logo](https://logos.composio.dev/api/descript_mcp)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Descript MCP or direct API to import media, start project-agent workflows, inspect processing jobs, and manage job lifecycle through natural language.

## Summary

Descript MCP is a media processing and project workflow service for creators and teams.
It streamlines media import, automated processing, and job management.

## Categories

- entertainment & media

## Toolkit Details

- Tools: 14

## Images

- Logo: https://logos.composio.dev/api/descript_mcp

## Authentication

- **Dcr Oauth**
  - Type: `custom`
  - Description: Dcr Oauth authentication for Descript MCP.
  - Setup:
    - Configure Dcr Oauth credentials for Descript MCP.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Import interview audio and create transcript
- Start project-agent to remove filler words
- List recent processing jobs and statuses

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `DESCRIPT_MCP_CANCEL_JOB` | Cancel job | Cancel a queued or running job. |
| `DESCRIPT_MCP_EXPORT_TIMELINE` | Export timeline | Export a project composition as a timeline file for import into another DAW/NLE (Premiere, DaVinci Resolve, Final Cut Pro, Pro Tools, Logic, Audition, Reaper). Media files are never bundled — only the timeline/XML/EDL file itself. Returns immediately with a job_id. Use the wait_for_job tool with the returned job_id to wait for completion; when the job finishes, its result carries a time-limited download_url (valid until download_url_expires_at). Always display the download_url to the user so they can download the file directly. Large exports can take several minutes, so polling avoids connection timeouts. Formats: edl (Samplitude/Reaper), sesx (Adobe Audition), fcp (Final Cut Pro X .fcpxml), premiere (Premiere Pro XML), davinci_resolve (DaVinci Resolve XML), aaf (Pro Tools/Logic, binary). |
| `DESCRIPT_MCP_EXPORT_TRANSCRIPT` | Export transcript | Export a project composition as a transcript document. Formats: txt, markdown, html, rtf, srt. Returns the exported content directly in the response. |
| `DESCRIPT_MCP_GET_DRIVE_INFO` | Get drive info | Returns the drive (workspace) connected to the current session, including its ID and name. Use this to confirm which drive your requests will operate on. |
| `DESCRIPT_MCP_GET_PROJECT` | Get project | Get a detailed project summary including all media files, compositions, and existing publishes. Returns the project's id, name, drive_id, created_at, updated_at, folder_path (if in a folder), a map of media files (keyed by display path) with type and duration, a list of compositions with id, name, duration, and media type, and a list of existing publishes with share_url, access_level, media_type, and publish time. Use this to inspect a project's contents before editing or importing media, or to retrieve existing share URLs without triggering a republish. |
| `DESCRIPT_MCP_IMPORT_DRIVE_MEDIA` | Import drive media | Import media files into the drive media library (not into a project). Use this when the user wants to add files to their media library without creating or editing a project. Supports URL imports and direct file uploads. DIRECT FILE UPLOAD: Instead of a url, provide content_type (MIME type) and file_size (bytes). The response includes upload_urls — a map of media key → { upload_url, asset_id, artifact_id }. PUT each file to its upload_url with header Content-Type: application/octet-stream. Returns immediately with a job_id and drive_id. Please use the wait_for_job tool with the returned job_id to wait for the job to complete. |
| `DESCRIPT_MCP_IMPORT_MEDIA` | Import media | Import media into a Descript project via URLs (direct links, Google Drive, Dropbox) or direct file upload. Pass URLs as-is. Pass empty add_media ({}) with project_name to create an empty project. ADDING TO COMPOSITION: When creating a new project, include add_compositions so imported media appears on the timeline — this is the expected default. Only omit add_compositions for new projects when the user explicitly asks to import without adding to the composition. When importing into an existing project, omit add_compositions unless the user requests it, to avoid disrupting existing edits. To append media to an EXISTING composition, use update_compositions (composition_id + append_clips) instead of add_compositions. DIRECT FILE UPLOAD: Instead of a url, provide content_type (MIME type) and file_size (bytes). The response includes upload_urls — a map of media key → { upload_url, asset_id, artifact_id }. PUT each file to its upload_url with header Content-Type: application/octet-stream. The uploaded file size must match the file_size declared in the request. Returns immediately with a job_id, project_id, and project_url. Always display the project_url to the user so they can open the project in Descript. Please use the wait_for_job tool with the returned job_id to wait for the job to complete. |
| `DESCRIPT_MCP_LIST_FOLDERS` | List folders | List folders in the drive. Returns each folder's full path from the drive root. By default lists root-level folders. Pass parent_path to list child folders of a specific parent. Use this to browse the folder hierarchy before filtering projects by folder_path. |
| `DESCRIPT_MCP_LIST_JOBS` | List jobs | List recent jobs, optionally filtered by project or type. Job states: queued, running, stopped (check result.status), cancelled. |
| `DESCRIPT_MCP_LIST_PROJECTS` | List projects | List projects accessible to the authenticated user. Returns each project's id, name, created_at, updated_at, and folder_path (if the project is inside a folder). Use this to discover project IDs before editing or importing media. Supports cursor-based pagination — pass the next_cursor from a previous response's pagination field to fetch the next page. |
| `DESCRIPT_MCP_PROMPT_PROJECT_AGENT` | Prompt project agent | Agent Underlord, Descript's built-in AI editor, queries, creates, and edits Descript projects using natural language. Refer to it as Agent Underlord when telling the user what is doing the editing, since that is the name they see in the Descript app. Use project_id for existing projects, project_name to create new ones. Returns immediately with a job_id, project_id, and project_url. Always display the project_url to the user so they can open the project in Descript. Please use the wait_for_job tool with the returned job_id to wait for the job to complete. The response includes a conversation_id — pass it back on subsequent calls to the same project to continue the conversation with full context. |
| `DESCRIPT_MCP_PUBLISH_PROJECT` | Publish project | Publish a Descript project composition as video or audio, producing a shareable URL. Requires a project_id. Optionally specify a composition_id (defaults to the first composition). Publishing the same composition again automatically reuses the previous share URL, overwriting its content; Video and Audio publishes of the same composition get separate share URLs. If the composition has no video content: omitting media_type publishes it as audio (the result reports media_type="Audio"), while explicitly requesting media_type="Video" fails with a 422. Returns immediately with a job_id. Please use the wait_for_job tool with the returned job_id to wait for the job to complete. When the job completes, always display the share_url and download_url from the result to the user. |
| `DESCRIPT_MCP_REPORT_UPLOAD_STATUS` | Report upload status | Report that a specific direct upload failed, was aborted, or was abandoned so the import job stops waiting on just that file (other files keep uploading). Use this after a PUT to an upload_url errors ("failed"), the user cancels an in-flight upload ("aborted"), or a file will never be uploaded ("abandoned", e.g. the upload UI was dismissed). media_id is the key from the import request's add_media / upload_urls map. |
| `DESCRIPT_MCP_WAIT_FOR_JOB` | Wait for job | Wait for a job to complete. Polls for completion by default (840s) and streams progress updates. Set wait_seconds to 0 to return immediately without waiting. Job states: queued, running, stopped, cancelled. A stopped job has a result object — check result.status for "success" or "error". These jobs routinely run for many minutes, so a long wait is normal rather than a stall. If the job is still going when the wait window elapses, the call still succeeds and returns a non-terminal job_state with wait_status "still_running". That is not a failure — call wait_for_job again with the same job_id and keep calling until job_state is "stopped" or "cancelled". While the job is running, progress.label contains a human-readable status (e.g. "Editing script", "Searching web") — display this to the user so they can see what the agent is doing. The response includes project_url — when a composition ID is available in the result, the URL includes a composition short ID suffix so it opens directly to the right composition. Always display project_url to the user. A completed export_timeline job returns a time-limited result.download_url (valid until result.download_url_expires_at); always display this URL to the user so they can download the file directly. For prompt_project_agent jobs, the completed result includes result.conversation_id — save it and pass it back as conversation_id on the next prompt_project_agent call to the same project to continue the conversation. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Descript MCP Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Descript MCP actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'YOUR_SPECIFIC_PROMPT_HERE'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Descript MCP
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Descript MCP tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('YOUR_SPECIFIC_PROMPT_HERE')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Descript MCP Integration

- Supports both Descript MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Descript MCP data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Descript MCP access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Descript MCP
- Scoped, least privilege access to Descript MCP resources
- Full audit trail of agent actions to support review and compliance

## Use Descript MCP with any AI Agent Framework

Choose a framework you want to connect Descript MCP with:

- [ChatGPT Work](https://composio.dev/toolkits/descript_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/descript_mcp/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/descript_mcp/framework/hermes-agent)

## Related Toolkits

- [Youtube](https://composio.dev/toolkits/youtube) - YouTube is a leading video-sharing platform for uploading, streaming, and discovering content. It empowers creators and businesses to reach global audiences and monetize their work.
- [AllTrails MCP](https://composio.dev/toolkits/alltrails_mcp) - AllTrails MCP is a trail discovery service for hiking, biking, and running routes. Use it to find reviewed trails, photos, maps, difficulty info, and route details fast.
- [Amara](https://composio.dev/toolkits/amara) - Amara is a collaborative platform for creating and managing subtitles and captions for videos. It helps make content accessible and multilingual for global audiences.
- [Captions](https://composio.dev/toolkits/captions) - Captions provides the Mirage API for generating videos, speech, and styled captions. Use it to automate polished video creation, voiceovers, and captioning from one API.
- [Cats](https://composio.dev/toolkits/cats) - Cats is an API with a huge library of cat images, breed data, and cat facts. It makes finding adorable cat photos and trivia effortless for your apps and users.
- [Chatfai](https://composio.dev/toolkits/chatfai) - Chatfai is an AI platform that lets users talk to AI versions of fictional characters from books, movies, and games. It offers an engaging, interactive experience for fans to chat, roleplay, and explore creative dialogues.
- [Cincopa](https://composio.dev/toolkits/cincopa) - Cincopa is a multimedia platform for uploading, managing, and customizing videos, images, and audio. It helps you deliver engaging media experiences with robust APIs and flexible integrations.
- [Dungeon fighter online](https://composio.dev/toolkits/dungeon_fighter_online) - Dungeon Fighter Online (DFO) is an arcade-style, side-scrolling action RPG packed with dynamic combat and progression. Play solo or with friends to battle monsters, complete quests, and upgrade your characters.
- [Elevenlabs](https://composio.dev/toolkits/elevenlabs) - Elevenlabs is an advanced AI voice generation platform for lifelike, multilingual speech synthesis. Perfect for creating natural voices for videos, apps, and business content in seconds.
- [Elevenreader](https://composio.dev/toolkits/elevenreader) - Elevenreader is an AI-powered text-to-speech service by ElevenLabs that converts written content into lifelike audio. It enables fast, natural audio generation from any text.
- [Epic games](https://composio.dev/toolkits/epic_games) - Epic Games is a leading video game publisher and digital storefront, known for Fortnite and Unreal Engine. It lets gamers access, manage, and purchase games all in one place.
- [Eranol](https://composio.dev/toolkits/eranol) - Eranol is an API-driven media conversion service for video, audio, and FFmpeg workflows. It helps teams automate reliable transcoding, format conversion, and media processing at scale.
- [Fal.ai](https://composio.dev/toolkits/fal_ai) - Fal.ai is a generative media platform offering 600+ AI models for images, video, voice, and audio. Developers use Fal.ai for fast, scalable access to cutting-edge generative AI tools.
- [Giphy](https://composio.dev/toolkits/giphy) - Giphy is the largest online library for searching and sharing GIFs and stickers. Instantly add vibrant animated content to your apps, chats, and workflows.
- [Headout](https://composio.dev/toolkits/headout) - Headout is a global platform for booking travel experiences, tours, and entertainment. It helps users discover and secure activities at top destinations, all in one place.
- [Imagekit io](https://composio.dev/toolkits/imagekit_io) - ImageKit.io is a cloud-based media management platform for image and video delivery. Instantly optimize, transform, and deliver visuals globally via a lightning-fast CDN.
- [Listennotes](https://composio.dev/toolkits/listennotes) - Listennotes is a powerful podcast search engine with a massive global database. Discover, search, and curate podcasts from around the world in seconds.
- [News api](https://composio.dev/toolkits/news_api) - News api is a REST API for searching and retrieving live news articles from across the web. Instantly access headlines, coverage, and breaking stories from thousands of sources.
- [RAWG Video Games Database](https://composio.dev/toolkits/rawg_video_games_database) - RAWG Video Games Database is the largest video game discovery and info service. Instantly access comprehensive details, ratings, and release dates for thousands of games.
- [Seat geek](https://composio.dev/toolkits/seat_geek) - SeatGeek is a live event platform offering APIs for concerts, sports, and theater data. Instantly access events, venues, and performers info for smarter ticketing and discovery.

## Frequently Asked Questions

### Do I need my own developer credentials to use Descript MCP with Composio?

Yes, Descript MCP requires you to configure your own Dcr Oauth credentials. Once set up, Composio handles secure credential storage and management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
