Ranksmile
Server Details
AI visibility, Google rankings, Search Console and site audit data for your SEO agent.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Score is being calculated.
Available Tools
16 toolsactions__getOne actionRead-onlyIdempotentInspect
One action of this workspace with what the user sees: overview, why (with its numbers), steps and which are done, the evidence read on the pages, the pages and prompts involved, the competitor pages behind it, and the content brief for owned actions.
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes | From actions__list. | |
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| why | No | |
| goal | Yes | |
| brief | No | |
| pages | No | |
| steps | Yes | |
| title | Yes | |
| impact | No | |
| status | Yes | |
| prompts | No | |
| surface | No | |
| evidence | No | |
| overview | Yes | |
| competitor_evidence | No |
actions__listActionsRead-onlyIdempotentInspect
Recommended actions for this workspace, highest impact first: goal site (fix the site), owned (write or improve a page), earned (get onto an outside page: surface editorial, ugc or reference) or claims (correct what answers say). Each with impact (1-5), status (new, in_progress, done, declined), topic and steps done. actions__get has the details.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | ||
| limit | No | Max rows, 1-100 (default 20). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| status | No | ||
| surface | No | ||
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| counts | Yes | by_goal and by_status, over all actions of the site. |
| domain | Yes | |
| actions | Yes | id, goal, surface, kind, platform, page_type, status, impact, title, topic, models, steps, steps_done, created_at, done_at. |
| has_more | Yes | |
| workspace_id | Yes |
article__getGet articleRead-onlyIdempotentInspect
Get one article: metadata, stored scores, and (optionally) the HTML body. Read the body when judging writing quality; skip it when you only need numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes | ||
| content_offset | No | Start the body at this character (default 0); read on while content_truncated is true. | |
| include_content | No | Include the HTML body (default true). | |
| max_content_chars | No | Body characters per call (default 20000, max 50000). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| slug | No | |
| title | No | |
| status | No | |
| language | No | |
| meta_title | No | |
| updated_at | No | |
| word_count | No | |
| content_html | No | |
| published_at | No | |
| content_score | No | |
| ranking_score | No | |
| content_length | Yes | |
| target_keyword | No | |
| meta_description | No | |
| content_truncated | No |
article__jobsGeneration jobsRead-onlyIdempotentInspect
The most recent analysis / generation jobs for an article, with status, payload and result. Use this when generated content looks wrong: it shows what the generator was told and what it returned. Payloads and results over 4000 characters are cut to a prefix.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-100 (default 5). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| article_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | |
| has_more | Yes | |
| article_id | Yes |
article__listList articlesRead-onlyIdempotentInspect
List articles with their stored scores and word counts. Filter by workspace_id or status. Use this first to find the article ids the other tools take.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-100 (default 20). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| status | No | Exact status filter, e.g. "draft" or "published". | |
| workspace_id | No | Restrict to one workspace (default: all accessible). |
Output Schema
| Name | Required | Description |
|---|---|---|
| articles | Yes | |
| has_more | Yes |
article__optimize_logAuto-Optimize historyRead-onlyIdempotentInspect
The Auto-Optimize / publish history for an article: before and after score, before and after length, and the run metadata (mode, phase, rejection reason). Use this when Auto-Optimize appears to change nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-100 (default 10). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| article_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| runs | Yes | |
| has_more | Yes | |
| article_id | Yes |
article__scoreExplain article scoreRead-onlyIdempotentInspect
Explain an article's content score: the per-slot breakdown, word/heading/paragraph counts against their competitor-derived targets, and every NLP term with its current vs. required usage. This is the tool that says WHY a generated article scores badly.
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| score | Yes | computed = the SEO score of the current HTML: the sum of the six v7 components, rounded up, out of 100; overall = SEO and AI blended, which is what stored (articles.content_score) holds; model = the formula behind computed. |
| terms | No | Each NLP term: missing (0 uses), low (under target), overuse (past the competitors' range) or ok. |
| counts | Yes | Actual document counts against the competitor-derived targets. |
| breakdown | Yes | Per-slot points earned vs. available, with the hint explaining the gap. |
| article_id | Yes | |
| terms_missing | Yes | |
| target_keyword | No |
audit__overviewSite auditRead-onlyIdempotentInspect
The last site crawl for this workspace: site health and AI-search health (0-100), pages crawled, error and warning counts, and each issue with how many pages it affects, most severe first. Reads the stored crawl; starts nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-100 (default 20). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| errors | No | |
| issues | Yes | id, title, severity (error|warning|notice), count (pages affected), ai_search. |
| has_data | Yes | |
| has_more | Yes | |
| warnings | No | |
| updated_at | No | |
| site_health | No | |
| workspace_id | Yes | |
| pages_crawled | No | |
| pages_by_status | No | Crawled pages per bucket: healthy, broken (no answer or 4xx/5xx), haveIssues, redirects, blocked. |
| ai_search_health | No |
gsc__performanceSearch Console performanceRead-onlyIdempotentInspect
The last 30 days of Google Search Console for this workspace's site: clicks, impressions, CTR (%) and average position per query or per page, most clicks first. Pages or queries with many impressions at position 8-20 are the quickest wins.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-100 (default 50). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| group_by | No | Default query. | |
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | key (query or page path), clicks, impressions, ctr (%), position. |
| domain | Yes | |
| totals | Yes | |
| group_by | No | |
| has_more | Yes | |
| connected | Yes | |
| last_fetched | No | |
| workspace_id | Yes | |
| last_fetch_error | No |
rank__keywordsTracked keyword positionsRead-onlyIdempotentInspect
Google positions of the keywords this workspace tracks (checked daily): current position (null = not in the checked results), best position ever found, the ranking URL and search volume.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-100 (default 50). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| has_more | Yes | |
| keywords | Yes | |
| workspace_id | Yes |
visibility__overviewAI visibilityRead-onlyIdempotentInspect
How often AI answers (ChatGPT, Perplexity, Gemini, Google AI) name this workspace's brand in the latest scan: the brand score, the brands named instead, the score per topic, the trend over the last scans, and every tracked prompt with its intent, tags, per-engine score and mention rate, least-mentioned first. The prompts at 0 are the gaps content can close; visibility__prompt shows why one is lost. The site-wide parts (overview, competitors, topics, history, scans_total, unanswered_prompts) come on the first page only; later pages carry the next prompts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-100 (default 20). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| brand | Yes | |
| domain | Yes | |
| topics | No | First page only. Per topic, weakest first: topic, prompts, mention_rate, previous_mention_rate (the scan before; null when none or not asked then), visibility_score. |
| history | No | First page only. Last completed scans, oldest first: scan_id, finished_at, visibility_score, mention_rate (null while a scan is still extracting brands). |
| prompts | Yes | Tracked prompts, least-mentioned first: prompt_id, topic, intent (informational|commercial|transactional|null), tags, text, mention_rate, previous_mention_rate (the scan before; null when none or not asked then), avg_position, per_model (model, score), brands_named. |
| has_more | Yes | |
| overview | No | First page only. visibility_score (0-100), mention_rate (% of answers naming the brand), avg_position, per_model. Null before the first scan. |
| competitors | No | First page only. Brands the answers name in at least two answers, plus every competitor the user tracks (listed first, tracked: true): brand, domain, mention_rate, avg_position, visibility_score, tracked. |
| scans_total | No | First page only. Completed scans of this site so far. |
| workspace_id | Yes | |
| scan_finished_at | No | |
| unanswered_prompts | No | First page only. Prompts every engine failed to answer in this scan, so they have no rate: prompt_id, topic, text. visibility__prompt shows the errors. |
visibility__promptAI visibility of one promptRead-onlyIdempotentInspect
One tracked prompt in the latest scan: each engine's answer, the brands it names (with sentiment and quotes), the pages it cites, the sub-queries the engine searched (fan-out), and the stored "how to get cited" advice. Use it to see why a prompt is lost, which pages to get onto, and how buyers phrase the question.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt_id | Yes | From visibility__overview. | |
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tags | No | |
| text | Yes | |
| topic | No | |
| advice | Yes | summary, article_keyword, scan_finished_at (the scan it was made for: it can be older than the answers), actions (title, detail, type, target). Null when none was made for this prompt. |
| intent | No | |
| answers | Yes | Per engine: model, status (answered|refused|error), answer (first 6000 chars), answer_truncated, own_cited, own_position, brands_analyzed (false while brands are still being read from it, so brands [] means not read yet), brands (brand, domain, sentiment, quotes), citations (url, domain, title), fan_out_queries. |
| prompt_id | Yes | |
| workspace_id | Yes | |
| scan_finished_at | No |
visibility__sourcesPages AI answers citeRead-onlyIdempotentInspect
The pages (by: "url") or sites (by: "domain") the latest scan's AI answers cite, most cited first, each with its type (UGC, Editorial, Reference, Institutional, Corporate, Competitor, You, Other). Per page: whether the answers citing it name the brand, whether the page itself does, and the brands named instead. gap: true marks pages that help competitors and not the brand: Editorial ones are outreach targets, UGC ones community threads, Competitor ones show what to out-write.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | Default url. | |
| limit | No | Max rows, 1-100 (default 25). | |
| offset | No | Rows to skip (default 0). Keep paging while has_more is true. | |
| gap_only | No | Pages only: keep the gap pages. Default false. | |
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| by | Yes | |
| rows | Yes | url: url, domain, type, title (the page's own once read, else the one the answer gave), http_status, times_cited, models, answer_names_brand, page_names_brand (null until read), brands_named, gap. domain: domain, type, used (% of answers citing it), citations. |
| domain | Yes | |
| has_more | Yes | |
| type_shares | Yes | Each type's share (%) of all citations: type, share, citations. |
| workspace_id | Yes | |
| distinct_domains | Yes | Distinct sites cited: under 5 is a narrow source base. |
| scan_finished_at | No |
workspace__get_contextGet workspace contextRead-onlyIdempotentInspect
What Ranksmile knows about a workspace: the brand name and notes the editor writes from, the voices, the competitors found in search, and the research log (the newest 20 entries of the last 90 days, with age_days). Call it before SEO work. Before paying for research, reuse a log entry under 30 days old. missing lists what is still empty.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| voices | No | |
| missing | Yes | |
| brand_name | No | |
| competitors | No | Domains competing in search: domain, appearances, avg_position. |
| research_log | Yes | The newest 20 entries of the last 90 days, newest first: id, summary, author, created_at, age_days. |
| workspace_id | Yes | |
| brand_knowledge | Yes |
workspace__listList workspacesRead-onlyIdempotentInspect
List the Ranksmile workspaces the connected account can access, with their primary domain.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| workspaces | Yes |
workspace__update_contextUpdate workspace contextDestructiveInspect
Save what you learned so the editor and other agents use it. Ops apply in order; if one is invalid, none is applied. To ADD a fact to the brand notes use {"append_brand_knowledge": "..."}: it keeps everything already there. {"brand_knowledge": "..."} REPLACES the whole notes ("" clears them): use it only to rewrite or shorten, after reading them with workspace__get_context. The notes hold at most 4000 characters. {"append_research_log": ": . Verdict: "} records research you did (max 500 chars). Confirm facts with the user before storing them. Returns the updated context.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | ||
| workspace_id | Yes | From workspace__list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| voices | No | |
| missing | Yes | |
| brand_name | No | |
| competitors | No | Domains competing in search: domain, appearances, avg_position. |
| research_log | Yes | The newest 20 entries of the last 90 days, newest first: id, summary, author, created_at, age_days. |
| workspace_id | Yes | |
| brand_knowledge | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
- First observed
actions__get - First observed
actions__list - First observed
article__get - First observed
article__jobs - First observed
article__list - First observed
article__optimize_log - First observed
article__score - First observed
audit__overview - First observed
gsc__performance - First observed
rank__keywords - First observed
visibility__overview - First observed
visibility__prompt - First observed
visibility__sources - First observed
workspace__get_context - First observed
workspace__list - First observed
workspace__update_context
Related MCP Connectors
- VouchedOAuthcom.vouchedhq
SEO data your AI can cite: Search Console, GA4, keywords, backlinks, SERPs and AI visibility.
SEO data for AI agents: Google SERP, keyword research, backlinks, site audits, AI answer visibility.
Live SEO intelligence, rank tracking, site audits, and backlink analysis for AI agents.
Rankings, Search Console, technical SEO, content and AI-search scores, and lead data for your sites.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to access self-hosted SEO data and workflows, including keyword research, rank tracking, competitor insights, backlinks, site audits, and AI visibility.MIT
- AlicenseAqualityBmaintenanceAI visibility and SEO data for AI agents. Check whether ChatGPT, Claude, Perplexity and Gemini mention your brand and which sources they cite, plus keyword volume and Google Trends.29258 npmMIT
- AlicenseAqualityAmaintenanceProvides AI-visibility scoring and site auditing capabilities for websites, enabling agents to check how sites appear in AI engines like ChatGPT and Perplexity, run full SEO/security audits, and monitor changes over time.15107 npm1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to run SEO audits and reporting over a user's own Search Console, Google Analytics, Bing, and keyword/competitor provider data, including page/index status, traffic comparisons, backlinks, and local crawl/internal-link analysis.1,975 npm585Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.