Skip to main content
Glama
Supadata

Supadata

by supadata-ai

Supadata MCP Server

supadata-ai/mcp MCP server

Use Supadata in your AI agent: video transcripts, media metadata, web scraping, crawling, and site discovery. This repository is the Supadata MCP server (Model Context Protocol), which AI agents like Claude, ChatGPT and Cursor use to call Supadata.

Add to your AI agent

Add to Claude Add to ChatGPT Add to Cursor

Click a button, then sign in with your Supadata account. No API key to copy.

  • Claude: click Add to Claude, click Connect and sign in. Works in claude.ai, Claude Desktop and the mobile apps. On Team/Enterprise plans an Owner enables Supadata first in Admin settings → Connectors.

  • ChatGPT: click Add to ChatGPT, click Connect and sign in.

  • Cursor: click Add to Cursor, confirm Install, and Cursor opens the Supadata sign-in page.

Claude Code / Codex

# Claude Code: then run /mcp and choose Authenticate
claude mcp add --transport http supadata https://api.supadata.ai/mcp

# Codex
codex mcp add supadata --url https://api.supadata.ai/mcp
codex mcp login supadata

Other MCP clients can connect to the hosted server at https://api.supadata.ai/mcp (OAuth, or an x-api-key header), or run the local server below.

Related MCP server: framefetch

Features

  • Video transcript extraction from YouTube, TikTok, Instagram, Twitter, and file URLs

  • Web scraping, crawling, and URL discovery

  • Media metadata retrieval from YouTube, TikTok, Instagram, and Twitter

  • AI-powered structured data extraction from video content

Installation

For step-by-step setup in Claude, ChatGPT, Cursor, Claude Code, Codex, Windsurf, VS Code and other AI agents, see the AI agents guide.

Running

Stdio (default)

Running the package starts an MCP server on stdio. Use this when your AI agent should spawn the server locally with your API key instead of using the hosted server (for example a custom agent, or VS Code / Windsurf config files):

SUPADATA_API_KEY=your-api-key npx -y @supadata/mcp

Example client configuration:

{
  "mcpServers": {
    "supadata": {
      "command": "npx",
      "args": ["-y", "@supadata/mcp"],
      "env": { "SUPADATA_API_KEY": "your-api-key" }
    }
  }
}

Streamable HTTP (hosted)

The same tools are served over Streamable HTTP by the Cloudflare Worker in src/worker.ts, deployed at https://api.supadata.ai/mcp with OAuth 2.1. Run it locally with npm run dev (wrangler). Direct x-api-key header authentication is also accepted on /mcp.

An OAuth connection stays alive while it is used and expires after 30 days without use. Then clients have to log in again; Codex keeps retrying the expired login instead of asking, so run codex mcp login supadata if Supadata tools stop working in Codex.

Configuration

Environment Variables

  • SUPADATA_API_KEY: Your Supadata API key (required for the stdio server). Get one at dash.supadata.ai

  • DEBUG: set to true for verbose logging

  • RUN_STDIO: set to true to force the stdio server to start when the module is imported rather than executed directly

How to Choose a Tool

Select the right tool based on your needs:

  • Transcript: Extract video transcripts from platforms and file URLs

  • Scrape: Extract content from a single page when you know the exact URL

  • Map: Discover all available URLs on a website

  • Crawl: Extract content from multiple related pages comprehensively

  • Metadata: Fetch metadata from media URLs (YouTube, TikTok, Instagram, Twitter)

  • Extract: Extract structured data from video content using AI

Tool

Best for

Returns

transcript

Video transcript extraction

text/markdown

metadata

Media metadata retrieval

JSON object

extract

AI-powered structured extraction

JSON object

scrape

Single page content

markdown/html

map

URL discovery on a site

URL[]

crawl

Multi-page extraction

markdown/html[]

Available Tools

Transcript (supadata_transcript)

Extract transcripts from supported video platforms (YouTube, TikTok, Instagram, Twitter) and file URLs.

Usage:

supadata_transcript --url "https://youtube.com/watch?v=example" --lang "en"

Check Transcript Status (supadata_check_transcript_status)

Check the progress of a transcript extraction job using the job ID.

Usage:

supadata_check_transcript_status --id "550e8400-e29b-41d4-a716-446655440000"

Metadata (supadata_metadata)

Fetch metadata from a media URL on supported platforms (YouTube, TikTok, Instagram, Twitter). Returns platform info, title, description, author details, engagement stats, media details, tags, and creation date.

Usage:

supadata_metadata --url "https://youtube.com/watch?v=example"

Extract (supadata_extract)

