Skip to main content
Glama

scrapewise_get_run_columns

Read-onlyIdempotent
        Returns the full set of distinct top-level field names present in one scraper run's
        scraped rows, for the Enrich column-mapping builder (where the user draws a line
        between two runs' columns to define the join key). Unlike the matcher's field
        detection, this includes `url` and numeric fields and unions keys across the run's
        documents, so any column can be chosen as a join key. Requires DATA_ENRICHMENT.

        Args:
          - id (string, path param, required): the group's MongoDB ObjectId.
          - jobId (string, path param, required): the run's scraperJobStatusId. The run must
            belong to this group and to the calling customer.

        Returns:
          `Map<String, Any>` — `{"columns": ["ean", "name", "url", ...]}` (sorted).

        Examples:
          - Use when: "what columns does run {jobId} of group {id} have, so I can pick a join key"
          - Use when: "list the fields available to enrich/merge on for this run" → same op
          - Don't use when: you need the matcher's matchable fields (those exclude url/numerics) →
            use the matcher field-detection endpoint instead

        Error Handling:
          - 402 if customer plan lacks DATA_ENRICHMENT feature.
          - 400 (CustomerError envelope) if the group/job is missing, not owned, or the job
            does not belong to the group.
          - 401 Unauthorized.

[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>",
      "jobId": "<jobId>"
    },
    "name": "scrapewise_get_run_columns"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYes
jobIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare this as a read-only, idempotent, closed-world operation, and the description goes further by disclosing the DATA_ENRICHMENT entitlement requirement, the ownership/group-membership precondition on the run, and a specific error taxonomy (402 plan gate, 400 envelope for missing/unowned/mismatched job, 401). It stops short of describing pagination or size limits, but broadly the behavioral envelope is well covered.

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?

Front-loads the purpose sentence before the structured Args/Returns/Examples/Error blocks, so an agent skimming the first line still gets the right answer. The sectioned docstring is longer than strictly necessary and the two 'Use when' examples restate the same op, but no sentence is truly wasted.

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?

No output schema exists, yet the description supplies the exact return shape (a sorted 'columns' array under a map key), the entitlement gate, ownership preconditions, and error codes. That is everything an agent needs to select and invoke it correctly, with no material gap.

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 the semantics and it does: id is identified as the group's MongoDB ObjectId, jobId as the run's scraperJobStatusId, both as required path params, plus the cross-field constraint that the run must belong to that group and to the calling customer. No format examples for IDs, which keeps it from a 5.

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?

States a specific verb and resource ('Returns the full set of distinct top-level field names present in one scraper run's scraped rows') plus the exact consuming context (Enrich column-mapping builder). It also explicitly contrasts with the matcher's field detection, so the agent can distinguish it from sibling lookups without opening a schema.

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?

Provides two concrete 'Use when' phrasings that map real user intents onto the tool, and a 'Don't use when' clause that names the exact alternative (matcher field-detection) and the reason (those exclude url/numerics). When-to-use, when-not-to-use, and the alternative are all explicit.

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.