RankCanon
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RankCanonWhat Google updates hit between March and May 2024?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Full-text search (SQLite FTS5) with snippet, URL and last-changed date |
| Full stored text of a page |
| Google updates overlapping a date range, to correlate traffic drops |
| 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 stdioDatabase location: ~/.local/share/rankcanon/rankcanon.db (override with RANKCANON_DB).
Claude Code
claude mcp add rankcanon -- uv --directory /path/to/rankcanon run rankcanonRun rankcanon-sync on a schedule (e.g. daily cron) to keep the corpus fresh.
License
MIT
Available Tools
4 toolsalgorithm_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.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_chars | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v0.1.0- First observed
algorithm_updates - First observed
corpus_status - First observed
get_doc - First observed
search_docs
TDQS
Scored across 4 tools
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.
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.
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.
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
Related MCP Connectors
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
SEO data for AI agents: Google SERP, keyword research, backlinks, site audits, AI answer visibility.
- VouchedOAuthcom.vouchedhq
SEO data your AI can cite: Search Console, GA4, keywords, backlinks, SERPs and AI visibility.
SEO answers for AI agents: Search Console reads free, plus competitor, keyword, backlink, SERP data.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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 npmISC
- AlicenseAqualityAmaintenanceProvides 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.4175 npm9MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform SEO searches and retrieve SEO intelligence data via the Model Context Protocol.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to access Google Search Console search performance and index health data, including clicks, impressions, rankings, URL inspection, and sitemap management.9 npmMIT