Extract structured data from a video URL using AI. Provide a prompt for what to extract, a JSON Schema for the output format, or both. Returns a job ID for async processing.

Usage:

supadata_extract --url "https://youtube.com/watch?v=example" --prompt "Extract the main topics discussed"

Check Extract Status (supadata_check_extract_status)

Check the progress of an extract job using the job ID.

Usage:

supadata_check_extract_status --id "550e8400-e29b-41d4-a716-446655440000"

Scrape (supadata_scrape)

Extract content from a single URL with advanced options.

Usage:

supadata_scrape --url "https://example.com" --lang "en"

Map (supadata_map)

Discover all indexed URLs on a website to find relevant pages before scraping.

Usage:

supadata_map --url "https://example.com"

Crawl (supadata_crawl)

Start an asynchronous crawl job to extract content from multiple pages on a site.

Usage:

supadata_crawl --url "https://example.com/blog" --limit 100

Check Crawl Status (supadata_check_crawl_status)

Check the progress of a crawl job using the job ID.

Usage:

supadata_check_crawl_status --id "550e8400-e29b-41d4-a716-446655440000"

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

Contributing

  1. Fork the repository

  2. Create your feature branch

  3. Run tests: npm test

  4. Submit a pull request

License

MIT License - see LICENSE file for details

Available Tools

9 tools
supadata_check_crawl_statusCheck Crawl Job StatusA
Read-onlyIdempotent
Inspect

Check crawl job status and retrieve results. Returns status: "scraping", "completed", "failed", or "cancelled". If status is "scraping", call this tool again after a few seconds with the same id.

NameRequiredDescriptionDefault
idYesThe job id returned by supadata_crawl.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower. The description adds real value beyond them: it enumerates the possible status values and prescribes the polling loop on 'scraping', which is exactly what an agent needs to drive the call correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then the return values, then the polling instruction. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the return-value burden by listing the status strings. The only gap is what the 'results' payload contains on completion, but the polling contract an agent needs is fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents the single id parameter as 'returned by supadata_crawl'. The description only reinforces this via 'the same id', adding polling-reuse semantics but little else beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check crawl job status and retrieve results'), which distinguishes it from the sibling status-check tools (extract, transcript) by resource. It stops short of explicitly naming those siblings, but the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear conditional usage rule: if status is 'scraping', re-call after a few seconds with the same id. This tells the agent how to poll. It does not state when to prefer this over the other check_*_status siblings, but the context is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_check_extract_statusCheck Extract Job StatusA
Read-onlyIdempotent
Inspect

Check extract job status and retrieve results. Returns status: "queued", "active", "completed", or "failed". If status is not "completed" or "failed", call this tool again after a few seconds with the same id.

NameRequiredDescriptionDefault
idYesThe job id returned by supadata_extract.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds genuinely new behavior: the four possible status values and the retry cadence, which is the core operational detail for a polling tool. It stops short of saying what a completed job's results contain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then the return values, then the polling instruction. Every sentence carries distinct information with no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the status values and tells the agent how to loop. The remaining gap is what 'results' actually look like on completion, but the polling contract an agent needs is largely present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter's description already states it is the job id returned by supadata_extract. The description only echoes this via 'with the same id', adding no format, uniqueness, or expiry details beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Check extract job status') and adds 'retrieve results', which is the actual payoff. The resource noun 'extract job' cleanly separates it from the sibling polling tools supadata_check_crawl_status and supadata_check_transcript_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit polling rule: if status is not 'completed' or 'failed', call again after a few seconds with the same id. That is concrete when-to-use guidance, though it never states the precondition that the id must come from a prior supadata_extract call or names alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_check_transcript_statusCheck Transcript Job StatusA
Read-onlyIdempotent
Inspect

Check transcript job status and retrieve results. Returns status: "queued", "active", "completed", or "failed". If status is not "completed" or "failed", call this tool again after a few seconds with the same id.

NameRequiredDescriptionDefault
idYesThe job id returned by supadata_transcript.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds the terminal vs. non-terminal status contract and the repeat-polling expectation, which is exactly the behavior an agent needs. It doesn't say what 'retrieve results' actually returns on completion or whether 'failed' carries error detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: purpose first, then the return contract, then the polling instruction. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden, and it does so by enumerating the four statuses and telling the agent when to stop polling. What's missing is a brief note on what a completed result contains or whether a failed status includes diagnostic information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, and the schema already documents it at 100% coverage. The description reinforces its semantics by specifying that the same id must be reused across polls, which adds operational meaning beyond the schema's 'job id returned by supadata_transcript'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check transcript job status and retrieve results') and enumerates the possible outcomes, which is more than a restatement of the title. It implicitly distinguishes itself from the crawl/extract status siblings by naming the transcript job resource, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete, actionable polling guidance: if status is not 'completed' or 'failed', call again after a few seconds with the same id. It doesn't explicitly state the prerequisite (that the id comes from starting a transcript job) in the description body, but the conditional loop is clear and correct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_crawlStart Website CrawlA
Read-only
Inspect

