{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://mcp.indexmachine.co/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/indexmachine-mcp.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/indexmachine-mcp.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/indexmachine-mcp.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 2359,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 2
          },
          "findings": [
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "list_indexing_requests",
              "message": "1 parameter without a description: status",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "list_pages",
              "message": "1 parameter without a description: status",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC24",
              "severity": "note",
              "message": "10 of 10 tools have no outputSchema",
              "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
            }
          ]
        },
        "checkedAt": "2026-11-09T02:20:01Z",
        "count": 10,
        "schemaTokens": 2359,
        "status": "ok",
        "tools": [
          {
            "name": "account_status",
            "title": "Account and extension status",
            "description": "The plan, the key's permissions and hourly request budget, whether the user's IndexMachine Chrome extension is online (it performs every Request indexing click), and today's requests per site against Google's daily quota of about 10 per site.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "tz": {
                  "description": "IANA time zone for today's counts, such as Europe/Berlin; UTC by default",
                  "maxLength": 64,
                  "type": "string"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Account and extension status"
            }
          },
          {
            "name": "list_sites",
            "title": "List sites",
            "description": "Every Search Console property connected to IndexMachine, with its page counts (indexed, awaiting, rejected, needs_fix, excluded), whether Google indexing is on, whether a paid plan covers it (billable, which Request indexing needs) and whether IndexNow is ready.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "List sites"
            }
          },
          {
            "name": "site_summary",
            "title": "Read one site",
            "description": "One site in full: page counts, today's Request indexing quota (about 10 a day, reset at midnight Pacific), the median days from a first request to indexing, and up to 30 days of counts.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "site": {
                  "description": "The site: its id (a UUID) or its domain, such as example.com",
                  "maxLength": 255,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "site"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Read one site"
            }
          },
          {
            "name": "list_pages",
            "title": "List a site's pages",
            "description": "A site's pages by path, with their status, Google's coverage state and the last crawl and request. status not_indexed is every page that is neither indexed nor excluded; q matches part of the URL. A status comes from the last stored inspection; check_url has a single URL in full.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "cursor": {
                  "description": "next_cursor from the previous page",
                  "maxLength": 500,
                  "type": "string"
                },
                "limit": {
                  "description": "Rows to return, 25 by default, 50 at most",
                  "maximum": 50,
                  "minimum": 1,
                  "type": "integer"
                },
                "q": {
                  "description": "Part of the URL",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "site": {
                  "description": "The site: its id (a UUID) or its domain, such as example.com",
                  "maxLength": 255,
                  "minLength": 1,
                  "type": "string"
                },
                "status": {
                  "enum": [
                    "indexed",
                    "not_indexed",
                    "awaiting",
                    "requested",
                    "rejected",
                    "needs_fix",
                    "excluded",
                    "not_found"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "site"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "List a site's pages"
            }
          },
          {
            "name": "check_url",
            "title": "Check a URL on Google",
            "description": "Whether a URL of one of the user's sites is indexed on Google, and as of when: the stored Search Console inspection, its open indexing request with the ETA, and with live: true a fresh URL Inspection from Google, which uses 1 of 50 live checks per site a day. indexed is null, not known, when the URL was never inspected. When Google refuses a live check, the stored state comes back with a warning.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "live": {
                  "description": "Ask Google now; uses 1 of the site's 50 live checks a day",
                  "type": "boolean"
                },
                "url": {
                  "description": "A whole http or https URL of one of the user's sites",
                  "maxLength": 2048,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Check a URL on Google"
            }
          },
          {
            "name": "request_indexing",
            "title": "Request indexing",
            "description": "Queues a Request indexing click for a URL of one of the user's sites, also one that is not a page of the site yet. The user's IndexMachine Chrome extension performs it in their own Search Console when it next checks in, within about 10 requests per site per day; the answer has the queue position and the ETA in eta_text, which is for the click and not for indexing. It previews first, and queues nothing for a page that is already indexed unless force is true, a re-index. A re-index, a URL that is not in the sitemap, or the site's last request of the day waits for the user's yes. A client on MCP protocol 2026-07-28 that supports elicitation gets a question to confirm, and the answer does not pass through the model. This remote server keeps no session, so a client on an earlier protocol version is not asked: the tool refuses first with a confirm token, and the call with that token stands for the user's yes.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "confirm": {
                  "description": "The confirm token from this tool's refusal, once the user agreed",
                  "pattern": "^[0-9a-f]{16}$",
                  "type": "string"
                },
                "force": {
                  "description": "Request a re-index of a page that is already indexed",
                  "type": "boolean"
                },
                "url": {
                  "description": "A whole http or https URL of one of the user's sites",
                  "maxLength": 2048,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": false,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Request indexing"
            }
          },
          {
            "name": "get_indexing_request",
            "title": "Read an indexing request",
            "description": "One indexing request: its status, queue position and ETA in eta_text while open, and what Search Console answered once the extension performed it. A closed request with status requested means the click happened; whether Google indexed the page is check_url's answer.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "request_id": {
                  "description": "The indexing request's id",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "type": "string"
                }
              },
              "required": [
                "request_id"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Read an indexing request"
            }
          },
          {
            "name": "list_indexing_requests",
            "title": "List indexing requests",
            "description": "Indexing requests newest first, for one site or all of them: open ones (preparing, queued, served) with their position and ETA, or closed ones with their outcome. Closed requests are kept 90 days.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "cursor": {
                  "description": "next_cursor from the previous page",
                  "maxLength": 500,
                  "type": "string"
                },
                "limit": {
                  "description": "Rows to return, 25 by default, 50 at most",
                  "maximum": 50,
                  "minimum": 1,
                  "type": "integer"
                },
                "site": {
                  "description": "The site: its id (a UUID) or its domain, such as example.com",
                  "maxLength": 255,
                  "minLength": 1,
                  "type": "string"
                },
                "status": {
                  "enum": [
                    "open",
                    "closed"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "List indexing requests"
            }
          },
          {
            "name": "cancel_indexing_request",
            "title": "Cancel an indexing request",
            "description": "Takes an open indexing request out of the queue, so the extension never performs it. The page stays in IndexMachine. A closed request cannot be canceled.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "request_id": {
                  "description": "The indexing request's id",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "type": "string"
                }
              },
              "required": [
                "request_id"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": false,
              "title": "Cancel an indexing request"
            }
          },
          {
            "name": "submit_indexnow",
            "title": "Submit URLs to IndexNow",
            "description": "Notifies Bing, Yandex and the other IndexNow engines of up to 100 URLs of one site at once; it does not reach Google, and each engine decides when it crawls. It needs the site's IndexNow key file in place (indexnow_ready in list_sites) and takes 20 submissions per site a day. More than 10 URLs at once wait for the user's yes. A client on MCP protocol 2026-07-28 that supports elicitation gets a question to confirm, and the answer does not pass through the model. This remote server keeps no session, so a client on an earlier protocol version is not asked: the tool refuses first with a confirm token, and the call with that token stands for the user's yes.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "confirm": {
                  "description": "The confirm token from this tool's refusal, once the user agreed",
                  "pattern": "^[0-9a-f]{16}$",
                  "type": "string"
                },
                "site": {
                  "description": "The site: its id (a UUID) or its domain, such as example.com",
                  "maxLength": 255,
                  "minLength": 1,
                  "type": "string"
                },
                "urls": {
                  "description": "URLs of this site, 100 at most",
                  "items": {
                    "maxLength": 2048,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "site",
                "urls"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": false,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Submit URLs to IndexNow"
            }
          }
        ]
      },
      "name": "IndexMachine",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "indexmachine-mcp",
          "version": "0.1.0",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/indexmachine-mcp.json",
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 141
      },
      "registryName": "co.indexmachine/mcp",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.indexmachine.co/mcp"
        }
      ],
      "repository": "https://github.com/indexmachine/indexmachine-mcp",
      "reviewed": false,
      "slug": "indexmachine-mcp",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=co.indexmachine/mcp",
      "summary": "Check your own sites' pages on Google and request indexing, plus IndexNow, from your AI assistant.",
      "updatedAt": "2026-10-31T17:09:37Z",
      "url": "https://www.anchorterminal.com/tools/indexmachine-mcp",
      "vendor": "indexmachine.co",
      "vendorUrl": "https://indexmachine.co",
      "version": "0.1.0",
      "websiteUrl": "https://indexmachine.co",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/indexmachine-mcp",
    "json": "https://www.anchorterminal.com/tools/indexmachine-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/indexmachine-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/tools/indexmachine-mcp.min.md"
  },
  "markdown": "# IndexMachine\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by indexmachine.co (https://indexmachine.co)\n- Listed because: It's published in the registry under indexmachine.co, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Check your own sites' pages on Google and request indexing, plus IndexNow, from your AI assistant.\n\n## Facts\n\n- MCP registry: `co.indexmachine/mcp` 0.1.0\n- Endpoint: https://mcp.indexmachine.co/mcp (streamable HTTP)\n- Package: npm `indexmachine-mcp` (stdio)\n- Source: https://github.com/indexmachine/indexmachine-mcp\n- Website: https://indexmachine.co\n- npm downloads a week: 141\n- GitHub stars: 0\n- Registry entry updated: 2026-10-31\n\n## Tools\n\n- Tools it lists (10, about 2,359 tokens of context, `tools/list` without credentials over MCP 2026-07-28, checked 2026-11-09 02:20 UTC):\n  - `account_status` (read-only): The plan, the key's permissions and hourly request budget, whether the user's IndexMachine Chrome extension is online (it performs every Request indexing…\n  - `list_sites` (read-only): Every Search Console property connected to IndexMachine, with its page counts (indexed, awaiting, rejected, needs_fix, excluded), whether Google indexing is…\n  - `site_summary` (read-only): One site in full: page counts, today's Request indexing quota (about 10 a day, reset at midnight Pacific), the median days from a first request to indexing,…\n  - `list_pages` (read-only): A site's pages by path, with their status, Google's coverage state and the last crawl and request. status not_indexed is every page that is neither indexed nor…\n  - `check_url` (read-only): Whether a URL of one of the user's sites is indexed on Google, and as of when: the stored Search Console inspection, its open indexing request with the ETA,…\n  - `request_indexing` (writes): Queues a Request indexing click for a URL of one of the user's sites, also one that is not a page of the site yet. The user's IndexMachine Chrome extension…\n  - `get_indexing_request` (read-only): One indexing request: its status, queue position and ETA in eta_text while open, and what Search Console answered once the extension performed it. A closed…\n  - `list_indexing_requests` (read-only): Indexing requests newest first, for one site or all of them: open ones (preparing, queued, served) with their position and ETA, or closed ones with their…\n  - `cancel_indexing_request` (writes): Takes an open indexing request out of the queue, so the extension never performs it. The page stays in IndexMachine. A closed request cannot be canceled.\n  - `submit_indexnow` (writes): Notifies Bing, Yandex and the other IndexNow engines of up to 100 URLs of one site at once; it does not reach Google, and each engine decides when it crawls.…\n- How its tools read to an agent (0 errors, 2 warnings, 1 note, about 2,359 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC11 list_indexing_requests: 1 parameter without a description: status\n  - warn TC11 list_pages: 1 parameter without a description: status\n  - note TC24 server: 10 of 10 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/indexmachine-mcp.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "IndexMachine",
        "url": ""
      }
    ],
    "description": "IndexMachine, an MCP server by indexmachine.co, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Check your own sites' pages on Google and request indexing, plus IndexNow, from your AI assistant.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "IndexMachine",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/indexmachine-mcp",
    "published": "",
    "section": "indexed",
    "title": "IndexMachine: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-11-09",
    "url": "https://www.anchorterminal.com/tools/indexmachine-mcp"
  },
  "tokens": {
    "markdown": 1050,
    "slim": 980
  },
  "version": 1
}
