x402-scraper
Server Details
An open Model Context Protocol (MCP) server providing web scraping capabilities integrated with x402 dynamic discovery. Designed for AI agents to retrieve structured content from web URLs.
- Status
- Healthy
- Uptime
- 46.2% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 2 tools
The two tools are mainly distinguished by static vs. JS-rendered/dynamic content, and the descriptions make that boundary fairly clear. However, an agent may still need to determine the page type before selecting, creating some selection uncertainty.
Both names follow the same predictable scrape_<mode> pattern: scrape_basic and scrape_advanced. There is no mixing of conventions or inconsistent verb styles.
Two tools is borderline thin for a scraping server. The two-tier static/dynamic split is logical, but the surface offers very little beyond that and could reasonably include extraction, batching, or configuration endpoints.
The server covers the core read-only scraping use case for both static and JavaScript-rendered pages. It lacks supporting operations such as batch scraping, structured extraction, screenshots, or wait/crawl configuration, but agents can work around those gaps for simple scraping tasks.
Available Tools
2 toolsscrape_advancedBInspect
Scrapes JS-rendered SPAs, React apps, and dynamic pages ($0.03 USDC micro-transaction).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
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.
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.
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.
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.
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.
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 tool update
- Added
scrape_advanced
9 tool updates
- Removed
purchase_pass - Removed
scrape_batch - Removed
scrape_cached - Removed
scrape_dynamic - Removed
scrape_proof - Removed
scrape_stealth - Removed
scrape_structured - Removed
scrape_token_minified - Removed
webhook_relay
11 tool updates
- Added
purchase_pass - Removed
scrape - Added
scrape_basic - Added
scrape_batch - Added
scrape_cached - Added
scrape_dynamic - Added
scrape_proof - Added
scrape_stealth - Added
scrape_structured - Added
scrape_token_minified - Added
webhook_relay
1 tool update
- Changed
scrape1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "content": { + "description": "Extracted clean markdown content", + "type": "string" + }, + "success": { + "type": "boolean" + }, + "url": { + "type": "string" + } + }, + "type": "object" +}
3 tool updates
- Removed
batch_scrape - Removed
extract_metadata - Changed
scrape1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"URL to scrape"New value: +"Target web URL to scrape"
3 tool updates
- Changed
batch_scrape1 field changed- changed
Input schema / properties / urls / descriptionPrevious value: -"Array of fully qualified URLs to scrape concurrently"New value: +"Array of URLs to scrape"
- Changed
extract_metadata1 field changed- changed
Input schema / properties / selector / descriptionPrevious value: -"CSS selector string to target specific elements (optional)"New value: +"CSS selector to target (optional)"
- Changed
scrape1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"Fully qualified URL to scrape"New value: +"URL to scrape"
3 tool updates
- Changed
batch_scrape1 field changed- changed
Input schema / properties / urls / descriptionPrevious value: -"Array of URLs to scrape"New value: +"Array of fully qualified URLs to scrape concurrently"
- Changed
extract_metadata1 field changed- changed
Input schema / properties / selector / descriptionPrevious value: -"CSS selector to target (optional)"New value: +"CSS selector string to target specific elements (optional)"
- Changed
scrape1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"URL to scrape"New value: +"Fully qualified URL to scrape"
2 tool updates
- Added
batch_scrape - Added
extract_metadata
9 tool updates
- Removed
automate - Removed
crawl - Removed
extract - Removed
get_analytics - Removed
pdf - Removed
render - Added
scrape - Removed
screenshot - Removed
search_rag
8 tool updates
- Added
automate - Changed
crawl1 field changed- added
Input schema / properties / maxPagesAdded value: +{ + "description": "Maximum total pages to crawl", + "type": "number" +}
- Changed
extract2 fields changed- added
Input schema / properties / selectorAdded value: +{ + "description": "Optional CSS selector to target a specific container element", + "type": "string" +} - added
Input schema / properties / timeoutAdded value: +{ + "description": "Page load timeout in milliseconds", + "type": "number" +}
- Added
get_analytics - Added
pdf - Changed
render1 field changed- added
Input schema / properties / waitForSelectorAdded value: +{ + "description": "Optional CSS selector to wait for", + "type": "string" +}
- Added
screenshot - Added
search_rag
4 tool updates
- Added
crawl - Added
extract - Added
render - Removed
scrape
1 tool update
- First observed
scrape
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npmMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.