Skip to main content
Glama
scrapfly

Scrapfly MCP

by scrapfly

Server Quality Checklist

75%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.1

  • Disambiguation4/5

    Most tools have distinct purposes, but web_get_page and web_scrape overlap in fetching web content, which could cause confusion despite descriptions suggesting different use cases (quick fetch vs. full control). The info_account and info_api_key tools are clearly separate for account management versus API key retrieval.

    Naming Consistency3/5

    Naming is mixed with snake_case used throughout, but patterns vary: some start with 'info_' (info_account, info_api_key), others with 'web_' (web_get_page, web_scrape), and one with 'scraping_' (scraping_instruction_enhanced). This inconsistency makes the set less predictable, though it remains readable.

    Tool Count5/5

    With 6 tools, the count is well-scoped for a scraping server, covering account info, instructions, screenshot, and web fetching. Each tool appears to serve a specific function without being overly sparse or bloated, fitting the domain appropriately.

    Completeness4/5

    The toolset covers key scraping needs: account management, instructions, screenshot, and web fetching with both quick and full-control options. A minor gap exists in lacking explicit tools for post-processing scraped data or handling errors, but core workflows are adequately supported.

  • Average 3.8/5 across 6 of 6 tools scored. Lowest: 2.8/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 16 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under ISC License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • This repository includes a glama.json configuration file.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    Annotations already provide clear behavioral hints: readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description doesn't contradict these but adds minimal context beyond them—it implies the tool returns instructions rather than performing scraping, which aligns with read-only behavior. However, it doesn't disclose additional traits like rate limits, authentication needs, or response format details.

    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?

    The description is very concise—a single sentence with no wasted words. It's front-loaded with the core action ('Return critical instructions'), though it lacks detail. For such a brief tool purpose, this efficiency is appropriate, but it borders on under-specification rather than optimal conciseness.

    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 tool's low complexity (one dummy parameter, annotations covering safety, and an output schema present), the description is minimally adequate. However, it doesn't explain what the 'critical instructions' entail or how they're used, leaving gaps in understanding the tool's value. The output schema likely details return values, so the description needn't cover those, but more context on the instructions' nature would improve completeness.

    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 one parameter with 100% description coverage, documenting it as a 'Dummy input (for langchain compatibility).' The description doesn't add any parameter-specific information, which is acceptable since the schema fully covers the single parameter. With zero required parameters and high schema coverage, a baseline of 3 is appropriate, but the simplicity of the parameter setup (one optional dummy input) justifies a slightly higher score for clarity.

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

    Purpose2/5

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

    The description 'Return critical instructions for scraping tools' is a tautology that essentially restates the tool name/title. While it indicates the tool returns something (instructions), it doesn't specify what type of instructions, for which specific scraping tools, or what makes them 'critical.' It fails to distinguish this from sibling tools like 'info_account' or 'info_api_key' which might also return information.

    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. It doesn't mention any prerequisites, context for when these instructions are needed, or how it differs from sibling tools like 'web_scrape' or 'web_get_page.' Users must infer usage from the vague description alone.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, covering the safety and scope profile. The description doesn't add behavioral context beyond the basic action, such as performance characteristics, rate limits, or what happens with complex pages. However, it doesn't contradict the annotations either.

    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 ('Screenshot a URL.') that communicates the core purpose without any wasted words. It's appropriately front-loaded and earns its place by establishing the fundamental action.

    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 tool with 15 parameters, rich schema documentation, and annotations covering safety, the description is minimal but adequate as a starting point. However, it doesn't address output format (no output schema exists) or complex behavioral aspects, leaving some contextual gaps despite the structured data.

    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?

    With 100% schema description coverage, all 15 parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond the basic action, so it meets the baseline of 3 where the schema does the heavy lifting without compensating for any gaps.

    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 'Screenshot a URL' clearly states the verb ('screenshot') and resource ('URL'), making the purpose immediately understandable. However, it doesn't distinguish this from potential sibling tools like 'web_get_page' or 'web_scrape' that might also involve URL processing, so it doesn't reach the highest clarity level.

    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 like 'web_get_page' or 'web_scrape'. There's no mention of prerequisites, limitations, or specific scenarios where screenshotting is preferred over other URL interaction methods.

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

  • Behavior4/5

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

    Annotations already indicate this is a safe, read-only, idempotent operation (readOnlyHint: true, destructiveHint: false, idempotentHint: true), which the description doesn't repeat. It adds value by specifying the exact resource returned ('API key'), but doesn't disclose additional behavioral traits like rate limits or authentication requirements, though annotations cover the core safety profile adequately.

    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, clear sentence that directly states the tool's function with zero wasted words. It's front-loaded and efficiently conveys the essential information, making it easy for an agent to parse and understand quickly.

    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 (simple retrieval), rich annotations covering safety and idempotency, and the presence of an output schema (which handles return values), the description is mostly complete. It specifies the exact resource ('API key'), but could improve by clarifying usage context relative to siblings, though annotations reduce the burden.

    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 100% description coverage, documenting the single 'dummy' parameter as for LangChain compatibility. The description doesn't add parameter details beyond this, which is acceptable since the schema fully handles it. With 0 required parameters, the baseline is high, and the description focuses on the tool's purpose without redundancy.

    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 with a specific verb ('Return') and resource ('Users' ScrapFly API key'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'info_account', which might provide broader account information, leaving room for minor ambiguity.

    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. It doesn't mention scenarios like retrieving API keys for authentication purposes or contrast it with siblings such as 'info_account' that might include the API key among other details, leaving 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.

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and idempotency. The description adds context about 'sane defaults' and the speed focus ('fast'), which provides useful behavioral context beyond annotations. However, it doesn't mention rate limits, authentication needs, or other operational constraints.

    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 at just two sentences, with zero wasted words. It's front-loaded with the core purpose, followed by specific usage instructions. Every sentence earns its place by providing essential guidance that isn't covered elsewhere.

    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 complex tool with 10 parameters, 100% schema coverage, comprehensive annotations, and an output schema (implied by context signals), the description provides adequate context. It covers purpose and usage guidelines well, though it could better differentiate from sibling tools and provide more behavioral context about limitations or performance characteristics.

    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 the schema fully documents all 10 parameters. The description doesn't add any parameter-specific information beyond what's in the schema. The baseline score of 3 is appropriate when the schema carries the full parameter documentation burden.

    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 as 'Quick page fetch with sane defaults' which indicates it retrieves web page content efficiently. It specifies the verb 'fetch' and resource 'page', but doesn't explicitly differentiate from sibling tools like 'web_scrape' or 'screenshot' beyond the 'quick' qualifier. The purpose is clear but sibling differentiation is incomplete.

    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 usage guidance: 'Use tool scraping_instruction_enhanced before using this tool' establishes a prerequisite, and 'Use when you just need the content fast' gives clear context for when to choose this tool. This directly addresses when to use it versus alternatives, though it doesn't explicitly name sibling tools.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true. The description adds valuable context about the 'full control' nature of this advanced scraping tool and the prerequisite relationship with another tool. While it doesn't mention rate limits or authentication needs, it provides meaningful behavioral context beyond 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 extremely concise at just 2 sentences, with zero wasted words. It's perfectly front-loaded with the core purpose, followed by crucial usage guidance. Every sentence earns its place by providing essential information.

    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?

    Given the comprehensive annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint), 100% schema description coverage, and the existence of an output schema, the description provides exactly what's needed. It states the purpose, gives critical usage guidance, and doesn't need to explain parameters or return values that are already well-documented elsewhere.

    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?

    With 100% schema description coverage, the input schema already documents all 26 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the heavy lifting for parameter documentation.

    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 as 'Scrape a URL with full control', which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools beyond mentioning one alternative; it could more clearly distinguish from 'screenshot' and 'scraping_instruction_enhanced'.

    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 excellent usage guidance with explicit instructions: 'Use tool scraping_instruction_enhanced before using this tool' (prerequisite) and 'Prefer web_get_page for quick fetch' (alternative for simpler cases). This gives clear when-to-use and when-not-to-use context.

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

  • Behavior4/5

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

    Annotations already cover key behavioral traits (read-only, open-world, idempotent, non-destructive), so the bar is lower. The description adds useful context about the tool's focus on account management rather than scraping operations, which complements the annotations without contradiction.

    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 (two sentences) and front-loaded with the core purpose, followed by usage guidance. Every sentence adds value without redundancy, making it efficient and well-structured.

    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?

    Given the tool's low complexity, rich annotations covering safety and behavior, and the presence of an output schema, the description is complete. It provides all necessary context for an agent to understand when and how to use this tool effectively.

    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 100% schema description coverage and only one dummy parameter documented in the schema, the description appropriately omits parameter details. It focuses on the tool's purpose and usage, which is sufficient given the minimal parameter 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 ('Get') and resources ('subscription, usage, limits'), making the purpose explicit. It distinguishes this tool from sibling scraping tools by focusing on account metadata rather than content extraction.

    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 ('for quotas/billing/concurrency') and when to avoid ('Avoid for content scraping'), directly addressing alternatives like web_scrape or web_get_page. This gives clear context for tool selection.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

scrapfly-mcp MCP server

Copy to your README.md:

Score Badge

scrapfly-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scrapfly/scrapfly-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server