Skip to main content
Glama

scrapewise_get_scraper_site_links

Read-onlyIdempotent
        Returns the URLs registered against the Site, paginated. Each Link carries
        url + title + per-link state (visited / errored / pending). Supports MongoDB-
        style filter expressions for narrowing (e.g., only errored links). Sort and
        page-size are normalised (out-of-range values → safe defaults; not 500).

        Args:
          - siteId (string, path param, required): the Site's MongoDB ObjectId. Get
            from scrapewise_get_scraper_site.
          - page (int, query param, optional, default 0): zero-indexed page number.
          - size (int, query param, optional, default 100): page size, capped at
            MAX_PAGE_SIZE (auto-clamped if larger).
          - sortField (string, query param, optional, default "url"): one of the
            whitelisted Link fields (url, title, state, lastSeen). Unknown values are
            silently fallback'd to "url" with a warn log.
          - sortDirection (string, query param, optional, default "asc"): "asc" or
            "desc"; case-insensitive.
          - filters (string, query param, optional): URL-encoded JSON Mongo-style
            filter expression (e.g., `{"state":"ERRORED"}`).

        Returns:
          Spring `Page<LinkDTO>` — `{content, totalElements, totalPages, ...}`.

        Examples:
          - Use when: "show me the URLs in site {siteId}" → siteId only
          - Use when: "which URLs failed in site {siteId}?" → filters={"state":"ERRORED"}
          - Don't use when: you want all sites for a customer → no such endpoint;
            iterate scrapers via scrapewise_get_scraper_list, then call
            scrapewise_get_scraper_site per scraper

        Error Handling:
          - 400 if siteId is not a valid ObjectId, or filters JSON is malformed.
          - 400 (CustomerError envelope) if no site with the given id exists for this customer.
          - 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": {
      "siteId": "<siteId>"
    },
    "name": "scrapewise_get_scraper_site_links"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo
sizeNo
siteIdYes
filtersNo
sortFieldNourl
sortDirectionNoasc

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds behavior the agent cannot see elsewhere: out-of-range sort and page-size values are clamped to safe defaults instead of 500ing, unknown sortField values silently fall back to 'url' with a warn log, and the malformed-filter case is called out. The error table (400 for bad ObjectId or bad filter JSON, 400 CustomerError for missing site, 401, 500) further removes ambiguity about failure modes.

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 first sentence front-loads purpose and the Args/Returns/Examples/Error Handling sections make it scannable. It is longer than strictly necessary — the Returns paragraph and some prose overlap with the supplied runtime hint about JSON-as-text — but almost every line carries 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 six-parameter read endpoint with patchy schema coverage and no output schema, the description supplies the page envelope shape (content, totalElements, totalPages), the parameter contract, and the error envelope expectations. Combined with the runtime hint about defensive parsing, an agent has everything needed to invoke it correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so for all six parameters: siteId sourced from scrapewise_get_scraper_site, zero-indexed page, size capped at MAX_PAGE_SIZE, the sortField whitelist (url, title, state, lastSeen) with fallback semantics, case-insensitive asc/desc, and URL-encoded Mongo-style filter JSON with a worked example. This meaningfully exceeds the bare schema types and defaults.

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?

Opens with a specific verb and resource plus scope: 'Returns the URLs registered against the Site, paginated,' and immediately names the per-link shape (url + title + state). It is clearly distinct from scrapewise_get_scraper_site (which yields the site itself) and from the scraper-listing tools.

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 concrete 'Use when' examples including the filtering case ('which URLs failed'), and an explicit 'Don't use when' that routes the agent to scrapewise_get_scraper_list then scrapewise_get_scraper_site. The alternative-tool guidance is spelled out rather than inferred.

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.