Skip to content

The indexing MCP server for your coding agent

Ask Claude, ChatGPT, Claude Code, Cursor or VS Code which pages Google hasn't indexed and why, then let it notify search engines and queue indexing requests after you ship. The IndexCyborg MCP server is remote and stateless, speaks Streamable HTTP at https://indexcyborg.com/api/mcp, and takes a sign-in from Claude.ai and ChatGPT or the same scoped API keys as the REST API.

1Connect your client

Claude.ai and ChatGPT sign in with your IndexCyborg account, no key needed. Coding agents use an API key: create one in the dashboard under Settings → API keys. Keys look like ic_ followed by 48 hex characters and are shown once.

Claude.ai and ChatGPT

  1. Claude (web, desktop and mobile): Settings → Connectors → Add custom connector, paste https://indexcyborg.com/api/mcp and click Connect. ChatGPT: turn on developer mode in Settings, then add an app with the same URL and OAuth authentication.
  2. Sign in to IndexCyborg in the window that opens.
  3. On the consent screen, choose what the app may do: read, notify and manage are on by default; admin (API keys, removing websites, disconnecting Google) is off unless you tick it. Then click Allow.
  4. Ask away, for example “Which pages on example.com aren't indexed by Google, and why?” You can disconnect an app at any time in Settings → Connected apps.

Apps connected this way get every tool except the two billing links: plans are bought on the website.

Claude Code

Terminal
claude mcp add --transport http indexcyborg https://indexcyborg.com/api/mcp \
  --header "Authorization: Bearer ic_your_key"

Cursor

.cursor/mcp.json in the project, or ~/.cursor/mcp.json
{
  "mcpServers": {
    "indexcyborg": {
      "url": "https://indexcyborg.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:INDEXCYBORG_API_KEY}"
      }
    }
  }
}

VS Code

.vscode/mcp.json (prompts for the key once)
{
  "inputs": [
    {
      "type": "promptString",
      "id": "indexcyborg-key",
      "description": "IndexCyborg API key",
      "password": true
    }
  ],
  "servers": {
    "indexcyborg": {
      "type": "http",
      "url": "https://indexcyborg.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:indexcyborg-key}"
      }
    }
  }
}

Other clients

Clients that read an mcpServers JSON block
{
  "mcpServers": {
    "indexcyborg": {
      "url": "https://indexcyborg.com/api/mcp",
      "headers": { "Authorization": "Bearer ic_your_key" }
    }
  }
}

Check your client's documentation for its exact format. It needs remote servers over Streamable HTTP and a custom Authorization header.

236 tools, scoped per key

Everything the dashboard does is a tool. Read tools answer questions. Notify tools queue work, and only for domains you have verified. Manage tools set websites up. Admin tools run the account. A key without the right scope gets a clear insufficient_scope error instead of a silent failure.

ToolScopeWhat it does
get_overviewreadThe dashboard's Overview across your websites: totals, coverage over the inspected pages, pages needing attention.
get_coverage_historyreadDaily index-status snapshots over time, the Overview chart.
list_urlsreadThe Pages view: the URL inventory filtered by website, status or text, with paging.
get_activityreadThe Activity feed: discoveries, notifications, status changes and issues.
list_sitemapsreadA website's sitemaps with status and entry counts.
get_jobreadProgress of any queued job: queued, running, completed or failed.
list_websitesreadWebsites this key can access, with verification, IndexNow and Search Console state.
get_indexing_statusreadGoogle's verbatim URL Inspection result for one URL, or a site-level summary.
get_unindexed_pagesreadPages Google inspected and reports as not indexed. Never includes uninspected pages.
get_indexing_issuesreadOpen technical and indexing issues, each with the evidence observed.
check_technical_seoreadLatest technical check for a URL (status, robots, canonical, title); a fresh check needs notify.
generate_indexing_reportreadInventory, status breakdown, coverage over the inspected population, open issues.
get_google_indexing_requestsreadToday's Request indexing budget, the queue and Search Console's answers.
discover_urlsnotifyQueues a sitemap discovery scan. Finds URLs; submits nothing.
notify_search_enginesnotifyQueues an IndexNow notification for up to 1,000 URLs. Accepted is not crawled.
request_google_indexingnotifyQueues up to 50 URLs for Request indexing through the Chrome extension, within 10 per property per 24 h.
inspect_urlsnotifyQueues Search Console URL Inspection for up to 50 URLs. Reads status; requests nothing.
run_technical_checksnotifyQueues fresh technical checks (status, redirects, robots, noindex, canonical) for up to 100 URLs.
add_websitemanageConnects a website and queues its first sitemap scan.
register_urlsmanageAdds on-site URLs the sitemap doesn't list to the inventory.
get_website_setupmanageThe DNS record, files and IndexNow key to publish, and which setup steps are done.
verify_domainmanageChecks the DNS TXT record or hosted file and marks the website verified.
verify_indexnow_keymanageChecks the hosted IndexNow key file and turns notifications on.
link_search_console_propertymanageFinds and links the Search Console property in your connected Google account.
update_monitoringmanageTurns automatic monitoring on or off and sets the scan interval.
add_sitemapmanageRegisters an extra sitemap and queues it for parsing.
get_accountadminAccount email, billing and page balance, Google connection, Chrome extension budgets.
list_api_keysadminEvery key on the account: scopes, restriction, last use. Never the secrets.
create_api_keyadminCreates a key, no stronger than the calling key, and returns its secret once.
rotate_api_keyadminSwaps a key's secret; the old one stops working immediately.
revoke_api_keyadminRevokes a key; requests with it fail from then on.
delete_api_keyadminDeletes a key's record.
create_checkout_linkadminReturns a Stripe Checkout link for a plan or page pack. You pay on Stripe. API keys only.
create_billing_portal_linkadminReturns a link to Stripe's customer portal: plan, card, invoices, cancellation. API keys only.
disconnect_googleadminDisconnects your Google account and unlinks every Search Console property.
remove_websiteadminDeletes a website and all its tracked data, once the domain is repeated to confirm.

