Skip to main content
Glama
spidra-io

spidra-mcp-server

Official
by spidra-io

spidra_batch_scrape

Read-only

Scrape 2-50 URLs in parallel using the same prompt or schema, with each URL returning its own result. Returns a batchId for async status polling.

Instructions

Scrape a list of 2-50 known URLs in parallel with the same extraction prompt/schema. Each URL is processed INDEPENDENTLY and gets its OWN result (unlike spidra_scrape, which merges multiple URLs into one combined answer). This tool returns IMMEDIATELY with a batchId — it does not wait.

Best for: running the same extraction on each of many similar pages (product pages, listings, articles) where you need separate data per URL — even for just 2 URLs. Workflow: call this, then poll spidra_check_batch_status with the batchId every 10-15 seconds until the batch reaches a terminal state. Do NOT resubmit while a batch is pending.

Costs: 2 credits per URL plus AI tokens. Failed items can be retried from the dashboard or cancelled with spidra_cancel_batch (credits for unprocessed items are refunded).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlsYes2-50 URLs to scrape in parallel (plain strings)
outputNo
promptNoWhat to extract from each page. Omit for raw markdown.
schemaNoJSON Schema enforcing the exact output shape. Define EVERY field you want extracted — an untyped object with no properties comes back empty. Missing fields return null instead of hallucinated values.
cookiesNo
useProxyNoRoute through a residential proxy (for blocked/geo-restricted sites)
scrapeModeNo
proxyCountryNoTwo-letter country code for the proxy, e.g. "us", "de", "jp", or "eu"/"global"
extractContentOnlyNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond those annotations: the tool returns immediately with a batchId instead of waiting, processes each URL independently, has a 10-15 second polling cadence, costs 2 credits per URL, and refunds unprocessed items on cancellation. This gives the agent important operational expectations.

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 about 120 words, front-loaded with the core behavior, followed by a 'Best for' section and a short workflow. Every sentence contributes actionable information—scope, async behavior, polling cadence, costs, and cancellation—so conciseness is excellent without sacrificing substance.

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 complexity (9 parameters, async batch processing, no output schema), the description covers the full operational loop: how to invoke, immediate return, polling until terminal state, avoidance of resubmission, cost implications, retries/cancellation, and distinction from sibling tools. This is sufficient for an agent to use the tool correctly without additional documentation.

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 56%, so the schema carries a moderate amount of parameter meaning. The description reinforces URL count limits, the need for a unified prompt/schema per URL, and that omitting prompt yields raw markdown. However, it does not add clarity for undocumented parameters like output, cookies, scrapeMode, or extractContentOnly, leaving those gaps unresolved.

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?

Description states a specific verb ('Scrape'), a concrete resource ('a list of 2-50 known URLs'), and the processing model (each URL independently with its own result). It also explicitly distinguishes itself from spidra_scrape, making the tool's purpose unmistakable compared to siblings.

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 'Best for' scenarios, contrasts with spidra_scrape, and gives a clear workflow: call the tool, get a batchId, poll spidra_check_batch_status every 10-15 seconds until terminal state, and do not resubmit while pending. It also mentions spidra_cancel_batch for failures, offering concrete alternative usage.

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

Install Server

Other Tools

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/spidra-io/spidra-mcp-server'

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