Create a crawl job to extract content from all pages on a website. Not available on every Supadata plan; if it returns upgrade-required, tell the user rather than retrying. Returns a jobId - use supadata_check_crawl_status with that jobId to poll for results.

NameRequiredDescriptionDefault
urlYesFull URL to start crawling from, including https://.
limitNoMaximum number of pages to crawl (1-5000, default 100). Each page costs 1 credit.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnly, openWorld, idempotent=false, destructive=false), and the description goes beyond them with plan gating, the upgrade-required failure semantics, and the asynchronous jobId-then-poll workflow. This is meaningful behavioral context the annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose, plan/error handling, and return-value workflow. Front-loaded with the action and the polling instruction is placed where it is needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly discloses the return (jobId) and the exact sibling to poll it with, and covers the plan-gating edge case. Nothing essential for a correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents url and limit richly (including 1-5000 range, default 100, 1 credit per page), so the schema carries the parameter burden. The description adds no parameter syntax or format detail beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Create a crawl job to extract content from all pages on a website.' Clearly distinguishable from siblings like supadata_scrape (single page) and supadata_map, and it names the exact follow-up tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the plan restriction and what to do on an upgrade-required response ('tell the user rather than retrying'), plus routes the agent to supadata_check_crawl_status for polling. No explicit when-not-to-use versus scrape/extract, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_extractExtract Structured Data from VideoA
Read-only
Inspect

Extract structured data from a video URL using AI. Provide a prompt for what to extract, a JSON Schema for the output format, or both. Returns a jobId for async processing - use supadata_check_extract_status with that jobId to poll for results.

NameRequiredDescriptionDefault
urlYesURL of a single video or post on YouTube, TikTok, Instagram, X (Twitter) or Facebook.
promptNoWhat to extract from the video, in plain language.
schemaNoJSON Schema describing the output format. Provide this, prompt, or both.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds the crucial non-obvious behavior: extraction is asynchronous and returns a jobId that must be polled elsewhere. It omits rate limits, credit cost, or failure modes, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: capability first, input requirements second, async follow-up last. Nothing is padded and the downstream call is placed where an agent needs it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully discloses that the immediate return is a jobId rather than extracted data, closing the biggest gap for this tool. It leaves residual unknowns such as media size/duration limits or processing latency, but the async contract is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (url, prompt, schema) are already documented in the schema. The description restates the prompt/schema-or-both rule without adding format, syntax, or size guidance, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Extract structured data from a video URL using AI") and names the companion tool supadata_check_extract_status, which separates it from siblings like supadata_transcript or supadata_scrape. An agent can identify the tool's job without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states that the caller must supply a prompt, a JSON Schema, or both, and that the returned jobId should be polled with supadata_check_extract_status. It does not contrast this tool against alternatives like supadata_transcript for plain text or supadata_metadata, so routing among siblings is only partly covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_mapMap Website URLsA
Read-onlyIdempotent
Inspect

List the URLs found on a website without fetching their content. Use this to discover a site's pages before choosing which ones to read with supadata_scrape, or to check a site's size before starting a supadata_crawl. Costs 1 credit.

NameRequiredDescriptionDefault
urlYesFull URL of the website to map, including https://.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the bar is lower. The description adds genuinely new context: that it lists URLs without fetching content and that each call costs 1 credit, which matters for budgeting. It does not mention result limits or pagination behavior for large sites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no waste. The core behavior leads, followed by the routing guidance, and the credit cost is a brief trailing note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only discovery tool with no output schema, the description covers what it does, when to use it, and its cost. It could say more about the shape or volume of the returned URL list, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single url parameter is fully documented in the schema including the https:// requirement, so parameter meaning is already handled. The description adds nothing further about the parameter; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (URLs found on a website) plus the key scoping constraint that content is not fetched. This cleanly separates it from supadata_scrape (which reads content) and supadata_crawl (which traverses), both named in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names two use cases and the alternatives that follow: discover pages before choosing which to read with supadata_scrape, or check site size before starting a supadata_crawl. The agent has a clear decision rule for selecting this tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_metadataGet Media MetadataA
Read-onlyIdempotent
Inspect

Fetch metadata from a media URL (YouTube, TikTok, Instagram, Twitter/X, Facebook). Returns platform info, title, description, author details, engagement stats, media details, tags, and creation date. Use this for details about a video or post; use supadata_transcript for what is said in it.

