SEO answers for AI agents: Search Console reads free, plus competitor, keyword, backlink, SERP data.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
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.
Free and instant: remaining monthly budget, credit balance, when the budget resets, and which endpoints stay free. Check this before a paid call if you are unsure the budget covers it.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Free and instant: remaining monthly budget, credit balance, when the budget resets, and which endpoints stay free. Check this before a paid call if you are unsure the budget covers it.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Referring domains, link count, domain rank and a reading of what they mean. Deliberately does not return the raw link list: a thousand rows of links fills an agent's context without producing a decision.
| Argument | Type | Description |
|---|---|---|
| site* | string | Search Console property |
{
"type": "object",
"required": [
"site"
],
"properties": {
"site": {
"type": "string",
"description": "Search Console property"
}
}
}Topics a real competitor ranks for and you do not. Competitors are chosen by how much of their keyword set overlaps with yours, not by raw overlap count: raw count returns social networks that rank for everything. Gap keywords are filtered against your existing vocabulary.
| Argument | Type | Description |
|---|---|---|
| site* | string | Search Console property |
| competitor | string | Optional. If omitted we pick one by overlap ratio. |
{
"type": "object",
"required": [
"site"
],
"properties": {
"site": {
"type": "string",
"description": "Search Console property"
},
"competitor": {
"type": "string",
"description": "Optional. If omitted we pick one by overlap ratio."
}
}
}Has Google seen your pages? Works with zero traffic data, so it is useful from a site's first day. Returns which URLs are indexed, which were crawled but not indexed, which were never discovered, and where Google picked a different canonical than you declared.
| Argument | Type | Description |
|---|---|---|
| site* | string | Search Console property, e.g. sc-domain:example.com |
| urls | array | Optional. Defaults to URLs found in the site's sitemap. |
{
"type": "object",
"required": [
"site"
],
"properties": {
"site": {
"type": "string",
"description": "Search Console property, e.g. sc-domain:example.com"
},
"urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional. Defaults to URLs found in the site's sitemap."
}
}
}Search volume and difficulty for keywords you name, each with a verdict on whether this particular site can realistically reach it. The verdict is measured against the difficulty of keywords the site already ranks for, not a universal threshold.
| Argument | Type | Description |
|---|---|---|
| site* | string | Search Console property |
| keywords* | array | Up to 100 keywords |
{
"type": "object",
"required": [
"site",
"keywords"
],
"properties": {
"site": {
"type": "string",
"description": "Search Console property"
},
"keywords": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 100 keywords"
}
}
}Which of your pages are dead, why, and which to fix first. Splits pages into no_demand, title_not_earning and ranking_too_low, then orders the fix list by recoverable clicks using the site's own click-through curve rather than borrowed industry averages.
| Argument | Type | Description |
|---|---|---|
| days | number | Lookback window, 7 to 180. Defaults to 90. |
| site* | string | Search Console property |
{
"type": "object",
"required": [
"site"
],
"properties": {
"days": {
"type": "number",
"description": "Lookback window, 7 to 180. Defaults to 90."
},
"site": {
"type": "string",
"description": "Search Console property"
}
}
}Which queries are one step away, and which were never yours. Returns queries stuck at ranks 11-20 with real volume, queries you rank well for but nobody clicks (intent mismatch), and queries several of your pages compete for without earning clicks.
| Argument | Type | Description |
|---|---|---|
| days | number | Lookback window, 7 to 180 |
| site* | string | Search Console property |
{
"type": "object",
"required": [
"site"
],
"properties": {
"days": {
"type": "number",
"description": "Lookback window, 7 to 180"
},
"site": {
"type": "string",
"description": "Search Console property"
}
}
}For queries you name: who is on the results page, where you sit among them, and which domains are consistently above you.
| Argument | Type | Description |
|---|---|---|
| site* | string | Search Console property |
| keywords* | array | Up to 10 queries |
{
"type": "object",
"required": [
"site",
"keywords"
],
"properties": {
"site": {
"type": "string",
"description": "Search Console property"
},
"keywords": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 10 queries"
}
}
}