Skip to main content
Glama
FlyCrawl-ai

FlyCrawl MCP Server

Official

flycrawl_extract

Extract validated structured JSON from live webpages using natural-language prompts and an optional JSON Schema, with JavaScript rendering and anti-bot handling.

Instructions

Extract typed, structured JSON entities from any live webpage using natural language guidance and an optional JSON Schema.

BEHAVIOR & SAFETY: Read-only and idempotent. Makes no modifications to target servers. Safe for autonomous agents. AUTHENTICATION: Requires valid FLYCRAWL_API_KEY environment variable. RATE LIMITS & BILLING: Costs 1 credit per successful extraction. Fair billing guarantee: 0 credits are deducted if the target page fails to load, times out, or returns a 5xx error. DYNAMIC JS & HEADLESS BROWSING: Automatically executes dynamic client-side JavaScript (SPAs, React, Vue, Angular) and bypasses anti-bot systems (Cloudflare Turnstile, DataDome, Akamai) using stealth residential IP pools. DIFFERENCE FROM flycrawl_scrape: Unlike flycrawl_scrape (which returns the whole page converted to cleaned Fit-Markdown), flycrawl_extract uses an LLM to parse and transform the DOM into a validated JSON schema. ERROR HANDLING: Returns { 'isError': true, 'code': '<HTTP_STATUS>', 'error': '' } on network failure, timeout, or schema mismatch without raising unhandled exceptions.

Input Schema

NameRequiredDescriptionDefault
urlYesTarget URL to extract data from (must start with http:// or https://).
promptYesNatural language instructions describing what specific data fields to extract.
schemaNoOptional JSON Schema definition for the extraction structure.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so: read-only/idempotent, required API key, 1-credit cost with a no-charge guarantee on failure/timeout/5xx, dynamic JS execution and anti-bot behavior, and an explicit error shape without unhandled exceptions. These are behavioral facts an agent cannot infer from the schema.

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

Conciseness4/5

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

Front-loaded purpose sentence followed by labeled blocks that make scanning cheap. It is slightly longer than necessary — the billing guarantee and anti-bot detail are dense — but each block carries distinct, decision-relevant information rather than restating the name.

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, and the description partially compensates by describing both success semantics (validated JSON per schema) and the failure envelope. The remaining gap is how results are wrapped relative to the supplied schema, which an agent would still have to discover empirically.

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 input schema. The description reinforces the natural-language + JSON Schema combination but adds no format, precedence, or conflict guidance (e.g., what happens when prompt and schema disagree). 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?

Opens with a specific verb and resource: 'Extract typed, structured JSON entities from any live webpage,' plus the mechanism (natural-language guidance + optional JSON Schema). It also explicitly names the sibling it is not (flycrawl_scrape), so an agent can differentiate 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 Guidelines4/5

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

The 'DIFFERENCE FROM flycrawl_scrape' block gives the exact selection rule: whole-page cleaned Markdown vs LLM-parsed validated JSON. That is a genuine alternative-plus-condition. It stops short of exclusions (e.g., auth-gated pages, non-HTML targets), which keeps it below a 5.

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