Skip to main content
Glama

RankCanon

MCP server that gives AI agents fresh, cited SEO knowledge from primary sources instead of stale training data and SEO-blog myths.

Sources (v0.1)

  • Google Search Central documentation (developers.google.com/search/docs)

  • Google Search Status Dashboard — core, spam and other ranking updates with dates

Planned: schema.org / structured data requirements, web.dev (Core Web Vitals), Bing, Yandex, doc change diffs, semantic search, project-specific knowledge.

Related MCP server: Google Search Console MCP Server

Tools

Tool

Purpose

search_docs(query, limit, source)

Full-text search (SQLite FTS5) with snippet, URL and last-changed date

get_doc(url)

Full stored text of a page

algorithm_updates(date_from, date_to)

Google updates overlapping a date range, to correlate traffic drops

corpus_status()

What is indexed and how fresh it is

Quick start

uv sync
uv run rankcanon-sync                 # fetch sources (use --max-pages N, --source docs|status)
uv run rankcanon                      # run MCP server over stdio

Database location: ~/.local/share/rankcanon/rankcanon.db (override with RANKCANON_DB).

Claude Code

claude mcp add rankcanon -- uv --directory /path/to/rankcanon run rankcanon

Run rankcanon-sync on a schedule (e.g. daily cron) to keep the corpus fresh.

License

MIT

Available Tools

4 tools
algorithm_updatesA

Google Search ranking/spam updates from the Search Status Dashboard.

Dates are ISO (YYYY-MM-DD). An update matches if it overlaps the range. Use this to correlate traffic drops with known Google updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNo
date_fromNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the non-obvious matching rule ('An update matches if it overlaps the range') and the ISO date format, but says nothing about read-only nature, ordering, pagination limits, or what happens when no dates are supplied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short lines, front-loaded with what the tool is, then format, then matching semantics, then the use case. No filler sentences and no repetition of schema or title content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. For a two-optional-parameter read tool the description covers format and overlap semantics adequately; only the behavior when one or both dates are omitted is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two unlabeled date parameters, so the description must compensate. It does add the ISO (YYYY-MM-DD) format and the overlap matching semantics, which genuinely clarifies how date_from/date_to are interpreted, but it never maps each parameter to its role or states that both are optional/defaulted to null.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('Google Search ranking/spam updates from the Search Status Dashboard'), which unambiguously separates it from the doc-oriented siblings (get_doc, search_docs, corpus_status). It is clear what the tool returns, though it never explicitly frames the verb ('fetch/list') in the first line.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to correlate traffic drops with known Google updates' gives a concrete use case and implicitly the context that selects this tool over the documentation siblings. There is no statement of when *not* to use it or of an alternative, so it stops short of a top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

corpus_statusB

Show what is indexed and how fresh it is.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits. 'Show' implies a read-only operation and it names the two pieces of information returned (indexed content and freshness), but it omits any mention of permissions, side effects, or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded, waste-free, and directly conveys the tool's output. It is appropriately sized for a zero-parameter status tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-param, no-output-schema status tool, the description gives a basic idea of what is returned, but it is too thin to fully compensate for missing annotations and return-value details. An agent would still have questions about freshness format and whether any permissions are required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The description does not need to document any input semantics, and the schema is trivially empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('show') and resource ('what is indexed and how fresh it is'), so an agent knows it retrieves corpus status rather than documents. It does not distinguish itself from siblings like search_docs or algorithm_updates, leaving ambiguity about when it is the right status check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as get_doc, search_docs, or algorithm_updates. The description only says what it shows, not the conditions or contexts that call for it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_docC

Return the full stored text of a documentation page by url.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
max_charsNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It says the text is 'full' and 'stored' but does not disclose what happens when max_chars truncates the content, whether the page must already be indexed (corpus_status/search_docs siblings imply a corpus), or any auth/error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. The core action and the key parameter are stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter read tool with no output schema and no annotations, the description covers the return type (full text) but omits truncation semantics and the relationship to the sibling corpus/search tools. It is adequate but leaves real gaps an agent would hit at call time.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It implies url identifies the page, but says nothing about the max_chars parameter, its default of 20000, or whether truncation is silent — half the parameters are effectively undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (return the full stored text of a documentation page) and the lookup key (by url). It is clear what the tool fetches, but it never contrasts itself with the sibling search_docs, so an agent must infer the split between search and fetch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no reference to the sibling search_docs, which is the obvious alternative for discovery. The agent gets no routing signal beyond the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsB

Full-text search over official SEO documentation (Google Search Central).

Returns url, title, snippet, and changed_at (last time content changed) for citation.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
sourceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the returned shape and clarifies changed_at ('last time content changed'), which is useful, but says nothing about read-only safety, ranking/freshness behavior, or retrieval limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and then the return contract. No filler, though the parenthetical branding adds little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so explaining return values is a bonus rather than a requirement. The gap is the input side: with 0% schema coverage and no annotation hints, an agent has no guidance on limit semantics or valid source values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for 3 parameters, so the description must compensate and does not. 'query', 'limit', and especially 'source' (what sources are valid?) are never explained anywhere, leaving the agent guessing on how to scope the search.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('full-text search over official SEO documentation') and even narrows the corpus to Google Search Central. It does not differentiate from siblings like get_doc, but an agent can tell what it does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: this is the discovery step whose results ('for citation') feed later retrieval. However, no explicit when-to-use vs get_doc or algorithm_updates is given, so the agent must infer the search-then-fetch workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedalgorithm_updates
    • First observedcorpus_status
    • First observedget_doc
    • First observedsearch_docs

TDQS

A3.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct role: search_docs and get_doc separate search from retrieval by URL, algorithm_updates is purpose-built for update lookups, and corpus_status provides index metadata. No overlap in functionality; an agent can easily choose the right tool.

Naming Consistency3/5

Names use snake_case consistently, but the pattern is mixed: get_doc and search_docs follow verb_noun, while algorithm_updates and corpus_status are noun phrases. The inconsistency is not severe but breaks a predictable action-oriented convention.

Tool Count5/5

Four tools cover the essential operations for an SEO documentation and algorithm update server: search, retrieval, update access, and corpus status. The set is tightly scoped with no redundant tools, and the count is well within the typical 3–15 range.

Completeness4/5

The surface covers search, retrieval, algorithm updates, and index status, which are the core needs. Minor gaps exist, such as no list-all-documents tool or per-update detail endpoint, but these can be worked around via search and the update list.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to manage Google Tag Manager, Google Search Console, and Google Analytics (GA4) through unified access to tags, search performance data, URL inspection, sitemaps, and analytics reporting.
    5 npm
    ISC
  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with read-only access to Google Search Console data, including search analytics, index coverage, and sitemap status. It enables users to query clicks, impressions, and ranking performance or check URL indexing status through natural language.
    4
    175 npm
    9
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to perform SEO searches and retrieve SEO intelligence data via the Model Context Protocol.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to access Google Search Console search performance and index health data, including clicks, impressions, rankings, URL inspection, and sitemap management.
    9 npm
    MIT