Geonode MCP Server
Web data for agents. Extract web pages, crawl websites, discover URLs, and search the web.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.geonode.com/mcp"
}
}
}遠端端點
https://mcp.geonode.com/mcpstreamable-http它能做什麼
工具清單
工具(16)
🟢extract(extract_request, api_key)
Extract content from a web page. Supports HTML and Markdown output formats, optional JavaScript rendering via headless browser, proxy geo-targeting, custom HTTP headers, and explicit browser wait controls via the wait_config object. Can run synchronously (returns content immediately) or asynchronously (returns a job ID that can be polled with the 'job' tool). Use 'render_js=true' for pages that require JavaScript to load their content; supplying wait_config also enables browser rendering automatically. Omit wait_config or set it to null to keep the adaptive browser settle path; send {} or concrete values to opt into explicit mode. Without an API key, extraction is synchronous only, without JavaScript rendering or request headers other than Accept-Language, and limited to a small per-client rate and daily volume. An API key, sent as the X-Api-Key header, lifts these restrictions; the plan's own limits apply instead.
輸入結構描述
{
"type": "object",
"properties": {
"extract_request": {
"$ref": "#/$defs/ExtractRequest"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"extract_request"
],
"$defs": {
"ExtractRequest": {
"properties": {
"url": {
"description": "URL to extract content from",
"format": "uri",
"minLength": 1,
"title": "Url",
"type": "string"
},
"formats": {
"default": [
"html"
],
"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 (slower, more expensive).",
"title": "Render Js",
"type": "boolean"
},
"processing_mode": {
"$ref": "#/$defs/ProcessingMode",
"default": "sync",
"description": "Processing mode: sync (block until done) or async (starts job and return job ID)"
},
"timeout": {
"anyOf": [
{
"minimum": 1000,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Milliseconds this request may take, counted from when we receive it and including any queue wait. A wait for the per-site rate limit or for a free thread uses the same time: when it does not fit, the request is refused with 429 instead of being held longer. On expiry the escalation chain stops rather than the response merely arriving sooner: no further browser is launched, and the request is not billed. Omit it to keep the system ceiling. Sync requests only: sending it with processing_mode=async is rejected rather than ignored, because an async caller holds a job id and polls at its own pace. Values above the ceiling are clamped to it.",
"title": "Timeout"
},
"proxy": {
"anyOf": [
{
"$ref": "#/$defs/ProxySettings"
},
{
"type": "null"
}
],
"default": {
"country": null,
"type": "residential"
},
"description": "Proxy configuration. Optional — when omitted or explicitly `null`, defaults are applied: residential type, country auto-resolved from the target URL (domain/path overrides first, then the TLD; if nothing matches, the upstream proxy provider picks the exit region). Send an object to override either field; individual fields inside the object may also be null (see ProxySettings)."
},
"headers": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Custom HTTP headers to include in extraction request. `Accept-Language` is the one exception on browser-rendered requests: it is not forwarded verbatim, because it would override the header the browser derives from its locale and leave the wire value contradicting `navigator.language`. The language you ask for is still honoured — it selects the browser locale, paired with the proxy country's region, so `en-US` through a German proxy renders the page as `en-DE`. `Host` and `:authority` are dropped: the target host always comes from `url`.",
"title": "Headers"
},
"wait_config": {
"anyOf": [
{
"$ref": "#/$defs/WaitConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Grouped browser wait policy. Optional: when omitted or null, browser requests use the adaptive default settle policy whenever a browser runs. Send a non-null object to opt into caller-owned explicit wait mode, which skips the adaptive default settle phase. Null fields inside wait_config behave the same as absence. If render_js is not set explicitly, any non-null wait_config auto-enables browser rendering and the effective render_js value is returned in metadata. If render_js=false is sent together with a non-null wait_config, the request is rejected as ambiguous."
}
},
"required": [
"url"
],
"title": "ExtractRequest",
"type": "object"
},
"OutputFormat": {
"enum": [
"markdown",
"html"
],
"title": "OutputFormat",
"type": "string"
},
"ProcessingMode": {
"enum": [
"sync",
"async"
],
"title": "ProcessingMode",
"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": "extractArguments"
}🟢job(job_id, api_key)
Retrieve the result of an asynchronous extraction job by its job ID. Returns the current status (pending, running, completed, or failed) and, once completed, the extracted content and metadata. Use this tool to poll for results after submitting an extraction with processing_mode='async'. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"title": "Job Id",
"type": "string"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"job_id"
],
"title": "get_job_resultArguments"
}🟢jobs(job_id, url, job_status, output, start_date, ...)
List extraction jobs with optional filters. Filter by job ID, URL, status (pending, running, completed, failed), output format, or date range. Results are paginated; use 'page' and 'page_size' to navigate large result sets. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Job Id"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"job_status": {
"anyOf": [
{
"$ref": "#/$defs/JobStatus"
},
{
"type": "null"
}
],
"default": null
},
"output": {
"anyOf": [
{
"$ref": "#/$defs/OutputFormat"
},
{
"type": "null"
}
],
"default": null
},
"start_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Start Date"
},
"end_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "End Date"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 100,
"title": "Page Size",
"type": "integer"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"$defs": {
"JobStatus": {
"enum": [
"queued",
"processing",
"completed",
"failed",
"cancelled"
],
"title": "JobStatus",
"type": "string"
},
"OutputFormat": {
"enum": [
"markdown",
"html"
],
"title": "OutputFormat",
"type": "string"
}
},
"title": "list_jobsArguments"
}🟢statistics(start_date, end_date, api_key)
Retrieve aggregated extraction statistics for the authenticated user. Returns metrics such as total jobs, success and failure counts, and usage breakdowns over the specified date range: at most 366 days, counted back from the end date (an older start date is moved up; an end date after now is moved back to now). Defaults to the last 30 days when no dates are provided. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"start_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Start Date"
},
"end_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "End Date"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"title": "get_statisticsArguments"
}🟡batch(batch_request, api_key)
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.
輸入結構描述
{
"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"
}🟢batch_status(job_id, page, page_size, api_key)
Retrieve the status and paginated results of a batch extraction job by its job ID. Returns item counts, invalid URLs, and the current page of per-URL extraction results. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"title": "Job Id",
"type": "string"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 10,
"title": "Page Size",
"type": "integer"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"job_id"
],
"title": "get_batch_resultArguments"
}🔴cancel_batch(job_id, api_key)
Cancel a batch job by its job ID. Stops scheduling new batch items while allowing in-flight child extractions to drain. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"title": "Job Id",
"type": "string"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"job_id"
],
"title": "cancel_batchArguments"
}🟡crawl(crawl_request, api_key)
Start a website crawl job from a seed URL. Crawls pages breadth-first (BFS) up to the 'depth' parameter (BFS levels from the seed) and the 'limit' parameter (maximum number of pages to crawl). Supports Markdown and HTML output formats, optional JavaScript rendering, proxy geo-targeting, domain filtering, and the grouped wait_config browser wait policy. Omit wait_config or set it to null to keep adaptive browser settling for page extractions; send {} or concrete values to opt every page extraction into explicit mode. Returns a job ID that can be polled with the 'crawl_status' tool. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"crawl_request": {
"$ref": "#/$defs/CrawlRequest"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"crawl_request"
],
"$defs": {
"CrawlRequest": {
"properties": {
"url": {
"description": "Seed URL to start crawling from",
"format": "uri",
"minLength": 1,
"title": "Url",
"type": "string"
},
"depth": {
"default": 2,
"description": "Maximum BFS depth from the seed URL (1 = seed only)",
"maximum": 10,
"minimum": 1,
"title": "Depth",
"type": "integer"
},
"limit": {
"default": 50,
"description": "Maximum number of pages to crawl",
"maximum": 10000,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"formats": {
"default": [
"markdown"
],
"description": "Output formats to extract per page",
"items": {
"$ref": "#/$defs/OutputFormat"
},
"title": "Formats",
"type": "array"
},
"render_js": {
"default": false,
"description": "Use a headless browser to render each page (slower, handles JS-heavy sites)",
"title": "Render Js",
"type": "boolean"
},
"same_domain_only": {
"default": true,
"description": "Only follow links that stay on the same domain as the seed URL",
"title": "Same Domain Only",
"type": "boolean"
},
"include_subdomains": {
"default": false,
"description": "When same_domain_only is true, also include subdomains of the seed domain",
"title": "Include Subdomains",
"type": "boolean"
},
"proxy": {
"anyOf": [
{
"$ref": "#/$defs/ProxySettings"
},
{
"type": "null"
}
],
"default": {
"country": null,
"type": "residential"
},
"description": "Proxy configuration for page requests. Optional — when omitted or explicitly `null`, defaults are applied per page: residential type, country auto-resolved from each page URL (domain/path overrides first, then the TLD; if nothing matches, the upstream proxy provider picks the exit region). Send an object to override either field; individual fields inside the object may also be null (see ProxySettings)."
},
"wait_config": {
"anyOf": [
{
"$ref": "#/$defs/WaitConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Grouped browser wait policy applied to every crawled page extraction. Optional — when omitted or explicitly `null`, each page extraction uses the adaptive default settle policy whenever a browser runs. Send an object to opt every page 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 crawl_config. If you explicitly send render_js=false together with non-null wait_config values, the request is rejected as ambiguous."
}
},
"required": [
"url"
],
"title": "CrawlRequest",
"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": "crawlArguments"
}🟢crawl_status(job_id, page, page_size, api_key)
Retrieve the status and results of a crawl job by its job ID. Returns the current status (queued, running, completed, or failed), page counts, and once completed, the crawled page results with extracted content. Results are paginated; use 'page' and 'page_size' to navigate. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"title": "Job Id",
"type": "string"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 10,
"title": "Page Size",
"type": "integer"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"job_id"
],
"title": "get_crawl_resultArguments"
}🔴cancel_crawl(job_id, api_key)
Cancel a crawl job by its job ID. Stops scheduling new crawl pages while allowing in-flight page work to drain. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"title": "Job Id",
"type": "string"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"job_id"
],
"title": "cancel_crawlArguments"
}🟢map(map_request, api_key)
Discover all URLs under a base URL by combining sitemap parsing with HTML link extraction from the seed page. By default discovery is scoped to the exact seed host (a leading 'www.' is treated as equivalent) and, when the URL includes a path, to URLs under that path; sibling subdomains and outbound links are excluded. Set include_subdomains=true to widen the scope to the whole registrable domain and probe common subdomains (docs, blog, help, support). The optional 'search' parameter filters the discovered URLs by case-insensitive substring match — it does NOT query a search engine. Runs synchronously and returns the discovered links immediately. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"map_request": {
"$ref": "#/$defs/MapRequest"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"map_request"
],
"$defs": {
"MapRequest": {
"properties": {
"url": {
"description": "Base URL to discover links from. By default discovery is scoped to this exact host (treating a leading 'www.' as equivalent) and, when the URL has a path, to URLs under that path. Set include_subdomains=true to widen the scope.",
"format": "uri",
"minLength": 1,
"title": "Url",
"type": "string"
},
"search": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Case-insensitive substring filter applied to discovered URLs. Does not query a search engine; only narrows results found via sitemap/HTML discovery.",
"title": "Search"
},
"include_subdomains": {
"default": false,
"description": "When false (default), discovery is scoped to the exact seed host only. When true, the scope widens to the whole registrable domain: sibling subdomains found in the seed's sitemap/HTML are kept, and common subdomains (docs, blog, help, support) are actively probed for their own sitemaps.",
"title": "Include Subdomains",
"type": "boolean"
},
"ignore_query_parameters": {
"default": true,
"description": "Strip query parameters when normalizing discovered URLs",
"title": "Ignore Query Parameters",
"type": "boolean"
}
},
"required": [
"url"
],
"title": "MapRequest",
"type": "object"
}
},
"title": "map_urlsArguments"
}🟢map_jobs(url, job_status, start_date, end_date, page, ...)
List map jobs for the authenticated user with optional filters. Filter by base URL (partial match), status (pending, running, completed, failed), or date range. Results are paginated; use 'page' and 'page_size' to navigate. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"job_status": {
"anyOf": [
{
"$ref": "#/$defs/JobStatus"
},
{
"type": "null"
}
],
"default": null
},
"start_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Start Date"
},
"end_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "End Date"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 10,
"title": "Page Size",
"type": "integer"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"$defs": {
"JobStatus": {
"enum": [
"queued",
"processing",
"completed",
"failed",
"cancelled"
],
"title": "JobStatus",
"type": "string"
}
},
"title": "list_map_jobsArguments"
}🟢map_job(job_id, api_key)
Retrieve the full details and discovered links for a map job by its job ID. Returns the current status and, once completed, the discovered links and their source. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"title": "Job Id",
"type": "string"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"job_id"
],
"title": "get_map_jobArguments"
}🟢search(search_request, api_key)
Run a web search and return ranked results. Supports locale targeting (a language code like 'en', a language-region tag like 'en-US', or 'all'), pagination via 'page', safe-search filtering, and restricting results to a recency window via 'time_range'. By default the service rotates across its engines and falls back on failure; set 'engine' to pin one engine with no fallback. Returns the result list, the engine that served it, query suggestions, and any spelling correction. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"search_request": {
"$ref": "#/$defs/SearchRequest"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"search_request"
],
"$defs": {
"SearchRequest": {
"properties": {
"query": {
"description": "Search query",
"maxLength": 1000,
"minLength": 1,
"title": "Query",
"type": "string"
},
"locale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Locale tag: a language code ('en'), a language-region tag ('en-US'), or 'all'.",
"title": "Locale"
},
"engine": {
"anyOf": [
{
"enum": [
"brave",
"duckduckgo",
"naver"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pin the search to one engine, with no fallback to any other. Omit to let the service rotate across its engines and fall back on failure, which is what most callers want. Pinning trades reliability for control: a single engine having a bad moment becomes your error instead of being routed around.",
"examples": [
"brave",
"duckduckgo",
"naver"
],
"title": "Search engine"
},
"page": {
"default": 1,
"description": "Result page to fetch. Without `engine`, 1 to 9. With `engine` set, the pinned engine's own limit applies instead: brave 9, duckduckgo 5, naver 9.",
"examples": [
1,
2,
9
],
"maximum": 9,
"minimum": 1,
"title": "Result page",
"type": "integer"
},
"safe": {
"default": "off",
"description": "Safe-search filtering level. Accepted values: \"off\", \"moderate\", or \"strict\".",
"enum": [
"off",
"moderate",
"strict"
],
"examples": [
"off",
"moderate",
"strict"
],
"title": "Safe-search level",
"type": "string"
},
"time_range": {
"anyOf": [
{
"enum": [
"day",
"week",
"month",
"year"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict results to a recency window. Accepted values: \"day\", \"week\", \"month\", or \"year\".",
"examples": [
"day",
"week",
"month",
"year"
],
"title": "Time range"
}
},
"required": [
"query"
],
"title": "SearchRequest",
"type": "object"
}
},
"title": "searchArguments"
}🟢search_jobs(query, job_status, start_date, end_date, page, ...)
List search jobs for the authenticated user with optional filters. Filter by query (partial match), status (pending, running, completed, failed), or date range. Results are paginated; use 'page' and 'page_size' to navigate. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"job_status": {
"anyOf": [
{
"$ref": "#/$defs/JobStatus"
},
{
"type": "null"
}
],
"default": null
},
"start_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Start Date"
},
"end_date": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "End Date"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 10,
"title": "Page Size",
"type": "integer"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"$defs": {
"JobStatus": {
"enum": [
"queued",
"processing",
"completed",
"failed",
"cancelled"
],
"title": "JobStatus",
"type": "string"
}
},
"title": "list_search_jobsArguments"
}🟢search_job(job_id, api_key)
Retrieve the full details and results for a search job by its job ID. Returns the current status and, once completed, the search results, suggestions, and any spelling correction applied. Requires a Geonode API key, sent as the X-Api-Key header.
輸入結構描述
{
"type": "object",
"properties": {
"job_id": {
"title": "Job Id",
"type": "string"
},
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Api Key"
}
},
"required": [
"job_id"
],
"title": "get_search_jobArguments"
}社群
證據