Overview
Generates properly formatted XML compliant with search engine requirements, supporting up to 50,000 URLs per sitemap.
Live Test Sitemap Generator Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as SitemapGeneratorSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "SitemapGeneratorSkill",
"arguments": {
"urls": "[\"/about\", \"/contact\", {\"url\": \"/blog\", \"priority\": 0.8}]"
}
}You do not name the tool yourself; the model picks it. Asking about ["/about", "/contact", {"url": "/blog", "priority": 0.8}] in the terms this skill covers is enough for it to reach for SitemapGeneratorSkill on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
urlsRequired | array | Array of URLs (strings or objects with url, priority, changeFreq, lastMod) url |
baseUrlOptional | string | Base URL to prepend to relative paths url |
changeFreqOptional | string | Default change frequencyalwayshourlydailyweeklymonthlyyearlyneverdefault weekly |
priorityOptional | number | Default priority default 0.5 · range 0–1 |
includeLastModOptional | boolean | Include lastmod dates in sitemap default true |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"sitemap": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n <url>\n <loc>https://example.com/</loc>\n <lastmod>2025-12-16</lastmod>\n <changefreq>weekly</changefreq>\n <priority>0.5</priority>\n </url>\n <url>\n <loc>https://example.com/about</loc>\n <lastmod>2025-12-16</lastmod>\n <changefreq>weekly</changefreq>\n <priority>0.5</priority>\n </url>\n <url>\n <loc>https://example.com/contact</loc>\n <lastmod>2025-12-16</lastmod>\n <changefreq>weekly</changefreq>\n <priority>0.5</priority>\n </url>\n <url>\n <loc>https://example.com/blog</loc>\n <lastmod>2025-12-16</lastmod>\n <changefreq>daily</changefreq>\n <priority>0.8</priority>\n </url>\n <url>\n <loc>https://example.com/products</loc>\n <lastmod>2025-12-16</lastmod>\n <changefreq>weekly</changefreq>\n <priority>0.9</priority>\n </url>\n</urlset>",
"urlCount": 5,
"sizeBytes": 892,
"sizeKb": 0.87,
"format": "XML",
"protocol": "sitemaps.org/0.9",
"settings": {
"defaultChangeFreq": "weekly",
"defaultPriority": 0.5,
"includeLastMod": true,
"baseUrl": "https://example.com"
}
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
sitemap | string | <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2025-12-16</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://example.com/about</loc>
<lastmod>2025-12-16</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://example.com/contact</loc>
<lastmod>2025-12-16</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://example.com/blog</loc>
<lastmod>2025-12-16</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://example.com/products</loc>
<lastmod>2025-12-16</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
</urlset> | Generated XML sitemap content following sitemaps.org protocol |
urlCount | number | 5 | Total number of URLs included in the generated sitemap |
sizeBytesPremium | number | 892 | Total size of generated sitemap in bytes |
sizeKbPremium | number | 0.87 | Total size of generated sitemap in kilobytes |
format | string | XML | Output format type of generated sitemap content |
protocol | string | sitemaps.org/0.9 | Sitemap protocol version used for XML generation |
settings | object | {…} | |
settings.defaultChangeFreq | string | weekly | Default change frequency setting applied to all URLs |
settings.defaultPriority | number | 0.5 | Default priority value assigned to all URLs |
settings.includeLastMod | boolean | true | Flag indicating if last modified dates are included |
settings.baseUrl | string | https://example.com | Base URL used to create absolute paths for relative URLs |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- SEO Optimization
- Generate sitemaps to help search engines index website content
- Website Management
- Create and maintain XML sitemaps for content management systems
- Build Automation
- Integrate sitemap generation into website deployment pipelines
- Multi-site Management
- Generate sitemaps for multiple websites with custom configurations
Other ways to use Sitemap Generator Skill
Set up Sitemap Generator Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Data Generation: