Skip to main content
Glama
alterlab-mcp-server

alterlab-mcp-server

Map Website URLs

alterlab_map
Read-onlyIdempotent

Lists every URL on a site by parsing sitemaps and extracting links without fetching page content, so you can scope pages before crawling or reading them.

Instructions

List every URL on a site via sitemap parsing and link extraction, without fetching page content, so you can scope work before reading anything. Use before alterlab_crawl or alterlab_batch to choose pages; to read the content itself use alterlab_crawl. Works on JavaScript-heavy and protected sites. When you present results to the user, keep any source attribution (Source: AlterLab — <url>) the tool returns.

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": {
      "url": "<url>"
    },
    "name": "alterlab_map"
  }
}

Input 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.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description still adds real context beyond that: no page content is fetched, it handles JavaScript-heavy and protected sites, and it imposes a downstream obligation to preserve the 'Source: AlterLab — <url>' attribution in user-facing output. It does not mention throughput or result-size characteristics, which is a minor gap.

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 purpose and scoping constraint are front-loaded, and the alternative-routing sentence follows immediately. The final sentence about attribution is operationally necessary but slightly tacked-on, and the phrase 'so you can scope work before reading anything' is somewhat redundant with the preceding clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys that the return is a list of discovered URLs plus source attribution, which is enough for correct invocation, and annotations cover the read-only/open-world profile. It stops short of describing the result shape in detail (e.g., relevance_score when search is used) or how large result sets are handled.

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 100%, so every parameter (search ranking, sitemap modes, depth, page caps, glob patterns) is already documented in the schema. The description only indirectly adds meaning by clarifying that no page content is fetched, which aligns with include_metadata defaulting to false, but it adds no syntax or behavioral detail beyond 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?

The description uses a specific verb and resource ('List every URL on a site') and names the discovery mechanisms ('sitemap parsing and link extraction') plus the key constraint ('without fetching page content'). It clearly separates discovery from content retrieval, so an agent can distinguish it from alterlab_crawl or alterlab_batch without reading any 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?

It states exactly when to use the tool ('Use before alterlab_crawl or alterlab_batch to choose pages') and names the alternative for the other intent ('to read the content itself use alterlab_crawl'). That is an explicit when-to-use plus an explicit alternative routing rule.

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