CrakSEO URL Indexing MCP
Submit URLs through Google and Bing routes, IndexNow, and check index status. Paid indexing requires owner-approved quotes; indexing is not guaranteed. Hosted Streamable HTTP with OAuth or a scoped API key. Check availability and pricing before paid calls.
Server MCP Terhosting
npx add-mcp 'https://crakseo.com/mcp/url-indexing'Terpasang ke Claude Code, Codex, Cursor, dan lainnya
Dokumentasi
Agent Instructions
For SEO data and indexing, start with /seo-mcp/overview.md and /seo-mcp/connect.md, then read the focused server reference. The documentation search MCP at https://docs.crakseo.com/mcp searches documentation only. Product tools use https://crakseo.com/mcp/. Check tool availability and API credit balance before paid calls. Request owner approval for paid force indexing. Never invent prices, indexing guarantees or directory approval.
URL Indexing MCP: Google Indexer, Backlink Indexer, IndexNow, Index Checker
Google indexer: free IndexNow, Bing, sitemap and index checks; paid backlink force indexing
Google indexer and URL indexer for AI agents. Free URL submission for sites you own: IndexNow and Bing Webmaster Tools, sitemap resubmission to Google Search Console, and a free index checker (Search Console URL inspection) that finds pages stuck in 'Crawled - currently not indexed' or 'Discovered - currently not indexed'. Force indexing (paid) is the fast indexing service: a backlink indexer and link indexer that pushes any public URL, including backlinks and pages you don't own, to Google through a third-party indexing service so Googlebot crawls it sooner. It uses URL credits, always shows an exact quote first and needs the account owner's approval; Google still decides what it indexes. It never uses the Google Indexing API.
| Endpoint | https://crakseo.com/mcp/url-indexing |
| Transport | Streamable HTTP |
| Sign-in | OAuth, or an API key as a bearer token |
| Scopes | indexing:read, indexing:submit |
| Billing | Free URL submission (IndexNow, Bing, sitemaps); paid force indexing |
When to use
Use after publishing or updating pages (free submission and index checks), when Search Console shows 'Crawled - currently not indexed' or 'Discovered - currently not indexed', or when backlinks and other pages you don't own need Google to crawl them (force indexing, paid).
Questions this MCP can answer
How do I submit my website's new pages to IndexNow?
Tools: Free URL submission: IndexNow (submit_urls_to_indexnow).
How do I check whether my page is indexed in Google?
Tools: Free index check: are URLs indexed in Google (check_if_url_is_indexed).
How do I request backlink indexing with a quote and owner approval?
Tools: Force indexing: quote URLs (backlink and Google indexer) (quote_force_indexing); Force indexing: submit approved quote (submit_force_indexing); Force indexing: read job (get_force_indexing_job).
Connect
claude mcp add --transport http crakseo-url-indexing https://crakseo.com/mcp/url-indexing
Use crakseo-url-indexing as the server name and https://crakseo.com/mcp/url-indexing as the URL. Run /mcp in Claude Code to authenticate. For OAuth, scoped API keys and a free test, follow Connect and test.
Other clients: ChatGPT, Cursor, Codex, VS Code, Cline, Gemini CLI, Grok and Muse.
Connect using the URL above; no registry ID or marketplace listing is required.
Verify without spending
Use CrakSEO get_force_indexing_balance to check my account. Do not submit URLs, buy credits or approve any force indexing quote.
Tools
| Tool | What it does | Price per call |
|---|---|---|
submit_urls_to_indexnow | Free URL submission: IndexNow | Free |
submit_urls_to_bing | Free URL submission: Bing Webmaster Tools | Free |
notify_search_engines_free | Free URL submission: IndexNow, Bing and the Google next step | Free |
check_if_url_is_indexed | Free index check: are URLs indexed in Google | Free |
submit_sitemap | Submit a sitemap to Google and Bing | Free |
get_force_indexing_balance | Force indexing: read URL credits and readiness | Free |
quote_force_indexing | Force indexing: quote URLs (backlink and Google indexer) | Free quote; submission uses URL credits |
submit_force_indexing | Force indexing: submit approved quote | 1 URL credit per URL the indexing service accepts |
get_force_indexing_job | Force indexing: read job | Free |
list_force_indexing_jobs | Force indexing: list jobs | Free |
[!NOTE]
Tool names, titles and parameters on this page match the server's
tools/listresponse, which stays authoritative. Example values are placeholders, not real measurements. Prices marked TBD are set at launch on API credits.
submit_urls_to_indexnow
Free URL submission: IndexNow. Free URL submission through IndexNow: notify Bing, Yandex, Seznam, Naver and other IndexNow engines that pages on your own sites changed. Needs the project's IndexNow key file to be live. Free; Google does not read IndexNow. For pages Google must crawl now, use force indexing (quote_force_indexing, paid).
- Price per call: Free
- Annotations: writes, idempotent
- Limits: URLs must be on a domain that is a project in this account, and the project's IndexNow key file must be live. The result links to the setup page when it isn't. Google doesn't read IndexNow.
| Parameter | Type | Required | Description |
|---|---|---|---|
urls | string[] | Yes | Up to 100 page URLs on domains that are projects in this account. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "submit_urls_to_indexnow",
"arguments": {
"urls": [
"https://example.com/new-post/"
]
}
}
}
{
"results": [
{
"target": "https://example.com",
"ok": true,
"submitted": 1,
"detail": "accepted"
}
],
"skipped": [],
"dashboardUrl": "https://crakseo.com/app/api/indexing"
}
submit_urls_to_bing
Free URL submission: Bing Webmaster Tools. Free URL submission to Bing: submit up to 500 URLs to Bing through Bing Webmaster Tools (SubmitUrlBatch), within the site's daily quota. Needs a Bing Webmaster connection. Free.
- Price per call: Free
- Annotations: writes, idempotent
- Limits: Needs a Bing Webmaster Tools connection. Counts against the site's daily Bing URL submission quota (see get_bing_url_submission_quota).
| Parameter | Type | Required | Description |
|---|---|---|---|
urls | string[] | Yes | Up to 500 URLs on sites verified in your Bing Webmaster Tools account. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "submit_urls_to_bing",
"arguments": {
"urls": [
"https://example.com/new-post/"
]
}
}
}
{
"results": [
{
"target": "https://example.com/",
"ok": true,
"submitted": 1,
"detail": "Bing accepted 1 URLs."
}
],
"skipped": [],
"dashboardUrl": "https://crakseo.com/app/api/indexing"
}
notify_search_engines_free
Free URL submission: IndexNow, Bing and the Google next step. Free URL submission for your own sites: notify Bing and other engines through IndexNow and Bing Webmaster Tools in one call, and get the next step for Google. Google has no public API to request indexing of normal pages, so this only notifies engines and cannot force Google; resubmit the sitemap (free) or use force indexing (quote_force_indexing, paid) when Google needs to crawl now. Free; never uses the Google Indexing API.
- Price per call: Free
- Annotations: writes, idempotent
- Limits: Submits through IndexNow and, when Bing Webmaster Tools is connected, Bing. It never submits to Google directly; the result gives the Google next step. A submission receipt isn't proof that a search engine indexed the URL.
| Parameter | Type | Required | Description |
|---|---|---|---|
urls | string[] | Yes | Up to 100 page URLs on domains that are projects in this account. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "notify_search_engines_free",
"arguments": {
"urls": [
"https://example.com/new-post/"
]
}
}
}
{
"indexnow": [
{
"target": "https://example.com",
"ok": true,
"submitted": 1,
"detail": "accepted"
}
],
"bing": [],
"google": {
"submitted": false,
"nextStep": "Google has no public API to request indexing of normal pages, so free URL submission only notifies engines; it cannot force Google. Call submit_sitemap (free) to have Search Console recrawl your sitemap, or quote_force_indexing for force indexing (paid URL credits: we push URLs to Google through an indexing service so Googlebot crawls them sooner; the account owner approves the exact quote in the dashboard)."
},
"skipped": [],
"dashboardUrl": "https://crakseo.com/app/api/indexing"
}
check_if_url_is_indexed
Free index check: are URLs indexed in Google. Free index check: check if a URL is indexed in Google, using Search Console URL inspection for pages in your connected properties, plus Bing's last crawl when Bing Webmaster Tools is connected. Up to 20 URLs. Free. For pages that are not indexed, resubmit the sitemap or use force indexing (quote_force_indexing, paid).
- Price per call: Free
- Annotations: read-only, idempotent
- Limits: Needs a connected Search Console property that covers each URL. Counts against Google's URL Inspection quota.
| Parameter | Type | Required | Description |
|---|---|---|---|
urls | string[] | Yes | Up to 20 page URLs inside connected Search Console properties. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "check_if_url_is_indexed",
"arguments": {
"urls": [
"https://example.com/new-post/"
]
}
}
}
{
"results": [
{
"url": "https://example.com/new-post/",
"indexed": false,
"verdict": "NEUTRAL",
"coverageState": "Discovered - currently not indexed",
"lastCrawlTime": null,
"source": "google_search_console",
"reason": null,
"bing": null
}
],
"dashboardUrl": "https://crakseo.com/app/api/indexing"
}
submit_sitemap
Submit a sitemap to Google and Bing. Free URL submission: resubmit a sitemap to Google Search Console and Bing Webmaster Tools so both engines recrawl your pages. Resubmitting the same sitemap is safe. Free.
- Price per call: Free
- Annotations: writes, idempotent
| Parameter | Type | Required | Description |
|---|---|---|---|
sitemapUrl | string | Yes | Absolute URL of the XML sitemap or sitemap index. |
engines | ("google" | "bing")[] | No | Where to submit: google (Search Console), bing (Bing Webmaster Tools) or both. Default ["google","bing"]. |
bingSiteUrl | string | No | Bing site URL when it differs from the sitemap's origin plus a trailing slash. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "submit_sitemap",
"arguments": {
"sitemapUrl": "https://example.com/sitemap.xml"
}
}
}
{
"sitemapUrl": "https://example.com/sitemap.xml",
"results": [
{
"engine": "google",
"ok": true,
"detail": "Submitted to sc-domain:example.com."
},
{
"engine": "bing",
"ok": true,
"detail": "Submitted to https://example.com/."
}
]
}
get_force_indexing_balance
Force indexing: read URL credits and readiness. Force indexing (paid): read this account's URL credits, readiness, tracking policy and limits. URL credits are separate from SEO data API credits and from the main CrakSEO subscription. Free to call: no purchase and no indexing-service call.
- Price per call: Free
- Annotations: read-only
- Limits: Reads the account only. Buy URL credits in the dashboard; the tool cannot purchase.
| Parameter | Type | Required | Description |
|---|
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_force_indexing_balance",
"arguments": {}
}
}
quote_force_indexing
Force indexing: quote URLs (backlink and Google indexer). Force indexing (paid), also known as a backlink indexer, link indexer or fast Google indexing service: we push URLs to Google through a third-party indexing service so Googlebot crawls them sooner. Works on any public URL, including backlinks, pages you don't own and pages stuck in 'Crawled - currently not indexed' or 'Discovered - currently not indexed'. Preview up to 100 URLs: duplicates, technical rejections, prior submissions and the exact URL-credit cost (1 credit per URL the service accepts). Creates an expiring quote; spends nothing and submits nothing. For your own sites, the free URL submission tools come first.
- Price per call: Free quote; submission uses URL credits
- Annotations: writes
- Limits: Up to 100 URLs per quote. The quote expires; it spends nothing and submits nothing. Indexing is never guaranteed.
| Parameter | Type | Required | Description |
|---|---|---|---|
urls | string[] | Yes | Up to 100 public page URLs on any domain, including backlinks and pages you do not own. |
resubmit | boolean | No | Allow URLs that were already submitted before (default false). |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "quote_force_indexing",
"arguments": {
"urls": [
"https://example.com/new-post/",
"https://partner-blog.example/link-to-you/"
]
}
}
}
submit_force_indexing
Force indexing: submit approved quote. Force indexing (paid backlink and Google indexer): submit the exact saved quote once. Copy quoteId AND idempotencyKey from the quote response; reuse that exact pair for every retry, never invent a new submit key. Requires the account owner's stored approval from authenticated CrakSEO web confirmation; tool arguments cannot approve spending. Otherwise returns needs_confirmation and an owned confirmation URL. Reserves URL credits; charges 1 credit per URL the indexing service accepts. No guarantee that Google indexes the page. Unknown outcomes must not be blindly retried.
- Price per call: 1 URL credit per URL the indexing service accepts
- Annotations: writes, destructive, idempotent
- Limits: Needs the account owner's approval of the exact quote in the dashboard; otherwise returns needs_confirmation with the confirmation URL.
| Parameter | Type | Required | Description |
|---|---|---|---|
quoteId | string | Yes | quoteId from quote_force_indexing. |
idempotencyKey | string | Yes | idempotencyKey from the same quote; reuse it on every retry. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "submit_force_indexing",
"arguments": {
"quoteId": "3f1c2b7e-8a9d-4c1e-9b2a-5d6e7f809a1b",
"idempotencyKey": "quote-3f1c2b7e"
}
}
}
get_force_indexing_job
Force indexing: read job. Force indexing: read one owned job and up to 100 URL records. Submission progress, aggregate indexing-service counts and individual dated index observations remain distinct. Reads persisted data, not a fresh paid check.
- Price per call: Free
- Annotations: read-only
- Limits: Reads stored results; does not run a fresh paid check.
| Parameter | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | Job id from a submission. |
cursor | string | No | Cursor from the previous page; omit for the first page. |
limit | integer | No | Records per page, 1 to 100 (default 25). |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_force_indexing_job",
"arguments": {
"jobId": "3f1c2b7e-8a9d-4c1e-9b2a-5d6e7f809a1b"
}
}
}
list_force_indexing_jobs
Force indexing: list jobs. Force indexing: list only this workspace's owned jobs using bounded cursor pagination. History remains readable without URL credits or a main-product subscription.
- Price per call: Free
- Annotations: read-only
- Limits: History stays readable without URL credits. Dashboard: https://crakseo.com/app/api/indexing
| Parameter | Type | Required | Description |
|---|---|---|---|
cursor | string | No | Cursor from the previous page; omit for the first page. |
limit | integer | No | Records per page, 1 to 100 (default 25). |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_force_indexing_jobs",
"arguments": {}
}
}
Errors
| Code | Meaning | What to do |
|---|---|---|
insufficient_credits | The API credits wallet can't cover the call's maximum price. | Add credits at https://crakseo.com/app/indexing/credits, then retry the same call. The failed call isn't charged. |
forbidden | The connection doesn't have the scope this tool needs, for example seo-data:read or console:write. | Reconnect and grant the scope named in the message, or use an API key that has it. |
not_connected | Google Search Console or Bing Webmaster Tools isn't connected, or no connected property covers the URL. | Open the connect link in the message and sign in with the account that owns the property. |
invalid_input | A parameter is missing or out of range. | Read the message, which names the field, fix the argument and retry. |
confirmation_required | A force indexing submission doesn't have the account owner's approval for this exact quote. | submit_force_indexing returns status: "needs_confirmation" with a confirmationUrl. Send the owner there to approve, then retry with the same quoteId and idempotencyKey. The agent can't approve spend. |
wallet_frozen | API credit spending is suspended on this account after a refund or dispute. | Contact support@crakseo.com. |
budget_exceeded | The account's daily API credit spending limit, or the service's daily data budget, is used up. | Retry tomorrow. |
disabled | SEO data calls aren't switched on for this deployment yet. | Use the free Search Console and URL indexing tools meanwhile. get_api_credit_balance reports dataCallsEnabled. |
supplier_unavailable | The data supplier couldn't be reached or is rate limiting. | Retry later. Failed data calls are free. |
supplier_unknown | The data supplier didn't answer in time or sent an unreadable response. | Retry later. Failed data calls are free. |
supplier_error | The data supplier refused the request or returned no data. | Check the arguments (for example the location name) and retry. Failed data calls are free. |
[accordion] Technical registry details
Intended MCP Registry ID:
com.crakseo/url-indexing.The namespace
com.crakseois the reverse-domain form ofcrakseo.com, used to identify the publisher. It is not a website address, product name or connection URL. You do not need it to connect.This identifier is recorded in our publishing drafts, not a claim of registry acceptance or directory approval.
This documentation is built and hosted on Mintlify, a developer documentation platform.