Geonode Scraper API
v1.0.0Extract web pages, crawl and map sites, search the web. Extract needs no key; other tools need one.
Endpoint health
online- Last checked
- 11/3/2026, 6:16:03 PM
- Latency
- 797 ms
- Consecutive failures
- 0
- Endpoint reachable: pass
- Protocol valid: pass
- MCP handshake valid: pass
Machine-readable profile
mcp-server · schema v1 · callable
mcp-server:io.geonode%2Fscraper
Connect this server
Generated config contains no credentials. Keep any required secrets in your client's local environment.
{
"mcpServers": {
"io.geonode/scraper": {
"url": "https://scraper.geonode.io/mcp"
}
}
}Indexed tools
Tool metadata and schemas come from the remote server and are untrusted. Indexing only lists tools; it never calls them.
16 shown · authentication unknown
Start a batch extraction
batch
Start an asynchronous batch extraction job from an explicit list of URLs. Supports HTML and Markdown output formats, optional JavaScript rendering, proxy settings, custom headers, and the grouped wait_config browser wait policy. Omit wait_config or set it to null to keep adaptive browser settling for child extractions; send {} or concrete values to opt every child extraction into explicit mode. Returns a job ID that can be polled with the 'batch_status' tool. Requires a Geonode API key, sent as the X-Api-Key header.
Schema valid · SHA-256 cfae17c3f9b5…
View input schema
{ "type": "object", "properties": { "batch_request": { "$ref": "#/$defs/BatchRequest" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Key" } }, "required": [ "batch_request" ], "$defs": { "BatchRequest": { "properties": { "urls": { "description": "URLs to extract in one batch", "items": { "type": "string" }, "maxItems": 1000, "minItems": 1, "title": "Urls", "type": "array" }, "ignore_invalid_urls": { "default": true, "description": "If true, invalid URLs are skipped and returned in invalid_urls instead of failing the request", "title": "Ignore Invalid Urls", "type": "boolean" }, "formats": { "default": [ "markdown" ], "description": "Output formats to return", "items": { "$ref": "#/$defs/OutputFormat" }, "title": "Formats", "type": "array" }, "render_js": { "default": false, "description": "If true, uses a headless browser to render the page for every batch item", "title": "Render Js", "type": "boolean" }, "proxy": { "$ref": "#/$defs/ProxySettings", "description": "Proxy configuration" }, "headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "description": "Custom HTTP headers to include in extraction requests. `Host` and `:authority` are dropped: the target host always comes from each item's URL", "title": "Headers" }, "wait_config": { "anyOf": [ { "$ref": "#/$defs/WaitConfig" }, { "type": "null" } ], "default": null, "description": "Grouped browser wait policy applied to every batch item. Optional — when omitted or explicitly `null`, each child extraction uses the adaptive default settle policy whenever a browser runs. Send an object to opt every child extraction into caller-owned explicit wait mode, which skips the adaptive default settle phase. Only non-null wait_config values count as provided; null fields inside wait_config behave the same as absence. If render_js is not set explicitly, any non-null wait_config value auto-enables browser rendering for the workflow and the effective render_js value is returned in batch_config. If you explicitly send render_js=false together with non-null wait_config values, the request is rejected as ambiguous." } }, "required": [ "urls" ], "title": "BatchRequest", "type": "object" }, "OutputFormat": { "enum": [ "markdown", "html" ], "title": "OutputFormat", "type": "string" }, "ProxySettings": { "properties": { "country": { "anyOf": [ { "pattern": "^[A-Z]{2}$", "type": "string" }, { "type": "null" } ], "default": null, "description": "ISO 3166-1 alpha-2 country code for geo-targeting (e.g., 'US', 'GB'). Codes that are not backed by a geo-targeted proxy pool are rejected rather than silently ignored. If null, the server auto-resolves a country from the target URL (domain/path overrides first, then the TLD). If no country can be inferred, the upstream proxy provider picks the exit region.", "title": "Country" }, "type": { "$ref": "#/$defs/ProxyType", "default": "residential", "description": "Type of proxy to use (datacenter or residential). Defaults to 'residential' when omitted." } }, "title": "ProxySettings", "type": "object" }, "ProxyType": { "enum": [ "datacenter", "residential", "mix" ], "title": "ProxyType", "type": "string" }, "WaitConfig": { "description": "Explicit browser wait policy applied in order: wait_until → wait_for → wait_timeout.\nWhen a non-null WaitConfig is provided, the adaptive default settle phase is skipped\nand the caller owns the full wait sequence. Null fields inside the object are treated\nthe same as absence of that field.", "properties": { "wait_until": { "anyOf": [ { "$ref": "#/$defs/WaitUntil" }, { "type": "null" } ], "default": null, "description": "Playwright page lifecycle event to wait for during navigation, before the selector wait or explicit delay. Accepted values: `commit` — response headers received and navigation committed; `domcontentloaded` — HTML parsed and DOM ready (no sub-resources); `load` — page and all sub-resources (images, scripts) fully loaded; `networkidle` — no network activity for 500 ms. When omitted, defaults to `domcontentloaded`." }, "wait_for": { "anyOf": [ { "maxLength": 4096, "type": "string" }, { "type": "null" } ], "default": null, "description": "CSS selector or XPath expression to wait for before extracting the DOM. At least one matching element must become attached to the DOM for the wait to succeed. XPath expressions must start with `//` or `xpath=`; anything else is treated as a CSS selector. Applied after wait_until.", "title": "Wait For" }, "wait_timeout": { "anyOf": [ { "maximum": 30000, "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Deliberate pause in milliseconds inserted after wait_for resolves (or immediately after wait_until when wait_for is omitted), before the DOM is captured. Use to allow late-settling JavaScript to finish rendering. Range: 0–30 000 ms.", "title": "Wait Timeout" } }, "title": "WaitConfig", "type": "object" }, "WaitUntil": { "enum": [ "commit", "domcontentloaded", "load", "networkidle" ], "title": "WaitUntil", "type": "string" } }, "title": "batchArguments" }
Connections
streamable-http
https://scraper.geonode.io/mcp