Rank
Rank by Ouroboros: Google Search Console insights for AI assistants, over MCP.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"rank": {
"url": "https://rank-mcp.vercel.app/mcp"
}
}
}Remote endpoints
https://rank-mcp.vercel.app/mcpstreamable-httphttps://rank.ouroborosapps.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢list_properties
List the Search Console properties on the connected Google account. Returns siteUrl and permissionLevel exactly as the sites.list API returned them.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢top_queries(siteUrl, startDate, endDate, country, device, ...)
Top search queries for one property and date range. clicks, impressions, ctr, and position are copied from Search Console. ctr is a fraction from 0 to 1, not a percent. Omit dates to use the default 28-day window.
Input Schema
{
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"$ref": "#/properties/startDate"
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"device": {
"type": "string",
"enum": [
"DESKTOP",
"MOBILE",
"TABLET"
]
},
"searchType": {
"type": "string",
"enum": [
"web",
"image",
"video",
"news",
"discover",
"googleNews"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 250
}
},
"required": [
"siteUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢top_pages(siteUrl, startDate, endDate, country, device, ...)
Top pages for one property and date range. Metrics are copied from Search Console rows. ctr is the API fraction from 0 to 1. Omit dates to use the default 28-day window.
Input Schema
{
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"$ref": "#/properties/startDate"
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"device": {
"type": "string",
"enum": [
"DESKTOP",
"MOBILE",
"TABLET"
]
},
"searchType": {
"type": "string",
"enum": [
"web",
"image",
"video",
"news",
"discover",
"googleNews"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 250
}
},
"required": [
"siteUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢performance_trends(siteUrl, startDate, endDate, country, device, ...)
Daily clicks, impressions, ctr, and position for a property. Each row is a date Search Console returned. Missing dates are not filled in, and ctr is the API fraction.
Input Schema
{
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"$ref": "#/properties/startDate"
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"device": {
"type": "string",
"enum": [
"DESKTOP",
"MOBILE",
"TABLET"
]
},
"searchType": {
"type": "string",
"enum": [
"web",
"image",
"video",
"news",
"discover",
"googleNews"
]
}
},
"required": [
"siteUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_periods(siteUrl, startDate, endDate, country, device, ...)
Compare two date ranges using the Search Console totals for a property (no dimension grouping). Reports both API metric objects. Differences are labeled as derived from those returned numbers. Omit compare dates to use the previous window of the same length.
Input Schema
{
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"$ref": "#/properties/startDate"
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"device": {
"type": "string",
"enum": [
"DESKTOP",
"MOBILE",
"TABLET"
]
},
"searchType": {
"type": "string",
"enum": [
"web",
"image",
"video",
"news",
"discover",
"googleNews"
]
},
"compareStartDate": {
"$ref": "#/properties/startDate"
},
"compareEndDate": {
"$ref": "#/properties/startDate"
}
},
"required": [
"siteUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢quick_wins(siteUrl, startDate, endDate, country, device, ...)
Queries with high impressions and low ctr in Search Console. Defaults are at least 100 impressions and ctr at or below 0.02 (the API fraction, so 0.02 is 2%). Does not estimate missed clicks.
Input Schema
{
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"$ref": "#/properties/startDate"
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"device": {
"type": "string",
"enum": [
"DESKTOP",
"MOBILE",
"TABLET"
]
},
"searchType": {
"type": "string",
"enum": [
"web",
"image",
"video",
"news",
"discover",
"googleNews"
]
},
"minImpressions": {
"type": "number",
"minimum": 0
},
"maxCtr": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"siteUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢dropped_pages(siteUrl, startDate, endDate, country, device, ...)
Pages whose Search Console position got worse, whose clicks fell, or that disappeared from the current response. Does not invent zeros for pages the current response omitted.
Input Schema
{
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"$ref": "#/properties/startDate"
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"device": {
"type": "string",
"enum": [
"DESKTOP",
"MOBILE",
"TABLET"
]
},
"searchType": {
"type": "string",
"enum": [
"web",
"image",
"video",
"news",
"discover",
"googleNews"
]
},
"compareStartDate": {
"$ref": "#/properties/startDate"
},
"compareEndDate": {
"$ref": "#/properties/startDate"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"siteUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢inspect_url(siteUrl, inspectionUrl, languageCode)
URL Inspection status for one URL on a property you can access. Returns the Search Console inspection response, including verdict, coverage, and last crawl fields when the API sent them.
Input Schema
{
"type": "object",
"properties": {
"siteUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"inspectionUrl": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"languageCode": {
"type": "string",
"maxLength": 35
}
},
"required": [
"siteUrl",
"inspectionUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢account_status
Whether Google Search Console is connected, when the 14-day trial ends, and whether Pro access is active. Does not query Search Console and does not include a price.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"data": {}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence