Skip to main content
Glama

Server Details

Programmatic web-scraping MCP server powered by x402 micro-transactions on Base.

Ownership verified
Status
Healthy
Uptime
44.2% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL
Repository
ihen404/x402-scraper-api
GitHub Stars
0

TDQS

B3.4/5.0

Scored across 2 tools

Disambiguation4/5

The two tools are mostly distinct: static vs JS-rendered pages, with pricing differences reinforcing the choice. However, advanced likely also handles static content, so an agent may wonder whether basic is ever preferable beyond cost.

Naming Consistency5/5

Both names follow the same scrape_<modifier> pattern with clear adjectives. There is no mixing of conventions.

Tool Count3/5

Two tools is borderline thin for a scraper API, though the narrow tiered-scraping purpose makes it understandable. Additional operations would likely be expected in a fuller API surface.

Completeness3/5

The core scrape action is covered for both static and dynamic pages, but there are notable gaps such as batch scraping, structured extraction options, or job/status handling. Agents can work around this for simple cases, but the surface feels minimal.

Available Tools

2 tools
scrape_advancedBInspect

Scrapes JS-rendered SPAs, React apps, and dynamic pages ($0.03 USDC micro-transaction).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations, so the description carries the full behavioral burden. It usefully discloses a $0.03 USDC micro-transaction cost, which is real value the schema cannot convey, but it says nothing about return format, timeout/rendering limits, failure behavior, or whether a wallet balance is required.

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?

A single front-loaded sentence with no filler. The differentiating capability comes first and the cost caveat is appended compactly — every clause earns its place.

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?

With no output schema and no annotations, the description should say more about what comes back and how it differs from scrape_basic. It covers the capability and the cost, but an agent still lacks return-shape and alternative-selection information.

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?

One parameter at 0% schema description coverage, and the description adds nothing about the 'url' parameter (format, whether redirects/relative URLs are accepted, page-level options). With low coverage the description is expected to compensate, and it does not.

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

Purpose4/5

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

States a specific verb ('Scrapes') and a concrete resource class ('JS-rendered SPAs, React apps, and dynamic pages'), which tells an agent this is the heavyweight rendering path. It does not explicitly name scrape_basic as the counterpart, so the sibling differentiation is left to inference from the 'advanced' naming.

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 mention of JS-rendered/dynamic pages implies when this tool is appropriate versus a static scraper, but there is no explicit 'use this instead of scrape_basic when...' routing or any exclusion. Usage is implied rather than stated.

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

scrape_basicBInspect

Scrapes static web page content ($0.01 USDC micro-transaction).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the $0.01 USDC micro-transaction cost and the static-content limitation, which are useful traits. However, it omits payment/auth mechanics, rate limits, and output or rendering behavior, leaving significant 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?

One sentence, front-loaded with the action and scope, with no wasted words. Appropriately sized for a simple one-parameter tool.

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 simple scraper, the description covers the core action and cost. Yet the sibling relationship with scrape_advanced remains implicit, and return format or payment flow is not clarified, which an agent may need when selecting between the two tools.

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 coverage for the single required url parameter is 0%, so the description must compensate and does not. It adds no format, constraints, or examples for the URL, leaving the parameter largely self-explanatory but undocumented.

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

Purpose4/5

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

States the specific verb 'Scrapes' and resource 'static web page content'. The word 'static' implicitly distinguishes it from the sibling scrape_advanced, but the description never names or directly contrasts with that sibling, so full sibling differentiation is missing.

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 explicit when-to-use or when-not guidance. The phrase 'static web page content' hints that dynamic pages are out of scope, but there is no instruction on choosing this tool over scrape_advanced, nor any mention of prerequisites or alternatives.

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. 10 tool updates
    • Removedpurchase_pass
    • Addedscrape_advanced
    • Removedscrape_batch
    • Removedscrape_cached
    • Removedscrape_dynamic
    • Removedscrape_proof
    • Removedscrape_stealth
    • Removedscrape_structured
    • Removedscrape_token_minified
    • Removedwebhook_relay
  2. 11 tool updates
    • Addedpurchase_pass
    • Removedscrape
    • Addedscrape_basic
    • Addedscrape_batch
    • Addedscrape_cached
    • Addedscrape_dynamic
    • Addedscrape_proof
    • Addedscrape_stealth
    • Addedscrape_structured
    • Addedscrape_token_minified
    • Addedwebhook_relay
  3. 1 tool update
    • Changedscrape1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "content": {
        +      "description": "Extracted clean markdown content",
        +      "type": "string"
        +    },
        +    "success": {
        +      "type": "boolean"
        +    },
        +    "url": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  4. 3 tool updates
    • Removedbatch_scrape
    • Removedextract_metadata
    • Changedscrape1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"URL to scrape"New value: +"Target web URL to scrape"
  5. 3 tool updates
    • Changedbatch_scrape1 field changed
      • changedInput schema / properties / urls / description
        Previous value: -"Array of fully qualified URLs to scrape concurrently"New value: +"Array of URLs to scrape"
    • Changedextract_metadata1 field changed
      • changedInput schema / properties / selector / description
        Previous value: -"CSS selector string to target specific elements (optional)"New value: +"CSS selector to target (optional)"
    • Changedscrape1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"Fully qualified URL to scrape"New value: +"URL to scrape"
  6. 3 tool updates
    • Changedbatch_scrape1 field changed
      • changedInput schema / properties / urls / description
        Previous value: -"Array of URLs to scrape"New value: +"Array of fully qualified URLs to scrape concurrently"
    • Changedextract_metadata1 field changed
      • changedInput schema / properties / selector / description
        Previous value: -"CSS selector to target (optional)"New value: +"CSS selector string to target specific elements (optional)"
    • Changedscrape1 field changed
      • changedInput schema / properties / url / description
        Previous value: -"URL to scrape"New value: +"Fully qualified URL to scrape"
  7. 2 tool updates
    • Addedbatch_scrape
    • Addedextract_metadata
  8. 9 tool updates
    • Removedautomate
    • Removedcrawl
    • Removedextract
    • Removedget_analytics
    • Removedpdf
    • Removedrender
    • Addedscrape
    • Removedscreenshot
    • Removedsearch_rag
  9. 8 tool updates
    • Addedautomate
    • Changedcrawl1 field changed
      • addedInput schema / properties / maxPages
        Added value: +{
        +  "description": "Maximum total pages to crawl",
        +  "type": "number"
        +}
    • Changedextract2 fields changed
      • addedInput schema / properties / selector
        Added value: +{
        +  "description": "Optional CSS selector to target a specific container element",
        +  "type": "string"
        +}
      • addedInput schema / properties / timeout
        Added value: +{
        +  "description": "Page load timeout in milliseconds",
        +  "type": "number"
        +}
    • Addedget_analytics
    • Addedpdf
    • Changedrender1 field changed
      • addedInput schema / properties / waitForSelector
        Added value: +{
        +  "description": "Optional CSS selector to wait for",
        +  "type": "string"
        +}
    • Addedscreenshot
    • Addedsearch_rag
  10. 4 tool updates
    • Addedcrawl
    • Addedextract
    • Addedrender
    • Removedscrape
  11. 1 tool update
    • First observedscrape

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.