The video & audio MCP for AI agents

One command adds it to Claude Code or Cursor. Download and transcribe any URL from your agent, and when you're ready to ship, your agent wires the same API into your app.

$3.00 in free credit. No card required.

Add it to your agent, then replace your_key with your API key.

claude mcp add --transport http importly https://mcp.importly.io/mcp --header "Authorization: Bearer your_key"

Run in your terminal, then restart Claude Code.

Works with YouTube, TikTok, X, Instagram, Vimeo, podcasts, and 1000+ other sites.

From first prompt to production

Start by asking your agent for transcripts and downloads. When the idea works, ask it to build Importly into your app with the same key.

  1. 1

    Use it now

    Ask for a transcript, a download link, or a video's details.

    Your agent

    Transcribe this talk and pull out the three best quotes https://www.youtube.com/watch?v=…

    importly.transcribe_media(url: "https://www.youtube.com/watch?v=…")

    Job queued: 7f3c2a1e

    importly.check_transcription(jobId: "7f3c2a1e")

    Completed: 214 timestamped segments, $0.01

    Here are the three quotes, with timestamps so you can jump to each one:

    [04:12] "Ship the smallest version that teaches you something."

    [11:38] "Your first users are a research team you don't pay."

    [27:05] "Speed is a feature until it's the only one."

  2. 2

    Ship it in your app

    Your agent reads our docs and writes the integration for you.

    Your agent, in your codebase

    Let users paste a video link in our upload form instead of uploading a file. Use Importly.

    fetch(https://importly.io/llms.txt)

    Read the import, webhook, and error docs

    edit(app/api/import/route.ts)

    await fetch('https://api.importly.io/import', {

    method: 'POST',

    headers: { Authorization: `Bearer ${process.env.IMPORTLY_API_KEY}` },

    body: JSON.stringify({ url, webhookUrl }),

    edit(app/api/webhooks/importly/route.ts)

    Saves data.mediaUrl to the upload record

    Done. The form accepts links, and IMPORTLY_API_KEY is read from the server environment, never sent to the browser.

Why not a free YouTube MCP?

Free servers run yt-dlp on your machine or in your agent's sandbox. That works until it doesn't.

Cloud agents get blocked. Agent sandboxes run on datacenter IPs, which YouTube and TikTok flag as bots.
Every request goes out through rotating residential proxies, and a retry gets a fresh IP.
yt-dlp breaks every few weeks. Sites change their players and a local install falls behind the fix.
We roll out new yt-dlp releases as they land, so your agent never has to update anything.
Media is heavy. Merging streams and pulling out audio needs ffmpeg and room for multi-gigabyte files.
Downloading, merging, and audio extraction run on our servers. Your agent gets a link.
Not every video has captions. Caption scrapers return nothing for podcasts, TikToks, and most uploads.
Transcripts use the video’s own captions when it has them, and speech-to-text when it doesn’t.

Tools your agent gets

Each tool starts a job and returns an ID. The matching check tool returns the result, usually within a minute.

ToolWhat it does
transcribe_mediaTranscript with timestamped segments.
import_mediaDownloads video, audio, or both (up to 4K) and returns a direct link.
get_metadataFormats, uploader, view counts, and thumbnails, without downloading.
get_basic_metadataTitle, duration, and thumbnail in a second or two.
check_balanceYour remaining credit.
get_integration_guideWorking code to add Importly to your own app.

Same key, production API

The key in your MCP config is a regular API key. Put it in your server's environment and call the REST API directly.

  • Webhooks when a job finishes, or status endpoints to poll.
  • Files delivered to your own S3, R2, or B2 bucket.
  • Usage-based billing. No seats, no monthly minimum.
Read the API reference
// Submit an import; Importly POSTs the result to your webhook.
const res = await fetch('https://api.importly.io/import', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.IMPORTLY_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://www.youtube.com/watch?v=jNQXAC9IVRw',
    webhookUrl: 'https://your-app.com/webhooks/importly',
  }),
})
const { data } = await res.json()
console.log(data.jobId) // poll GET /import/status?id=... or wait for the webhook

Node 18+ (built-in fetch).

Pay for what your agent uses

New accounts start with $3.00 in credit and no card. That covers about 300 caption transcripts.

See full pricing
Transcript of a YouTube video that has captions
$0.01
Title, duration, and thumbnail of any video
$0.01
Transcript of a 10-minute podcast with speech-to-text
about $0.30
A 3-minute video at 720p (about 40 MB)
about $0.40

Give your agent every video on the internet

Sign up, copy your key, and paste one command. Your first transcripts are on us.

claude mcp add --transport http importly https://mcp.importly.io/mcp --header "Authorization: Bearer your_key"

Run in your terminal, then restart Claude Code.