NameRequiredDescriptionDefault
urlYesURL of a single video or post on YouTube, TikTok, Instagram, X (Twitter) or Facebook.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds value by enumerating the returned fields unambiguously (platform info, title, description, author, engagement stats, tags, creation date), but doesn't mention failure modes for unsupported platforms/private content or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero waste: scoping clause, return-value clause, sibling-routing clause. Front-loaded with the core action and platform list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with full annotation coverage, no output schema, and no nested objects, the description covers purpose, scope, return contract, and alternative routing. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and only one parameter exists, so the schema already documents the URL. The description confirms platform support but adds no syntax or format guidance beyond what the schema property description provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) and resource (metadata from a media URL), enumerates supported platforms, and names the sibling it is not (supadata_transcript) with a crisp distinction between details vs. spoken content. An agent can route between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use this tool ('details about a video or post') versus the alternative ('use supadata_transcript for what is said in it'). The only missing piece is explicit single-URL scoping, which is implied by 'a media URL'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_scrapeScrape Web PageA
Read-onlyIdempotent
Inspect

Fetch a single web page and return its main content as Markdown, along with the page title, description and the links it contains. Use this to read or summarize a specific URL. To find which pages exist on a site, use supadata_map; to fetch many pages at once, use supadata_crawl. Costs 1 credit.

NameRequiredDescriptionDefault
urlYesFull URL of the web page, including https://. Use a URL you know exists; to find pages on a site, use supadata_map.
langNoPreferred page language as an ISO 639-1 code, e.g. "en", for sites that serve several languages.
noLinksNotrue leaves out the list of links found on the page.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that: the credit cost (1 credit) and the shape of the returned content (Markdown, title, description, links). No notable gap remains, though return format details are still fairly high-level.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences: what it returns, when to use it, and the sibling alternatives plus cost. Front-loaded with the primary capability and zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by naming Markdown content, title, description and links. Combined with the fully documented input schema and the safety annotations, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema, including the noLinks-to-links relationship and the lang ISO code. The description only restates that links are returned and does not add syntax or edge-case detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (Fetch) and resource (single web page) with an explicit statement of what is returned (main content as Markdown, title, description, links). It clearly distinguishes itself from supadata_map and supadata_crawl by naming both siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the use case ('read or summarize a specific URL') and routes the agent to alternatives with their selecting conditions: supadata_map for discovering pages, supadata_crawl for bulk fetching. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supadata_transcriptGet Video TranscriptA
Read-onlyIdempotent
Inspect

Get the transcript (what is said) of a video or post on YouTube, TikTok, Instagram, X (Twitter) or Facebook, or of an audio or video file URL. Not for ordinary web pages: use supadata_scrape for those. For large files, returns a jobId instead of the transcript directly - use supadata_check_transcript_status with that jobId to poll for results.

