Send new pages and backlinks to Googlebot fast, then check which URLs Google has indexed.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <your Rapid Indexer API key> (get one at https://rapid-indexer.com/api_access)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create an index-check task that reports, per URL, whether Google currently has it in the index (indexed / unindexed). Cheap (~0.1 credit per URL) but still SPENDS CREDITS. Results arrive within a few minutes: poll get_task, then read get_task_links. Does not submit anything to Google; use submit_urls_for_indexing for that.
Absolute URLs (https://...). Scheme is added when missing. Max 10000 per task.
Optional label shown in the dashboard.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create an index-check task that reports, per URL, whether Google currently has it in the index (indexed / unindexed). Cheap (~0.1 credit per URL) but still SPENDS CREDITS. Results arrive within a few minutes: poll get_task, then read get_task_links. Does not submit anything to Google; use submit_urls_for_indexing for that.
| Argument | Type | Description |
|---|---|---|
| urls* | array | Absolute URLs (https://...). Scheme is added when missing. Max 10000 per task. |
| title | string | Optional label shown in the dashboard. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"urls"
],
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2048,
"minLength": 4
},
"maxItems": 10000,
"minItems": 1,
"description": "Absolute URLs (https://...). Scheme is added when missing. Max 10000 per task."
},
"title": {
"type": "string",
"maxLength": 255,
"description": "Optional label shown in the dashboard."
}
}
}Ping the Rapid Indexer API and report version and enabled features (indexer, checker, traffic, ctr). Also validates that the configured API key works.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Send visitors who search the given keywords on a search engine (Google by default), find the target URL in the results and click it, then browse like a human. SPENDS CREDITS immediately (same rate as traffic, per visitor). Confirm with the user before creating. Use list_search_engines for valid search_engine values.
| Argument | Type | Description |
|---|---|---|
| days | integer | Spread the visitors over this many days. |
| link* | string | Target page the visitors should land on. |
| title | string | Campaign name shown in the dashboard. |
| device | string | |
| country | string | Visitor geo. WW = worldwide mix. |
| keywords* | array | Search queries the visitors will type. |
| referrer | string | Apparent traffic source, e.g. "facebook.com" or a full URL. Empty = direct. |
| visitors* | integer | Total visitors to send (min 30, max 1,000 per scheduled day). |
| delay_max | integer |
Send AI-driven, human-like visitors to a URL (geo, device, referrer and on-page behaviour are configurable). SPENDS CREDITS immediately: see get_pricing (credits per 1,000 visitors). visitors/days must not exceed 1,000 per day. Confirm with the user before creating. Returns the task id; poll get_task for status.
| Argument | Type | Description |
|---|---|---|
| days | integer | Spread the visitors over this many days. |
| link* | string | Target page the visitors should land on. |
| title | string | Campaign name shown in the dashboard. |
| device | string | |
| country | string | Visitor geo. WW = worldwide mix. |
| referrer | string | Apparent traffic source, e.g. "facebook.com" or a full URL. Empty = direct. |
| visitors* | integer | Total visitors to send (min 30, max 1,000 per scheduled day). |
| delay_max | integer | Max seconds on page. |
| delay_min | integer | Min seconds on page. |
Estimate the credit and USD cost of an indexing or index-check task before submitting it, and whether the account balance covers it. Does not create anything.
| Argument | Type | Description |
|---|---|---|
| vip | boolean | VIP priority queue (indexer only): starts immediately, costs more. |
| type | string | "indexer" submits URLs to Googlebot; "checker" only checks whether they are indexed. |
| url_count* | integer | Number of URLs in the planned task. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url_count"
],
"properties": {
"vip": {
"type": "boolean",
"default": false,
"description": "VIP priority queue (indexer only): starts immediately, costs more."
},
"type": {
"enum": [
"indexer",
"checker"
],
"type": "string",
"default": "indexer",
"description": "\"indexer\" submits URLs to Googlebot; \"checker\" only checks whether they are indexed."
},
"url_count": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Number of URLs in the planned task."
}
}
}Return the authenticated Rapid Indexer account (id, email, credits balance, created date). Use it to check credits before creating tasks.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Return live credit costs: credits per URL for standard/VIP indexing and index checking, traffic price per 1,000 visitors, USD per credit, and whether VIP/traffic are currently enabled.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Fetch one task, refreshing its status from the provider first. Returns status (pending/processing/completed/failed) and progress counts. Poll this after creating a task.
| Argument | Type | Description |
|---|---|---|
| task_id* | integer | Rapid Indexer task id (from list_tasks or a create_* result). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Rapid Indexer task id (from list_tasks or a create_* result).",
"exclusiveMinimum": 0
}
}
}Return each URL in an indexing or index-check task with its status (indexed / unindexed / pending / error). Filter by status and paginate with limit/offset for big tasks. Always includes a summary count.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max links to return. |
| offset | integer | |
| status | string | Only return links with this status. |
| task_id* | integer | Rapid Indexer task id (from list_tasks or a create_* result). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"limit": {
"type": "integer",
"default": 200,
"maximum": 2000,
"minimum": 1,
"description": "Max links to return."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0
},
"status": {
"enum": [
"indexed",
"unindexed",
"pending",
"error"
],
"type": "string",
"description": "Only return links with this status."
},
"task_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Rapid Indexer task id (from list_tasks or a create_* result).",
"exclusiveMinimum": 0
}
}
}Return the search engines and marketplaces accepted by create_ctr_campaign.search_engine.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the account's tasks, newest first, with per-link counts (indexed / unindexed / pending / error). Filter by type or status. Use it to find task ids.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| type | string | Only tasks of this type. |
| status | string | Only tasks in this status. |
| per_page | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
},
"type": {
"enum": [
"indexer",
"checker",
"traffic"
],
"type": "string",
"description": "Only tasks of this type."
},
"status": {
"enum": [
"pending",
"processing",
"completed",
"failed"
],
"type": "string",
"description": "Only tasks in this status."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
}
}
}Create an indexing task: Rapid Indexer signals Googlebot to crawl each URL so Google discovers it fast. SPENDS CREDITS immediately (standard ~2 credits/URL, VIP ~10 credits/URL). Run estimate_cost first and confirm with the user for large batches. Standard queue starts within minutes; VIP starts immediately with priority. drip_feed spreads submissions over several days for a natural pattern. Returns the task id; poll get_task for progress and get_task_links for per-URL status. Google makes the final indexing decision.
| Argument | Type | Description |
|---|---|---|
| vip | boolean | Use the VIP priority queue (faster, higher cost). |
| urls* | array | Absolute URLs (https://...). Scheme is added when missing. Max 10000 per task. |
| title | string | Optional label shown in the dashboard. |
| engine | string | google (default) or bing (Bing Indexing only, no Google). |
| drip_feed | boolean | Spread the URLs over drip_duration_days instead of submitting all at once. |
| drip_duration_days | integer | Days to spread a drip-feed task over (only when drip_feed is true). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"urls"
],
"properties": {
"vip": {
"type": "boolean",
"default": false,
"description": "Use the VIP priority queue (faster, higher cost)."
},
"urls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2048,
"minLength": 4
},
"maxItems": 10000,
"minItems": 1,
"description": "Absolute URLs (https://...). Scheme is added when missing. Max 10000 per task."
},
"title": {
"type": "string",
"maxLength": 255,
"description": "Optional label shown in the dashboard."
},
"engine": {
"enum": [
"google",
"bing"
],
"type": "string",
"default": "google",
"description": "google (default) or bing (Bing Indexing only, no Google)."
},
"drip_feed": {
"type": "boolean",
"default": false,
"description": "Spread the URLs over drip_duration_days instead of submitting all at once."
},
"drip_duration_days": {
"type": "integer",
"default": 3,
"maximum": 30,
"minimum": 1,
"description": "Days to spread a drip-feed task over (only when drip_feed is true)."
}
}
}| Max seconds on page. |
| delay_min | integer | Min seconds on page. |
| pages_max | integer | Max internal pages per visit. |
| pages_min | integer | Min internal pages per visit. |
| ai_enabled | boolean | Human-like AI browsing (scrolling, reading, internal clicks). |
| bounce_rate | integer | Percent of single-page visits. |
| click_links | array | Paths or CSS selectors the visitor may click, e.g. ["/pricing", "button.cta"]. |
| search_only | boolean | Search without clicking the result (search-volume boost only). |
| click_chance | integer | Percent of visitors who click one of click_links. |
| video_chance | integer |
| search_engine | string | Engine key from list_search_engines (GOOGLE, BING, YAHOO, DUCKDUCKGO, YANDEX, BAIDU, NAVER, AMAZON, ...). |
| search_language | string | Search UI language code. |
| search_pages_max | integer | How many result pages to scan for the target URL. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"link",
"visitors",
"keywords"
],
"properties": {
"days": {
"type": "integer",
"default": 1,
"maximum": 30,
"minimum": 1,
"description": "Spread the visitors over this many days."
},
"link": {
"type": "string",
"format": "uri",
"description": "Target page the visitors should land on."
},
"title": {
"type": "string",
"maxLength": 255,
"description": "Campaign name shown in the dashboard."
},
"device": {
"enum": [
"mixed",
"desktop",
"mobile",
"tablet"
],
"type": "string",
"default": "mixed"
},
"country": {
"enum": [
"WW",
"US",
"GB",
"DE",
"JP",
"FR",
"CA",
"AU",
"BR",
"IN",
"MX",
"IT",
"NL",
"KR",
"ID",
"TR",
"PL",
"TH",
"VN",
"PH",
"ES"
],
"type": "string",
"default": "WW",
"description": "Visitor geo. WW = worldwide mix."
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"minItems": 1,
"description": "Search queries the visitors will type."
},
"referrer": {
"type": "string",
"maxLength": 255,
"description": "Apparent traffic source, e.g. \"facebook.com\" or a full URL. Empty = direct."
},
"visitors": {
"type": "integer",
"maximum": 30000,
"minimum": 30,
"description": "Total visitors to send (min 30, max 1,000 per scheduled day)."
},
"delay_max": {
"type": "integer",
"default": 90,
"maximum": 900,
"minimum": 5,
"description": "Max seconds on page."
},
"delay_min": {
"type": "integer",
"default": 30,
"maximum": 600,
"minimum": 5,
"description": "Min seconds on page."
},
"pages_max": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1,
"description": "Max internal pages per visit."
},
"pages_min": {
"type": "integer",
"default": 2,
"maximum": 20,
"minimum": 1,
"description": "Min internal pages per visit."
},
"ai_enabled": {
"type": "boolean",
"default": true,
"description": "Human-like AI browsing (scrolling, reading, internal clicks)."
},
"bounce_rate": {
"type": "integer",
"default": 15,
"maximum": 100,
"minimum": 0,
"description": "Percent of single-page visits."
},
"click_links": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Paths or CSS selectors the visitor may click, e.g. [\"/pricing\", \"button.cta\"]."
},
"search_only": {
"type": "boolean",
"default": false,
"description": "Search without clicking the result (search-volume boost only)."
},
"click_chance": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 0,
"description": "Percent of visitors who click one of click_links."
},
"video_chance": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 0
},
"search_engine": {
"type": "string",
"default": "GOOGLE",
"description": "Engine key from list_search_engines (GOOGLE, BING, YAHOO, DUCKDUCKGO, YANDEX, BAIDU, NAVER, AMAZON, ...)."
},
"search_language": {
"type": "string",
"default": "en",
"maxLength": 5,
"minLength": 2,
"description": "Search UI language code."
},
"search_pages_max": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "How many result pages to scan for the target URL."
}
}
}| pages_max | integer | Max internal pages per visit. |
| pages_min | integer | Min internal pages per visit. |
| ai_enabled | boolean | Human-like AI browsing (scrolling, reading, internal clicks). |
| bounce_rate | integer | Percent of single-page visits. |
| click_links | array | Paths or CSS selectors the visitor may click, e.g. ["/pricing", "button.cta"]. |
| click_chance | integer | Percent of visitors who click one of click_links. |
| video_chance | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"link",
"visitors"
],
"properties": {
"days": {
"type": "integer",
"default": 1,
"maximum": 30,
"minimum": 1,
"description": "Spread the visitors over this many days."
},
"link": {
"type": "string",
"format": "uri",
"description": "Target page the visitors should land on."
},
"title": {
"type": "string",
"maxLength": 255,
"description": "Campaign name shown in the dashboard."
},
"device": {
"enum": [
"mixed",
"desktop",
"mobile",
"tablet"
],
"type": "string",
"default": "mixed"
},
"country": {
"enum": [
"WW",
"US",
"GB",
"DE",
"JP",
"FR",
"CA",
"AU",
"BR",
"IN",
"MX",
"IT",
"NL",
"KR",
"ID",
"TR",
"PL",
"TH",
"VN",
"PH",
"ES"
],
"type": "string",
"default": "WW",
"description": "Visitor geo. WW = worldwide mix."
},
"referrer": {
"type": "string",
"maxLength": 255,
"description": "Apparent traffic source, e.g. \"facebook.com\" or a full URL. Empty = direct."
},
"visitors": {
"type": "integer",
"maximum": 30000,
"minimum": 30,
"description": "Total visitors to send (min 30, max 1,000 per scheduled day)."
},
"delay_max": {
"type": "integer",
"default": 90,
"maximum": 900,
"minimum": 5,
"description": "Max seconds on page."
},
"delay_min": {
"type": "integer",
"default": 30,
"maximum": 600,
"minimum": 5,
"description": "Min seconds on page."
},
"pages_max": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1,
"description": "Max internal pages per visit."
},
"pages_min": {
"type": "integer",
"default": 2,
"maximum": 20,
"minimum": 1,
"description": "Min internal pages per visit."
},
"ai_enabled": {
"type": "boolean",
"default": true,
"description": "Human-like AI browsing (scrolling, reading, internal clicks)."
},
"bounce_rate": {
"type": "integer",
"default": 15,
"maximum": 100,
"minimum": 0,
"description": "Percent of single-page visits."
},
"click_links": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Paths or CSS selectors the visitor may click, e.g. [\"/pricing\", \"button.cta\"]."
},
"click_chance": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 0,
"description": "Percent of visitors who click one of click_links."
},
"video_chance": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 0
}
}
}