Skip to main content
Glama

scrapewise_export_scraper_data_group

Read-onlyIdempotent
        Downloads the latest run's data for the given group as a single .xlsx file.
        Returns the file as binary (Content-Disposition: attachment; filename=data.xlsx).
        Filters and categories supported same as scrapewise_get_scraper_data_group.
        Subject to the DATA_EXPORT plan feature.

        Limit: the admin value "Max rows per export" (default 1,000,000; one Excel sheet holds at
        most 1,048,574 data rows). Above it the export is refused with HTTP 400 EXPORT_TOO_LARGE
        and a sentence naming both numbers and how to narrow the export.
        Row order: newest run first, then newest stored row first inside a run.
        The Idempotency-Key header is ignored on this route (a replay used to return an empty
        body); one export per user per group runs at a time — a second one gets 429 EXPORT_BUSY.
        A large export can take several minutes to build before the first byte; if your HTTP
        client or proxy times out, use the export-jobs routes
        (POST /api/scraper/data/group/{id}/export-jobs) instead. A server restart or deploy
        ends a running export — request it again.

        Args:
          - id (string, path param, required): the group's MongoDB ObjectId.
          - categories (List<string>, query param, optional): restrict to these
            customer-defined categories.
          - filters (string, query param, optional): URL-encoded JSON filter expression.
            Same operator envelope as scrapewise_get_scraper_data_group; an unreadable
            filter is HTTP 400 INVALID_FILTER rather than an export of the whole table.
          - isLastRun (boolean, query param, optional, default true): when true the file
            holds only the latest run of each automation, which is what this route has
            always written. Pass `false` to export every stored run, the same rows
            scrapewise_get_scraper_data_group returns without the flag. Omitting it keeps
            the historical behaviour, so no existing caller changes.

        Returns:
          200 with binary body (Excel .xlsx). Content-Disposition: attachment;
          filename="data.xlsx". The sheet holds the group's own columns only - the
          `_sw_row_id` the JSON read adds is bookkeeping, not scraped data, and is
          deliberately not a column here.

        Examples:
          - Use when: "give me an Excel of group {id}'s latest products" → id only
          - Use when: "Excel of just the 'discounts' category" → categories=discounts
          - Use when: "Excel of everything we ever scraped for this group" → isLastRun=false
          - Don't use when: you want JSON pages for an agent → use
            scrapewise_get_scraper_data_group_client

        Error Handling:
          - 402 if customer plan lacks DATA_EXPORT feature.
          - 400 (CustomerError envelope) if no group with the given id exists for this customer.
          - 400 EXPORT_TOO_LARGE above the row limit (sentence names both numbers).
          - 429 EXPORT_BUSY while your export of this group is being built, or when the server
            is building other large exports (Retry-After).
          - 503 EXPORT_DISK_LOW / EXPORT_SIZING_TIMEOUT (retry later, or use export-jobs).
          - 401 Unauthorized.
          - 500 INTERNAL.

[runtime hint] This tool returns JSON-as-text — its response shape is dynamic (per-scraper itemsConfig, file binary, etc.) so the MCP outputSchema is omitted. Do not rely on the presence of any specific field in the response; treat the result as a string-or-object blob and parse defensively.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "scrapewise_export_scraper_data_group"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYes
formatNoxlsx
filtersNo
isLastRunNo
categoriesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint/idempotentHint/destructiveHint=false), the description discloses a great deal an agent could not otherwise know: the admin row cap with the 1,048,574-sheet ceiling and EXPORT_TOO_LARGE refusal, row ordering (newest run first, then newest stored row), one-concurrent-export-per-user-per-group with 429 EXPORT_BUSY and Retry-After, idempotency-header behaviour on this route, timeout/deploy failure modes (503 EXPORT_DISK_LOW, EXPORT_SIZING_TIMEOUT, restart ends the export), and the plan gate (402 DATA_EXPORT). No contradiction with the declared read-only, non-destructive profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long but deliberately structured with Args, Returns, Examples and Error Handling blocks, and it front-loads the core purpose before limits and error codes. A few passages repeat information already given elsewhere (the .xlsx/Content-Disposition return is stated twice), but almost every line carries unique operational value.

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?

For a binary-export tool with no output schema, the definition covers return shape and filename, which columns the sheet holds versus the JSON read's _sw_row_id, limit behaviour, ordering, concurrency and a full status-code table. The runtime hint about dynamic JSON-as-text responses is also acknowledged at the boundary. Nothing essential to invoking it correctly is missing apart from the minor `format` omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry parameter meaning, and it explains id (group MongoDB ObjectId), categories (customer-defined category restriction), filters (URL-encoded JSON filter expression, same operator envelope as the JSON read, INVALID_FILTER on parse failure) and isLastRun (default true = latest run per automation; false = every stored run). The gap is the schema's `format` property (default xlsx), which the description never mentions, leaving one of five parameters undiscussed.

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?

The description opens with a specific verb and resource: it downloads the latest run's data for a given group as a single .xlsx file, returned as binary with Content-Disposition attachment. It also explicitly contrasts itself with scrapewise_get_scraper_data_group (JSON read, same filters/categories) and with scrapewise_get_scraper_data_group_client, so an agent can route between siblings without opening schemas.

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?

Guidance is explicit and bidirectional: three concrete 'Use when' examples map natural-language requests to specific argument combinations (id only, categories=discounts, isLastRun=false), and a 'Don't use when' line routes-page needs to scrapewise_get_scraper_data_group_client. It further names the export-jobs routes as the fallback when a long build would exceed client or proxy timeouts.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.