{"serverId":"mcp-registry/com.aiwebsitepipeline/indexnow-toolkit","tools":[{"name":"build_indexnow_payload","fixed":{"name":"build_indexnow_payload","description":"Validates a key and URL list against the IndexNow spec and returns the exact JSON POST body, the endpoint, a ready-to-run curl command, and the reason for every URL it dropped. Enforces the same-host rule, the 10000-URL batch limit, https/http consistency, fragment stripping and de-duplication.","inputSchema":{"type":"object","required":["key","urlList"],"properties":{"key":{"type":"string","description":"The IndexNow key, 8-128 characters of [a-zA-Z0-9-]."},"host":{"type":"string","description":"The host, e.g. example.com. Inferred from the first URL if omitted."},"engine":{"type":"string","description":"indexnow (default), bing, yandex, seznam or naver."},"urlList":{"type":"array","items":{"type":"string"},"description":"Absolute URLs to submit. All must be on the same host."},"keyLocation":{"type":"string","description":"Optional URL of the key file if it is not at https://host/<key>.txt."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Build an IndexNow POST body"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":266,"tokensAfter":266},{"name":"diff_sitemaps","fixed":{"name":"diff_sitemaps","description":"Parses two sitemap documents (urlset XML, sitemapindex XML, or a newline-delimited URL list) and reports added, removed and lastmod-changed URLs. Returns only the URLs worth submitting to IndexNow. Pass a key to also get the finished, validated POST body.","inputSchema":{"type":"object","required":["previous_sitemap","current_sitemap"],"properties":{"key":{"type":"string","description":"Optional IndexNow key; supplying it returns a ready-to-send payload."},"engine":{"type":"string","description":"Optional target endpoint name."},"keyLocation":{"type":"string","description":"Optional key file URL."},"current_sitemap":{"type":"string","description":"The current sitemap document."},"include_removed":{"type":"boolean","description":"Include removed URLs in the submission list. Default false."},"previous_sitemap":{"type":"string","description":"The earlier sitemap document."}}},"annotations":{"readOnlyHint":true},"title":"Diff two sitemaps into an IndexNow list"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":257,"tokensAfter":257},{"name":"validate_indexnow_key","fixed":{"name":"validate_indexnow_key","description":"Checks an IndexNow key against the protocol schema (length, character set) and, given a host, returns the exact URL the key file must be served from, the exact contents it must have, and the curl command to verify it. Most 403 rejections are a key file that returns an HTML 404 page with a 200 status.","inputSchema":{"type":"object","required":["key"],"properties":{"key":{"type":"string","description":"The key to check."},"host":{"type":"string","description":"Optional host, e.g. example.com, to compute the key file URL."}}},"annotations":{"readOnlyHint":true},"title":"Validate an IndexNow key"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161}],"toolsChanged":3,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}