Rank

Rank by Ouroboros: Google Search Console insights for AI assistants, over MCP.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
66%
Naming quality
84%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,137Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (1.67% of 128k context)

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-http
https://rank.ouroborosapps.com/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools