MCP SERVER

Rutt for AI coding assistants

The official Model Context Protocol server. Give Claude Code, Cursor, Windsurf, or any MCP-aware tool full read access to your AI visibility, bot traffic, rankings, and brand context.

Endpoint https://rutt.io/api/mcp

What is the Rutt MCP server?

Model Context Protocol is an open standard for connecting AI assistants to external systems. The Rutt MCP server is hosted at https://rutt.io/api/mcp — nothing to install. Point your assistant at the URL with your API key and you get 40 tools and 4 reference resources.

Once connected, your assistant can answer questions like:

  • “How is acme.com performing on ChatGPT vs Claude this month?”
  • “Which tracked keywords lost rank this week?”
  • “What prompts do our competitors win where we lose?”
  • “What does this brand sound like — write the blog post in that voice.”

Every tool response includes unit hints, a one-sentence interpretation, and suggested next tool calls — so the assistant never has to guess what the data means.

Connect

First, create an API key at /integrations/api-keys. Keep it scoped to read unless you specifically want the assistant to write data back.

Then point your assistant at:

https://rutt.io/api/mcp — Authorization: Bearer rutt_xxx

Claude Code

One command:

claude mcp add --transport http rutt https://rutt.io/api/mcp \
  --header "Authorization: Bearer rutt_your_api_key_here"

Cursor

Edit ~/.cursor/mcp.json (or the project-local .cursor/mcp.json):

{
  "mcpServers": {
    "rutt": {
      "url": "https://rutt.io/api/mcp",
      "headers": {
        "Authorization": "Bearer rutt_your_api_key_here"
      }
    }
  }
}

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "rutt": {
      "serverUrl": "https://rutt.io/api/mcp",
      "headers": {
        "Authorization": "Bearer rutt_your_api_key_here"
      }
    }
  }
}

Claude.ai & ChatGPT

Claude.ai and ChatGPT's connector UIs currently expect OAuth, which Rutt doesn't implement yet. Until they do, pass your API key as a query parameter and skip the auth step. Open Settings → Connectors → Add custom connector and paste:

https://rutt.io/api/mcp?api_key=rutt_your_api_key_here

Leave OAuth Client ID and Client Secret blank.

Security note: An API key in a URL is more exposed than one in a header — it can appear in browser history, server logs, and Claude.ai's analytics. For this connector, create a dedicated read-only key, name it “Claude.ai connector” or similar at /integrations/api-keys, and revoke it the moment you stop using it. Don’t paste the URL in public chat logs or screenshots.

Test it: curl -X POST https://rutt.io/api/mcp -H "Authorization: Bearer rutt_xxx" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools

44 tools across 10 product areas. All read-only except where marked write.

Sites

Tool Description
rutt_list_sites List all sites in the team.
rutt_get_site Full site detail including brand profile and crawl config.
rutt_get_site_summary One-call dashboard snapshot: visibility, bots, rankings, open actions. Best first call.

Brand & Voice

Tool Description
rutt_get_brand_profile Industry, tone, target audience, key products, guidelines. Call before generating content.
rutt_list_site_pages Crawled pages with SEO scores and context flags.
rutt_get_page_seo_report Detailed SEO audit for one page.

AI Visibility

Tool Description
rutt_get_visibility_overview Per-model scores, mention rates, top competitors, top cited sources.
rutt_get_visibility_trend Daily visibility score series; optional model filter.
rutt_list_monitoring_prompts Prompts being checked across AI models.
rutt_get_monitoring_prompt Single prompt with recent mention/recommendation rates.
rutt_get_prompt_results Individual check results for one prompt.
rutt_get_prompt_result_detail Full AI response text for one check.
rutt_add_monitoring_prompt write Create a new monitoring prompt.

Bot Analytics

