Skip to main content
Glama
RapierCraft

alterlab-mcp-server

alterlab_map

Discover all URLs on a website and retrieve sitemaps to find pages for scraping. Lightweight link extraction without content scraping, used before crawling to plan which pages to scrape.

Instructions

Discover all URLs on a website, get a sitemap, or find specific pages within a large site. Lightweight URL discovery via sitemap parsing and link extraction — no content scraping, no JS rendering. Costs just $0.001 per call regardless of how many URLs are found (up to 50,000). Use this before alterlab_crawl or alterlab_batch to identify which pages to scrape. Returns a flat list of URLs with source (sitemap/link) and depth. Use include_patterns/exclude_patterns to scope discovery to specific sections. Use search to rank URLs by relevance to a query. Use include_metadata=true to also fetch page titles and descriptions. Use sitemap_path to specify a non-standard sitemap location (e.g., '/sitemap_index.xml').

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesStarting URL for site discovery
searchNoQuery to filter and rank discovered URLs by relevance (returns relevance_score per URL)
sitemapNoSitemap handling: include (parse sitemaps + follow links), skip (links only), only (sitemap URLs only)include
max_depthNoLink-following depth (0 = start page + sitemap only)
max_pagesNoMaximum URLs to discover
sitemap_pathNoExplicit path to the sitemap file (e.g., '/sitemap_index.xml'). Use when the sitemap is not at the standard /sitemap.xml location.
respect_robotsNoRespect robots.txt directives
exclude_patternsNoGlob patterns — exclude URLs whose path matches any (e.g., ['/tag/*', '/page/*'])
include_metadataNoFetch title and meta description for each URL via lightweight GET (adds latency)
include_patternsNoGlob patterns — only include URLs whose path matches at least one (e.g., ['/docs/*'])
include_subdomainsNoInclude URLs from subdomains of the target domain

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.9.0
    • addedInput schema / properties / exclude_patterns / maxItems
      Added value: +50
    • addedInput schema / properties / include_patterns / maxItems
      Added value: +50
    • addedInput schema / properties / sitemap_path / maxLength
      Added value: +500
    • addedInput schema / properties / url / maxLength
      Added value: +2083
  2. Changed1 schema field changedv1.8.0
    • addedInput schema / properties / sitemap_path
      Added value: +{
      +  "description": "Explicit path to the sitemap file (e.g., '/sitemap_index.xml'). Use when the sitemap is not at the standard /sitemap.xml location.",
      +  "type": "string"
      +}
  3. First observedv1.5.0

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the cost model ($0.001 flat, up to 50,000 URLs), the exclusion of scraping/JS rendering, and the return shape (flat list with source and depth). It omits auth requirements and latency/politeness caveats beyond the robots parameter, so it falls just short of full behavioral coverage.

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 purpose, then cost, then sequencing, then per-parameter hints, so an agent can stop reading early. It is longer than strictly necessary and repeats the sitemap_path example already in the schema, keeping it from a 5.

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 an 11-parameter tool with no output schema, the description compensates by describing the return value (flat URL list with source and depth) plus cost and sequencing. The complete schema coverage handles the rest, leaving nothing an agent critically needs missing.

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 description coverage is 100%, so the baseline is 3. The description adds workflow-level meaning beyond the schema, notably combining search ranking with pattern scoping and clarifying that include_patterns/exclude_patterns scope discovery to sections. This exceeds what the schema alone conveys, though some items (sitemap_path example) restate the schema.

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+resource ('discover all URLs on a website... get a sitemap') and explicitly bounds scope with 'no content scraping, no JS rendering'. It clearly distinguishes itself from alterlab_crawl and alterlab_batch, positioning itself as the discovery step that precedes them.

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?

Gives explicit sequencing guidance ('Use this before alterlab_crawl or alterlab_batch to identify which pages to scrape') and names the alternatives by name. It also routes parameter-level choices conditionally (search to rank by relevance, include_metadata for titles/descriptions), so the agent knows when to reach for each behavior.

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