Skip to main content
Glama
sharozdawa

indexnow-mcp

by sharozdawa

indexnow_submit

Submit URLs to search engines for instant indexing using IndexNow protocol. Supports batch submission of up to 10,000 URLs to Bing, Yandex, Naver, and Seznam.

Instructions

Submit URLs to IndexNow for instant indexing on Bing, Yandex, Naver, Seznam. Supports batch submission of up to 10,000 URLs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlsYesList of URLs to submit (max 10,000)
api_keyYesYour IndexNow API key (any UUID-like string you generate)
hostYesYour website hostname (e.g., example.com)
key_locationNoURL where your API key file is hosted (optional)
enginesNoSearch engines to submit to (default: all)

Implementation Reference

  • Registration and implementation of the "indexnow_submit" tool.
    server.tool(
      "indexnow_submit",
      "Submit URLs to IndexNow for instant indexing on Bing, Yandex, Naver, Seznam. Supports batch submission of up to 10,000 URLs.",
      {
        urls: z.array(z.string().url()).describe("List of URLs to submit (max 10,000)"),
        api_key: z.string().describe("Your IndexNow API key (any UUID-like string you generate)"),
        host: z.string().describe("Your website hostname (e.g., example.com)"),
        key_location: z.string().optional().describe("URL where your API key file is hosted (optional)"),
        engines: z
          .array(z.enum(["bing", "yandex", "naver", "seznam", "indexnow"]))
          .optional()
          .describe("Search engines to submit to (default: all)"),
      },
      async ({ urls, api_key, host, key_location, engines }) => {
        if (urls.length > 10000) {
          return {
            content: [
              {
                type: "text" as const,
                text: "Error: Maximum 10,000 URLs per submission. Split into batches.",
              },
            ],
          };
        }
    
        const results = await submitToIndexNow(urls, api_key, host, key_location, engines);
        const successful = results.filter((r) => r.success).length;
    
        let output = `## IndexNow Submission Results\n\n`;
        output += `**URLs submitted:** ${urls.length}\n`;
        output += `**Engines contacted:** ${results.length}\n`;
        output += `**Successful:** ${successful}/${results.length}\n\n`;
    
        output += `| Engine | Status | Result |\n|--------|--------|--------|\n`;
        for (const r of results) {
          output += `| ${r.engine} | ${r.status} | ${r.success ? "Success" : "Failed"} - ${r.message} |\n`;
        }
    
        if (urls.length <= 10) {
          output += `\n### URLs Submitted\n`;
          for (const url of urls) {
            output += `- ${url}\n`;
          }
        } else {
          output += `\n*${urls.length} URLs submitted (list truncated)*\n`;
        }
    
        return { content: [{ type: "text" as const, text: output }] };
      }
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sharozdawa/indexnow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server