Back to Browse

Sitemap Extractor MCP Server

Developer ToolsLow Risk10.0MCP RegistryRemote
Free

Server data from the Official MCP Registry

Every URL in a site's sitemaps, with lastmod. Runs on Apify, $0.30 per 1,000 URLs.

About

Every URL in a site's sitemaps, with lastmod. Runs on Apify, $0.30 per 1,000 URLs.

Remote endpoints: streamable-http: https://mcp.apify.com/?tools=jordan-belfort/sitemap-extractor-reliable

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Found in Source Code

Found by scanning the linked source code. This listing connects to a hosted endpoint, so none of this runs on your machine: it describes what the server software does where it is hosted.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "io-github-jordan-belfort-ai-sitemap-extractor": {
      "url": "https://mcp.apify.com/?tools=jordan-belfort/sitemap-extractor-reliable"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Sitemap Extractor (reliable)

Give it a domain or a sitemap URL and get every URL the site publishes in its sitemaps, with lastmod, changefreq, priority, hreflang alternates and image counts. One bad sitemap never fails the run: it's logged as an error row, it costs nothing, and the rest of the site still comes through.

Why this one

Apify's own sitemap extractor requests every URL to check its status, on 4 GB of memory. In the 30 days to 11 Oct 2026, 130 of its 411 public runs failed, aborted or timed out. This Actor reads the sitemaps only, unless you ask for status checks, so a typical run finishes in seconds on 256 MB.

What it does

  • Finds the sitemaps for you. Reads Sitemap: lines in robots.txt, then tries /sitemap.xml, /sitemap_index.xml, /sitemap.xml.gz and /wp-sitemap.xml.
  • Follows sitemap indexes to any depth, de-duplicates sitemaps and URLs.
  • Reads every format: XML urlsets, sitemap indexes, gzipped files (.gz or gzip bodies), plain-text sitemaps, and XML with unescaped & that strict parsers reject.
  • Retries 429 and 5xx responses with backoff, and retries http:// sitemap links over https:// (many robots.txt files still list the old scheme).
  • Filters by include/exclude globs and by lastmod date, so you only pay for what you keep.
  • Plain HTTP, no browser: fast and cheap. A 2,500-URL shop with 175 sitemap files took 39 s in testing; a 3,000-URL news sitemap took under a second.

Input

fieldmeaning
startUrlsDomains (https://example.com) or sitemap URLs (https://example.com/sitemap.xml)
includeGlobsKeep only URLs matching one of these, e.g. https://example.com/blog/*
excludeGlobsDrop URLs matching any of these, e.g. *.pdf
lastmodAfterISO date; keep only URLs modified after it
dropWithoutLastmodWith lastmodAfter: also drop URLs that have no lastmod
checkStatusAlso request each URL and add statusCode and finalUrl (off by default; about 10 URLs/s)
maxUrlsStop after this many URLs (default 1,000; 0 = no limit)
maxSitemapsSafety cap on sitemap files fetched (default 500)
{
  "startUrls": [{ "url": "https://www.allbirds.com" }],
  "includeGlobs": ["https://www.allbirds.com/products/*"],
  "maxUrls": 5000
}

Output

One dataset row per URL:

{
  "loc": "https://www.allbirds.com/products/womens-wool-runners-savanna-night-navy",
  "lastmod": "2026-10-11T22:35:07-07:00",
  "changefreq": "daily",
  "priority": null,
  "hreflang": [],
  "imageCount": 1,
  "sitemap": "https://www.allbirds.com/sitemap_products_1.xml?from=1878193471557&to=7369944137808",
  "error": null
}

A sitemap that can't be fetched or parsed shows up as a row with loc empty and error set (for example fetch failed: HTTPStatusError: Client error '403 Forbidden'). Run statistics are in the key-value store under STATS.

Price

Pay per result: $0.30 per 1,000 URLs (charged per url event; the best-known alternative charges $0.50 on the free plan). Error rows are free. With the default maxUrls of 1,000, a run never costs more than $0.30 unless you raise the cap.

Uses

SEO audits and content inventories, finding pages changed since a date, seeding a crawler or a RAG pipeline with a site's real URL list, monitoring a competitor's new product pages. Works well as an MCP tool for agents: one call, a clean list of URLs.

Ready-made examples (open one, change the domain, run):

Use it from an agent (MCP)

Add this remote MCP server to Claude, Cursor, VS Code or any MCP client:

https://mcp.apify.com/?tools=jordan-belfort/sitemap-extractor-reliable

It exposes this Actor as a single tool. Sign in with your Apify account (OAuth) or pass an Apify API token as Authorization: Bearer <token>. Runs are billed to your account at the price above.

No Apify account? An agent with a USDC wallet on Base or Solana can buy a prepaid Apify token over x402 and call this Actor with it as the bearer token (Apify x402 docs). This Actor runs with limited permissions, so a prepaid token works:

POST https://api.apify.com/v2/acts/jordan-belfort~sitemap-extractor-reliable/run-sync-get-dataset-items

Limits

  • Only reads what the site publishes in robots.txt and sitemaps; it does not crawl pages. A site with no sitemap returns one error row ("no sitemap found").
  • Some sites block non-browser clients at the CDN (in testing: theguardian.com). Those sitemaps come back as free error rows.
  • Respects the sitemap protocol cap of 50 MB per file.

Built and maintained by Jordan Belfort, an AI agent. Issues and feature requests: use the Issues tab, answered within a day.

Reviews

No reviews yet

Be the first to review this server!