Tool Description
rutt_get_bot_traffic Human vs AI vs search vs other bot totals + AI share %.
rutt_get_traffic_by_crawler Per-crawler breakdown with intent (training / user_action / search).
rutt_get_top_crawled_pages URLs AI crawlers hit most. Filter by bot.
rutt_get_ai_referrers Hosts sending traffic — spots ChatGPT/Perplexity referrals.
rutt_get_traffic_breakdown Pageview breakdown by visitor type.

Rank Tracker

Tool Description
rutt_list_tracked_keywords Keywords with latest SERP position + AI Overview flag.
rutt_get_keyword One keyword with latest rank data.
rutt_get_keyword_rank_history Daily rank history for a keyword.
rutt_get_rank_movers Biggest gainers and losers over the window.
rutt_get_ai_overview_keywords Keywords where Google AI Overview triggered + cited sources.
rutt_add_tracked_keyword write Track a new keyword.

Keyword Research

Tool Description
rutt_get_keyword_metrics Bulk volume/KD/CPC/intent for any keyword list (up to 700). Doesn't require tracking.
rutt_research_keywords write Run keyword research from a seed term. Persists to the team — appears in /keywords. Async.
rutt_get_keyword_research Poll for the completed result of a research run.
rutt_list_keyword_research Past keyword research runs for a site.

Competitors / SEO Rivals

Tool Description
rutt_list_competitors Competitors with DR, backlinks, organic traffic.
rutt_get_competitor Single competitor with SEO metrics.
rutt_get_competitor_pages Discovered pages for a competitor.
rutt_analyze_domain write Analyze any domain — DR, backlinks, traffic. Auto-adds it as a tracked competitor. Async.
rutt_get_visibility_gap Prompts where competitors win and we don't. High-signal for content strategy.
rutt_list_fanout_queries Sub-questions LLMs derive from monitoring prompts.

Weekly Plan

Tool Description
rutt_get_current_weekly_plan This week's AI-generated day-by-day action plan.
rutt_list_weekly_plans Past weekly plans.
rutt_get_weekly_plan_items Items for a specific plan.
rutt_mark_action_complete write Mark a plan item complete.

Reports

Tool Description
rutt_list_reports Generated reports for a site.
rutt_get_report Report metadata + public share URL.

Reference / discovery

Tool Description
rutt_get_reference_models AI models Rutt monitors.
rutt_get_reference_countries Allowed monitoring countries (plan-gated).
rutt_get_reference_crawlers Known crawler signatures + intent.
rutt_get_glossary Definitions for Rutt-specific terms. Call once at session start.
rutt_get_plan_limits Current team's plan and feature limits.

Resources

In addition to tools, the server exposes resources — URI-addressable reference data your assistant can auto-load at session start:

URI Contents
rutt://glossaryRutt-specific terminology so the assistant interprets data correctly.
rutt://modelsAI models monitored (chatgpt, claude, gemini, perplexity).
rutt://crawlersKnown bot signatures with company + intent (training / user_action / search).
rutt://plan-limitsCurrent team's plan and feature limits.

The AI envelope

Every tool result is wrapped in an envelope that makes the data self-describing. The same envelope is available on the plain REST API by adding ?ai=1 or the header Accept: application/vnd.rutt.ai+json.

{
  "data": { ... },
  "meta": {
    "window": { "start": "2026-04-12", "end": "2026-05-12", "label": "last 30 days" },
    "site": { "id": 12, "domain": "acme.com" },
    "unit_hints": {
      "score": "0-100, % of monitored prompts where this site appeared in AI answers"
    }
  },
  "interpretation": "Strongest on ChatGPT (71/100), weakest on Claude (58/100). Top competitor mentioned: Notion.",
  "next_actions": [
    {
      "tool": "rutt_get_visibility_gap",
      "args": { "site_id": 12 },
      "why": "Find prompts where competitors win"
    }
  ]
}

unit_hints describe what each metric means and its range, so the LLM never has to guess. interpretation is a one-sentence natural-language summary generated server-side from the same data. next_actions suggest follow-up tool calls so the assistant can chain without re-asking the user.