NameRequiredDescriptionDefault
urlYesURL of a single video or post on YouTube, TikTok, Instagram, X (Twitter) or Facebook, or a direct link to an audio or video file. Not for ordinary web pages (use supadata_scrape).
langNoPreferred transcript language as an ISO 639-1 code, e.g. "en". Falls back to the first available language.
modeNo"native" only fetches an existing transcript, "generate" always transcribes with AI, "auto" (default) tries native first and falls back to generate.
textNotrue returns the transcript as plain text; false (default) returns timestamped segments.
chunkSizeNoMaximum characters per timestamped segment (at least 50). Ignored when text is true.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-structured behavior: the dual return mode (transcript directly vs. jobId for large files) and the polling follow-up. It stops short of mentioning auth requirements, rate limits, or failure modes, so it is not maximally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler, front-loaded with the core capability before the exclusion and the async caveat. Every sentence carries information an agent needs to select and call the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explaining the two possible return shapes (transcript or jobId) and the follow-up tool needed for the latter. Combined with the platform coverage, the exclusion rule, and complete schema param docs, nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents lang (ISO 639-1 + fallback), mode (native/auto/generate semantics), text (plain text vs timestamped segments), and chunkSize (minimum 50, ignored when text is true). The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get the transcript ... of a video or post') and enumerates the supported platforms (YouTube, TikTok, Instagram, X, Facebook, plus direct audio/video file URLs). It also explicitly separates itself from supadata_scrape by naming the excluded resource type, so an agent can distinguish it from siblings without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-not ('Not for ordinary web pages: use supadata_scrape for those') with the alternative named. It also routes the async case: large files return a jobId and the agent should use supadata_check_transcript_status to poll, which is a clear conditional workflow rather than implied usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.3.6
    • Changedsupadata_check_crawl_status1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The job id returned by supadata_crawl."
    • Changedsupadata_check_extract_status1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The job id returned by supadata_extract."
    • Changedsupadata_check_transcript_status1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The job id returned by supadata_transcript."
    • Changedsupadata_crawl4 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of pages to crawl (1-5000, default 100). Each page costs 1 credit."
      • addedInput schema / properties / limit / maximum
        Added value: +5000
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / url / description
        Added value: +"Full URL to start crawling from, including https://."
    • Changedsupadata_extract3 fields changed
      • addedInput schema / properties / prompt / description
        Added value: +"What to extract from the video, in plain language."
      • addedInput schema / properties / schema / description
        Added value: +"JSON Schema describing the output format. Provide this, prompt, or both."
      • addedInput schema / properties / url / description
        Added value: +"URL of a single video or post on YouTube, TikTok, Instagram, X (Twitter) or Facebook."
    • Changedsupadata_map1 field changed
      • addedInput schema / properties / url / description
        Added value: +"Full URL of the website to map, including https://."
    • Changedsupadata_metadata1 field changed
      • addedInput schema / properties / url / description
        Added value: +"URL of a single video or post on YouTube, TikTok, Instagram, X (Twitter) or Facebook."
    • Changedsupadata_scrape3 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Preferred page language as an ISO 639-1 code, e.g. \"en\", for sites that serve several languages."
      • addedInput schema / properties / noLinks / description
        Added value: +"true leaves out the list of links found on the page."
      • addedInput schema / properties / url / description
        Added value: +"Full URL of the web page, including https://. Use a URL you know exists; to find pages on a site, use supadata_map."
    • Changedsupadata_transcript7 fields changed
      • addedInput schema / properties / chunkSize / description
        Added value: +"Maximum characters per timestamped segment (at least 50). Ignored when text is true."
      • addedInput schema / properties / chunkSize / minimum
        Added value: +50
      • addedInput schema / properties / lang / description
        Added value: +"Preferred transcript language as an ISO 639-1 code, e.g. \"en\". Falls back to the first available language."
      • addedInput schema / properties / mode / description
        Added value: +"\"native\" only fetches an existing transcript, \"generate\" always transcribes with AI, \"auto\" (default) tries native first and falls back to generate."
      • addedInput schema / properties / mode / enum
        Added value: +[
        +  "native",
        +  "auto",
        +  "generate"
        +]
      • addedInput schema / properties / text / description
        Added value: +"true returns the transcript as plain text; false (default) returns timestamped segments."
      • addedInput schema / properties / url / description
        Added value: +"URL of a single video or post on YouTube, TikTok, Instagram, X (Twitter) or Facebook, or a direct link to an audio or video file. Not for ordinary web pages (use supadata_scrape)."
  2. 9 tool updatesv1.2.2
    • First observedsupadata_check_crawl_status
    • First observedsupadata_check_extract_status
    • First observedsupadata_check_transcript_status
    • First observedsupadata_crawl
    • First observedsupadata_extract
    • First observedsupadata_map
    • First observedsupadata_metadata
    • First observedsupadata_scrape
    • First observedsupadata_transcript

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation4/5

The six content tools (metadata, transcript, scrape, map, crawl, extract) have distinct purposes and descriptions clarify boundaries (e.g. transcript vs metadata, scrape vs crawl). The three check_*_status tools are similar in shape but clearly tied to their respective async operations, so an agent can distinguish them.

Naming Consistency4/5

All tools use a consistent supadata_ prefix and snake_case, with check_*_status forming a predictable sub-pattern. Minor inconsistency: some names are verbs (extract, scrape, crawl) while others are nouns (metadata, transcript), but this remains readable and predictable.

Tool Count5/5

Nine tools are well-scoped for a media/web content extraction service, covering each operation plus its async polling counterpart. No obviously redundant or missing tools at this count.

Completeness4/5

Coverage is strong: discovery (map), single-page fetch (scrape), bulk crawl, media metadata, transcripts, AI extraction, plus status polling. Minor gaps like job cancellation or batch transcript fetching exist, but core workflows are covered.

Maintenance

ActivityActive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to fetch and digest content from 30+ platforms (Twitter, YouTube, Reddit, etc.) via a unified API. Supports multi-format output, transcription, and direct Obsidian sync.
    18
    BSD 2-Clause "Simplified"
  • A
    license
    Not graded
    quality
    D
    maintenance
    Transforms social media links (TikTok, Instagram, YouTube) and videos into text context with transcription, OCR, and metadata for AI agents like Claude and Cursor.
    MIT