Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Discover and extract sitemaps from any website using SitemapKit. Use this skill whenever the user wants to find pages on a website, get a list of URLs from a domain, audit a site's structure, crawl a sitemap, check what pages exist on a site, or do anything involving sitemaps or site URL discovery — even if they don't explicitly say "sitemap". Requires the sitemapkit MCP server configured with a valid SITEMAPKIT_API_KEY.
.claude/skills/aiskillstore-sitemapkit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -37% | 0% |
| case-06 | ✓→✗ | ▼ Worse | -50% | 0% |
| case-19 | ✓→✗ | ▼ Worse | -61% | 0% |
Use the SitemapKit MCP tools to discover and extract URLs from any website's sitemaps.
| User says | Use | |-----------|-----| | "find sitemaps for X" / "does X have a sitemap?" | discover_sitemaps | | "extract URLs from X/sitemap.xml" | extract_sitemap | | "get all pages on X" / "crawl X" / "list all URLs on X" | full_crawl |
https://example.comfull_crawl and discover_sitemaps only use the domain — paths are ignoredextract_sitemap needs the exact sitemap URL, e.g. https://example.com/sitemap.xmlmax_urls is 1000. If the user wants more, pass a higher value (up to plan limit)truncated: true appears in the result, tell the user there are more URLs and suggest increasing max_urlsmeta.quota.remaining in the response — if it's low, warn the user proactively| Error | What to tell the user | |-------|-----------------------| | Unauthorized | API key is missing or invalid. Get one at https://app.sitemapkit.com/settings/api | | Monthly quota exceeded | Plan limit reached. Upgrade at https://sitemapkit.com/pricing | | Rate limit exceeded | Too many requests per minute. Wait and retry — the response includes a retryAfter timestamp |
"What pages does stripe.com have?" → Call full_crawl with url: "https://stripe.com", present the URL list.
"Find all sitemaps for shopify.com" → Call discover_sitemaps with url: "https://shopify.com", list the sitemap URLs found and which sources they came from (robots.txt, common paths, etc.).
"Extract https://example.com/sitemap-posts.xml" → Call extract_sitemap with url: "https://example.com/sitemap-posts.xml", present the URLs with lastmod dates if available.
"How many pages does vercel.com have?" → Call full_crawl, report totalUrls and whether the result was truncated.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→fail | 8,106 | 4,831 | -40% | 1 | 1 | 0% | 1,400 | 941 | -33% | 0 | 0 | — |
case-01 | fail→fail | 9,435 | 4,995 | -47% | 1 | 1 | 0% | 1,682 | 893 | -47% | 0 | 0 | — |
case-02 | fail→fail | 9,056 | 4,744 | -48% | 1 | 1 | 0% | 1,591 | 869 | -45% | 0 | 0 | — |
case-04 | fail→fail | 6,533 | 4,145 | -37% | 1 | 1 | 0% | 1,187 | 875 | -26% | 0 | 0 | — |
case-05 | fail→fail | 15,212 | 5,642 | -63% | 1 | 1 | 0% | 2,650 | 1,013 | -62% | 0 | 0 | — |
case-06 | pass→fail | 10,171 | 5,886 | -42% | 1 | 1 | 0% | 1,853 | 933 | -50% | 0 | 0 | — |
case-07 | fail→pass | 9,373 | 5,093 | -46% | 1 | 1 | 0% | 1,532 | 1,495 | -2% | 0 | 0 | — |
case-08 | pass→pass | 7,930 | 2,716 | -66% | 1 | 1 | 0% | 1,171 | 1,051 | -10% | 0 | 0 | — |
case-09 | fail→pass | 8,054 | 2,987 | -63% | 1 | 1 | 0% | 1,289 | 1,127 | -13% | 0 | 0 | — |
case-10 | fail→pass | 9,967 | 2,084 | -79% | 1 | 1 | 0% | 1,470 | 919 | -37% | 0 | 0 | — |
case-11 | pass→pass | 7,529 | 2,002 | -73% | 1 | 1 | 0% | 1,140 | 1,027 | -10% | 0 | 0 | — |
case-12 | fail→fail | 10,550 | 4,307 | -59% | 1 | 1 | 0% | 1,737 | 849 | -51% | 0 | 0 | — |
case-13 | fail→fail | 11,516 | 4,641 | -60% | 1 | 1 | 0% | 1,930 | 838 | -57% | 0 | 0 | — |
case-14 | fail→fail | 8,355 | 4,375 | -48% | 1 | 1 | 0% | 1,302 | 851 | -35% | 0 | 0 | — |
case-15 | fail→fail | 6,803 | 4,579 | -33% | 1 | 1 | 0% | 1,256 | 933 | -26% | 0 | 0 | — |
case-16 | pass→pass | 3,742 | 2,178 | -42% | 1 | 1 | 0% | 616 | 1,075 | +75% | 0 | 0 | — |
case-17 | pass→pass | 2,856 | 2,903 | +2% | 1 | 1 | 0% | 495 | 1,182 | +139% | 0 | 0 | — |
case-18 | pass→pass | 3,402 | 3,178 | -7% | 1 | 1 | 0% | 589 | 1,160 | +97% | 0 | 0 | — |
case-19 | pass→fail | 12,178 | 5,704 | -53% | 1 | 1 | 0% | 2,274 | 888 | -61% | 0 | 0 | — |
case-20 | pass→pass | 9,291 | 7,460 | -20% | 1 | 1 | 0% | 1,711 | 2,072 | +21% | 0 | 0 | — |
case-21 | pass→pass | 8,747 | 5,327 | -39% | 1 | 1 | 0% | 1,474 | 1,583 | +7% | 0 | 0 | — |
case-22 | pass→pass | 7,307 | 4,941 | -32% | 1 | 1 | 0% | 1,363 | 1,641 | +20% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 11 counted toward the lift figure. The other 11 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +5 percentage points is the difference between those two pass rates over the 11 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.