Supadata
This MCP server integrates with Supadata to extract video transcripts, scrape web content, and retrieve media metadata.
Video Transcript Extraction: Get transcripts from YouTube, TikTok, Instagram, Twitter, and file URLs via
supadata_transcript; poll async jobs withsupadata_check_transcript_status.Web Scraping: Extract content from a single page (
supadata_scrape) with optional language and link removal.URL Discovery: Map all indexed URLs on a site (
supadata_map) to find relevant pages.Crawling: Start async multi-page crawls (
supadata_crawl) and check progress withsupadata_check_crawl_status.Media Metadata: Fetch rich metadata (title, author, stats, tags) from YouTube, TikTok, Instagram, and Twitter via
supadata_metadata.AI Structured Extraction: Use
supadata_extractwith prompt and/or JSON schema to extract structured data from videos; check status withsupadata_check_extract_status.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Supadatatranscribe this YouTube video: https://youtu.be/example123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Supadata MCP Server
A Model Context Protocol (MCP) server that integrates with Supadata for video transcript extraction, web scraping, crawling, and site discovery.
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
Related MCP server: framefetch
Installation
For setup instructions for Claude, ChatGPT, Cursor, Windsurf, VS Code, and other clients, see the integration guide.
Running
Stdio (default)
Running the package starts an MCP server on stdio. This is what MCP clients (Claude Desktop, Cursor, VS Code, Windsurf, ...) use when they spawn the server:
SUPADATA_API_KEY=your-api-key npx -y @supadata/mcpExample 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.
Configuration
Environment Variables
SUPADATA_API_KEY: Your Supadata API key (required for the stdio server). Get one at dash.supadata.aiDEBUG: set totruefor verbose loggingRUN_STDIO: set totrueto 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 100Check 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 testContributing
Fork the repository
Create your feature branch
Run tests:
npm testSubmit a pull request
License
MIT License - see LICENSE file for details
Available Tools
9 toolssupadata_check_crawl_statusA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return statuses ('scraping', 'completed', 'failed', 'cancelled') and retry behavior for 'scraping', which is useful. However, it lacks details on error handling, rate limits, authentication needs, or what 'retrieve results' entails (e.g., data format). This is adequate but has gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: two sentences that directly state the purpose and provide specific usage guidance. Every sentence adds value, with no redundant or vague language, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema coverage, the description is moderately complete. It covers core functionality and retry logic but omits details like result format, error cases, or how it differs from siblings. For a status-checking tool, this is minimally viable but leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the description must compensate. It mentions 'id' in the retry instruction ('same id'), implying it's a job identifier, but does not explicitly define it or provide examples. This adds minimal semantic value beyond the schema, meeting the baseline for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check crawl job status and retrieve results.' It specifies the verb ('check') and resource ('crawl job'), but does not explicitly differentiate it from sibling tools like 'supadata_check_extract_status' or 'supadata_check_transcript_status', which likely check different job types. This omission prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: 'If status is "scraping", call this tool again after a few seconds with the same id.' This indicates when to retry, but it does not specify when to use this tool versus alternatives (e.g., other status-checking siblings) or any prerequisites, such as needing a job ID from a prior crawl operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_check_extract_statusA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it returns specific status values, and if the status is intermediate, it instructs to retry. However, it doesn't mention error handling, rate limits, or authentication needs, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by essential behavioral guidance. Both sentences earn their place by providing critical information without redundancy. It's appropriately sized for a simple status-checking tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, usage, and basic behavior. However, it lacks details on error cases (e.g., what happens if the id is invalid) and doesn't describe the structure of results beyond status values, which could be important since there's no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaning by explaining that the 'id' parameter should be reused for retries ('call this tool again... with the same id'), which clarifies the parameter's role beyond just being required. However, it doesn't specify what format the id should be or where it comes from.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check', 'retrieve') and resource ('extract job status and results'). It distinguishes from siblings like 'supadata_check_crawl_status' and 'supadata_check_transcript_status' by specifying it's for extract jobs, not crawls or transcripts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'If status is not "completed" or "failed", call this tool again after a few seconds with the same id.' This gives clear conditions for retry behavior and distinguishes it from alternatives that might handle different job types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_check_transcript_statusA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's polling behavior, return values (status enum), and retry logic. It doesn't mention error handling, rate limits, or authentication requirements, but provides substantial operational context for a status-checking tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each serve distinct purposes: the first states the core functionality, the second provides critical usage guidance. There is zero wasted text, and the information is front-loaded with the most important details first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter status-checking tool with no annotations or output schema, the description provides excellent coverage of the core functionality, return values, and polling behavior. It doesn't specify what 'results' means when status is 'completed' or error details for 'failed' status, but gives sufficient context for effective agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for the single parameter, the description adds crucial context by implying the 'id' parameter should be reused for polling ('call this tool again after a few seconds with the same id'). While it doesn't specify the id format or source, it provides meaningful guidance about parameter usage in the polling workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check transcript job status and retrieve results') and distinguishes it from siblings by focusing on transcript jobs specifically. It identifies the exact resource being checked (transcript job status/results).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('If status is not "completed" or "failed", call this tool again after a few seconds with the same id') and distinguishes it from alternatives by specifying it's for transcript jobs only. The retry guidance is particularly valuable for polling scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_crawlA
Create a crawl job to extract content from all pages on a website. Returns a jobId - use supadata_check_crawl_status with that jobId to poll for results.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool creates a job and returns a jobId for polling, which is useful behavioral context. However, it doesn't mention potential side effects (e.g., rate limits, authentication needs, or whether the crawl is destructive to the target website), leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise and front-loaded: the first sentence states the purpose, and the second provides essential usage guidance. Every sentence earns its place with no wasted words, making it easy for an AI agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (creating a crawl job with 2 parameters), no annotations, and no output schema, the description is partially complete. It explains the tool's purpose and result-handling workflow but lacks details on parameters, error conditions, or output structure beyond jobId, leaving the agent with significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'url' implicitly but doesn't explain the 'limit' parameter at all. The description adds minimal semantic value beyond what the schema names suggest, failing to clarify parameter purposes or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a crawl job to extract content from all pages on a website.' It specifies the verb ('Create'), resource ('crawl job'), and scope ('all pages on a website'), distinguishing it from siblings like supadata_scrape or supadata_extract by focusing on comprehensive website crawling rather than single-page operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: for extracting content from all pages on a website. It also provides clear alternatives by naming supadata_check_crawl_status for polling results, and implicitly distinguishes from siblings like supadata_scrape (likely for single pages) or supadata_extract (for other extraction tasks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_extractA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| prompt | No | ||
| schema | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: the tool performs AI-based extraction (implying computational processing), returns a jobId for async processing, and requires polling with supadata_check_extract_status. However, it lacks details on rate limits, authentication needs, or error handling, which would be beneficial for a tool with async behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two sentences that efficiently convey the core functionality, parameters, and async workflow without redundancy. Every sentence adds value, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (async processing, AI extraction), lack of annotations, and no output schema, the description is largely complete. It covers the purpose, parameters, and result-handling process. However, it could be more comprehensive by mentioning potential limitations, such as video length constraints or supported formats, to fully guide the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaningful context beyond the schema by explaining that 'url' is for the video source, 'prompt' specifies what to extract, and 'schema' defines the output JSON format. This clarifies the purpose and usage of each parameter, though it doesn't detail exact formats or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Extract structured data from a video URL using AI') and resources ('video URL'), distinguishing it from siblings like supadata_crawl, supadata_scrape, or supadata_transcript by focusing on AI-powered extraction of structured data rather than crawling, scraping, or transcription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (for extracting structured data from video URLs with AI) and when to use alternatives (e.g., use supadata_check_extract_status to poll for results), clearly differentiating it from sibling tools and outlining the async workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_mapC
Discover URLs on a website
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Discover URLs on a website' implies a read-only operation that might involve web scraping or mapping, but it doesn't disclose key traits like rate limits, authentication needs, potential destructive effects (e.g., if it triggers crawls), or output format. The description is too vague for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Discover URLs on a website' is front-loaded and directly conveys the core function without unnecessary words. It's appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a web discovery tool with no annotations, no output schema, and low schema coverage), the description is incomplete. It doesn't explain what 'discover' entails (e.g., depth, scope), what the output looks like, or how it differs from siblings. For a tool that likely interacts with external systems, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the schema provides no details about the 'url' parameter. The description doesn't add any semantic meaning beyond implying the parameter is a website URL, such as format requirements (e.g., must include http://) or constraints (e.g., only certain domains). It fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Discover URLs on a website' states a clear purpose with a specific verb ('Discover') and resource ('URLs on a website'), but it doesn't distinguish this tool from its siblings like 'supadata_crawl' or 'supadata_scrape', which might perform similar discovery functions. The purpose is understandable but lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings such as 'supadata_crawl' and 'supadata_scrape' that likely involve web data extraction, there's no indication of when 'supadata_map' is preferred, such as for initial URL discovery versus full content crawling. This leaves the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_metadataA
Fetch metadata from a media URL (YouTube, TikTok, Instagram, Twitter). Returns platform info, title, description, author details, engagement stats, media details, tags, and creation date.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions what data is returned (platform info, title, etc.), it doesn't describe error handling, rate limits, authentication requirements, or whether the operation is idempotent. For a tool that fetches external data, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the action and supported platforms, the second enumerates the returned data. Every element serves a purpose with zero wasted words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description adequately covers the basic purpose and return data. However, it lacks details about error conditions, rate limits, and platform-specific limitations that would be important for robust usage. The absence of annotations increases the need for more comprehensive behavioral disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter and 0% schema description coverage, the description adds substantial value by specifying that the 'url' parameter should be a media URL from specific platforms (YouTube, TikTok, Instagram, Twitter). This provides crucial context that the schema alone doesn't convey, though it could be more explicit about URL format requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('fetch metadata'), the resource ('from a media URL'), and lists the supported platforms (YouTube, TikTok, Instagram, Twitter). It distinguishes itself from sibling tools by focusing on metadata extraction rather than crawling, scraping, or transcript operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying the types of media URLs it supports, but doesn't explicitly state when to use this tool versus alternatives like 'supadata_scrape' or 'supadata_extract'. No guidance is provided on prerequisites, limitations, or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_scrapeC
Scrape a single web page
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| noLinks | No | ||
| lang | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('scrape') but doesn't explain what scraping entails (e.g., fetching content, parsing HTML), potential side effects (e.g., network requests, rate limits), authentication needs, or output format. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to grasp quickly. Every word earns its place by conveying essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a scraping tool with 3 parameters, no annotations, and no output schema), the description is incomplete. It doesn't cover what scraping returns, how parameters affect behavior, or any operational constraints. For a tool that likely involves network operations and data extraction, more context is needed to be fully useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'scrape a single web page', which hints at the 'url' parameter but doesn't explain 'noLinks' or 'lang'. No additional meaning is provided beyond the basic action, failing to clarify parameter purposes or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('scrape') and resource ('a single web page'), making the purpose immediately understandable. It distinguishes from siblings like 'supadata_crawl' (which likely handles multiple pages) by specifying 'single'. However, it doesn't explicitly mention what 'scrape' entails versus extraction or other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'supadata_extract' or 'supadata_crawl'. The description implies it's for single-page scraping, but there's no explicit comparison or context about prerequisites, limitations, or typical use cases relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supadata_transcriptA
Extract transcript from a video or file URL. For large files, returns a jobId instead of the transcript directly - use supadata_check_transcript_status with that jobId to poll for results.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| lang | No | ||
| text | No | ||
| chunkSize | No | ||
| mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about handling large files (returns a jobId for polling) and implies an asynchronous process, but lacks details on permissions, rate limits, error handling, or output format. This is adequate but has gaps for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with two sentences that efficiently convey the core functionality and important behavioral note. Every sentence earns its place by adding value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is partially complete. It covers the main purpose and a key behavioral trait (jobId for large files), but lacks details on parameters, output values, and other operational aspects, making it minimally viable but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning parameters are undocumented in the schema. The description does not explain any parameters (e.g., what 'lang', 'text', 'chunkSize', or 'mode' do), failing to compensate for the low coverage. This leaves most parameters ambiguous beyond the required 'url'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Extract transcript from a video or file URL.' It specifies the action (extract) and resource (transcript from URL), but does not explicitly differentiate it from sibling tools like supadata_extract or supadata_scrape, which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: for extracting transcripts from URLs, with a note on handling large files by using supadata_check_transcript_status for polling. However, it does not explicitly state when not to use it or compare it to alternatives like supadata_extract, leaving some ambiguity.
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.
9 tool updates
v1.2.2- First observed
supadata_check_crawl_status - First observed
supadata_check_extract_status - First observed
supadata_check_transcript_status - First observed
supadata_crawl - First observed
supadata_extract - First observed
supadata_map - First observed
supadata_metadata - First observed
supadata_scrape - First observed
supadata_transcript
TDQS
Scored across 9 tools
Most tools have distinct purposes: crawl extracts all pages, scrape extracts a single page, map discovers URLs, metadata fetches media info, extract uses AI for structured data, transcript extracts transcripts. However, crawl and scrape could be confused as both extract web content, though crawl is for entire sites and scrape for single pages. The three status-check tools are clearly differentiated by job type.
All tools follow a consistent 'supadata_' prefix with snake_case naming. The pattern is uniform: supadata_verb or supadata_verb_noun (e.g., supadata_crawl, supadata_check_crawl_status). There are no deviations in style or convention across the nine tools.
With 9 tools, the count is well-scoped for a data extraction server covering web crawling, scraping, media metadata, and AI extraction. Each tool serves a specific function in the workflow (e.g., job creation, status checking, direct operations), and none seem redundant or excessive for the domain.
The tool set covers core data extraction workflows: initiating jobs (crawl, extract, transcript), checking their statuses, and performing direct operations (scrape, map, metadata). A minor gap is the lack of tools for managing or canceling jobs, which could limit agent control in edge cases, but the surface supports most common use cases effectively.
Maintenance
Related MCP Connectors
Transcribe public videos & audio (YouTube, TikTok, IG) into accurate, timestamped text via API.
Extract structured insights from videos, podcasts, articles, and PDFs with multi-model AI
Production transcript API for YouTube, TikTok and Instagram, with AI transcription fallback.
Provide token-optimized, structured YouTube data to enhance your LLM applications. Access efficien…
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables 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.18BSD 2-Clause "Simplified"- AlicenseNot gradedqualityCmaintenanceAgent-first video-data API + MCP across 6 platforms (YouTube/Shorts, TikTok, Reddit, Instagram, Pinterest): metadata, insights, Whisper transcript, and parametric frames. Pay-per-call via x402 (USDC) or Stripe.6 npmMIT
- FlicenseNot gradedqualityCmaintenancePay-per-success YouTube transcript extractor for AI agents and RAG pipelines. Timestamps, SRT, plain text. Failed videos are never charged. $0.005/video.-
- AlicenseNot gradedqualityDmaintenanceTransforms social media links (TikTok, Instagram, YouTube) and videos into text context with transcription, OCR, and metadata for AI agents like Claude and Cursor.MIT