Keys carry any of four scopes: read, notify, manage and admin. Manage registers and sets up websites; with it, request_google_indexing also adds on-site URLs that aren't in the inventory yet. Admin covers the account: API keys, billing links, disconnecting Google and removing websites. A key can mint or rotate only keys no stronger than itself, and admin tools need a key that isn't limited to specific websites. A key can be limited to specific websites, so an agent working on a client's site sees only that site.

Three things stay with you because only a person can do them: connecting Google on its consent screen, paying on Stripe (the tools only return the link) and installing the Chrome extension.

3The same gates as the dashboard

An agent can't do anything through MCP that you couldn't do by hand. These checks run on every call.

GateWhat it means for the agent
Verified domainIndexNow notifications and indexing requests are refused until you prove ownership with a DNS TXT record or a hosted HTML file.
Verified IndexNow keynotify_search_engines also needs the key file hosted on your site and verified.
Google's quotas2,000 URL inspections per property per day, 100 of them kept for API and MCP calls.
Request indexing cap10 requests per property per rolling 24 h, enforced by the API, the database and the extension.
Rate limit60 requests per minute per key, shared with the REST API.

4What you can ask

You talk to your agent; it picks the tools. A few requests and the tools they typically lead to.

You askTools the agent calls
“Which pages on example.com aren't indexed, and why?”get_unindexed_pages, then get_indexing_status per URL
“I just shipped /pricing. Tell the search engines.”notify_search_engines, then request_google_indexing
“Is the new docs page blocked by anything?”check_technical_seo with a fresh check
“Write me this week's indexing summary.”generate_indexing_report
“Add example.com and tell me what to publish.”add_website, then get_website_setup
“I published the DNS record. Is the site verified?”verify_domain, then verify_indexnow_key
“Re-check every page that returned an error.”list_urls, then run_technical_checks
“Create a read-only key for our reporting bot.”create_api_key

A queued indexing request waits for the Chrome extension, which clicks Request indexing in your own Search Console session. When Google accepts it, the page is in Google's crawl queue: requested, not crawled and not indexed. Your agent reads the answer later with get_google_indexing_requests.

For the wider picture of Search Console and MCP, read our guide to the Google Search Console MCP landscape. There are setup walkthroughs for Claude Code MCP and Cursor MCP, and a worked example of checking indexing status from your coding agent. Prefer plain HTTP? The same operations are in the REST API.

5Frequently asked questions

What is an indexing MCP server?
An MCP server that gives an AI agent tools for search indexing: reading a site's index status, finding unindexed pages and their reasons, notifying search engines and queueing indexing requests. IndexCyborg's runs remotely over Streamable HTTP and uses the same data and gates as its dashboard.
Which clients can connect to the IndexCyborg MCP server?
Claude (web, desktop and mobile) and ChatGPT connect with OAuth: you sign in to IndexCyborg and choose the permissions. Coding agents such as Claude Code, Cursor and VS Code, and any client that supports remote servers over Streamable HTTP with a custom Authorization header, connect with an API key. The server is stateless, so no session setup is needed.
Can my coding agent get pages indexed through MCP?
No tool can force Google to index a page, and neither can an agent. Through MCP it can notify the IndexNow engines, queue pages for Search Console's Request indexing and read what Google reports back. Accepted, requested, crawled and indexed are reported as separate states.
Is the MCP server different from the REST API?
They share the API keys, verification gates and rate limit, and the MCP server covers everything the dashboard does, including website setup and account tools that the REST API doesn't have. MCP suits agents that pick tools themselves; the REST API suits scripts, CI jobs and your own automation.
Does it use the Google Indexing API?
No. Index status comes from Search Console's URL Inspection API for properties you link. Indexing requests go through the Chrome extension, which clicks Request indexing in your own Search Console session.

Give your agent the indexing workflow

Create an account, verify a website, generate an API key and paste one of the configs above. Starter is $5 a month for one website, Pro is $15 a month for every website you run, or pay once from 1,000 pages for $5. Every plan has the whole workflow, the REST API and the MCP server.

Billing isn't live yet. During early access nothing is charged and every account has Pro limits.