Skip to main content
Glama
supadata-ai

Supadata

by supadata-ai

Supadata MCP Server

supadata-ai/mcp 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/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.

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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
limitNo

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
promptNo
schemaNo

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
noLinksNo
langNo

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
langNo
textNo
chunkSizeNo
modeNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

  1. 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

A3.7/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessUnresponsive

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