v1.0.0
OpenAPI 3.2.0

Keyword.com MCP Server

MCP Server

The Keyword.com MCP server connects any MCP-compatible AI assistant — ChatGPT (via the Keyword.com app), Claude Code, Codex, Cursor, and any other MCP-compatible client — directly to your Keyword.com data. Ask questions in plain language; your assistant fetches the data, analyzes it, and responds.

What you can do

Use it to:

  • Track Google rankings, history, and Share of Voice movement
  • Surface anomalies, recent gainers / losers, and at-risk keywords
  • Investigate top-ranking pages, search intents, and SERP features
  • Mine competitor keywords and rank distributions
  • Monitor AI Visibility across LLM engines (ChatGPT, Perplexity, Gemini, AI Overviews) — citations, sentiment, mentions
  • Add, update, refresh, and delete keywords in bulk
  • Manage projects, groups, tags, and share-link settings

Example prompts:

  • "How are my keywords trending this week?"
  • "Which competitors gained share of voice in the last 90 days?"
  • "Which keywords had unusual rank movement in the last 7 days?"
  • "How visible is keyword.com across ChatGPT and Perplexity this month?"
  • "Add these 50 keywords to my Acme project, US mobile."

How it works

The MCP exposes 67 tools to your AI assistant. When you ask a question, the assistant picks the right tool(s), the MCP fetches the data from Keyword.com, and the assistant frames the answer. Read tools run silently; write tools prompt you for approval before firing.

Connection details

  • Server URL: https://app.keyword.com/mcp (hosted by Keyword.com)
  • Transport: Streamable HTTP
  • Authentication: OAuth 2.0 (browser consent)
  • Tools: 67 — covering SERP rank tracking, AI Visibility, keyword research, tag management, alerts, Google Places lookups, sharing-link admin, and feedback

No binary to install or update. The MCP server is operated by Keyword.com.

Authentication

OAuth 2.0. The first tool call opens a browser to a Keyword.com consent page. After approval, a short-lived token is stored in your AI client and auto-refreshes. No API keys to copy or paste.

Read and write access

Write tools require approval per call from your AI client before they run. Destructive operations (delete_project, delete_keywords) cannot be undone via the MCP — review the plan before approving. archive_project is reversible via restore_project and is the safer alternative when the user wants to pause tracking.

Keyword.com sees the same scope of data your account has access to. We never see, log, or train on the prompts you send to your AI assistant; we only see the tool calls and respond with the requested data.

Supported platforms

ChatGPT (via the Keyword.com app, available in the ChatGPT apps directory), Claude Code (CLI), Codex, and Cursor. See Setup for the ChatGPT app and per-client install snippets. Any other MCP-compatible client can connect by pointing at the server URL with OAuth.

Requirements

An active Keyword.com account. The MCP is included with every plan, including the 14-day free trial.

Support

Email support@keyword.com. For programmatic access without an AI client, see the REST API reference.

Setup

The Keyword.com MCP is hosted — there's nothing to install locally. Point your AI client at the server URL and OAuth handles the rest on first use. Total setup time: under two minutes.

ChatGPT (app)

The easiest path. The Keyword.com app is live in the ChatGPT apps directory — no server URL, no config, no terminal. In ChatGPT, open the apps directory, search "Keyword.com", and enable the app. Sign in to authorize it once, then ask ChatGPT about your rankings, Share of Voice, and AI Visibility in plain language.

For the developer clients below (Claude Code, Codex, Cursor), connect to the hosted MCP endpoint directly.

Server URL

All platforms connect to the same hosted endpoint:

https://app.keyword.com/mcp

Claude Code

claude mcp add --transport http keyword-com https://app.keyword.com/mcp

Run once in your terminal. The next time you start claude, it will open a browser for OAuth consent on the first tool call.

Codex

codex mcp add keyword --url https://app.keyword.com/mcp

Run once in your terminal. A browser will open for OAuth consent on the first tool call.

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "keyword-com": {
      "url": "https://app.keyword.com/mcp"
    }
  }
}

Restart Cursor. A browser will open for OAuth consent on the first tool call.

Use cases

Scope your prompts

You can ask across everything, or scope to a specific project, group, or tag — the AI assistant figures it out from your wording.

  • "Brief me on this week's wins." — across all projects
  • "Brief me on Acme this week." — just project Acme
  • "Brief me on Acme's branded keywords." — just the Branded group inside Acme
  • "Brief me on my aio-watch tagged keywords." — just that tag

💡 Tip: Add a timeframe to sharpen the answer — "since Monday", "year over year", "in Q1", or "vs. last month" all work.

Reporting

What moved this week?

"What are my biggest ranking wins and losses this week?"

Today's alerts

"Brief me on today's keyword alerts."

Diagnostics

Biggest ranking drops

"Which keywords dropped the most this week?"

Share of voice movement

"How has my share of voice changed in the last 30 days?"

Top-ranking pages

"Show me my top 10 ranking pages and the keywords they're winning."

Bulk operations

Add a keyword

"Track 'rank tracking software' for keyword.com on US mobile."

Refresh on demand

"Refresh all keyword rankings in my Acme project."

Local & account

Maps tracking

"Track 'plumber near me' on Google Maps for Acme Plumbing — Brooklyn."

Account usage

"How many keywords am I using of my plan?"

Tools

67 tools, grouped by purpose. Each tool's name is the literal value your AI passes to tools/call. Read tools run silently; write tools (marked write) prompt for OAuth-scoped consent on first use, and destructive ones should be confirmed with the user before firing.

Projects & groups

  • list_projects — Every project the user owns with keyword counts, tags, and nested subprojects. No parameters.
  • search_projects — Find projects by name with case-insensitive substring match.
  • get_project — Full project details, keyword counts, tags, branding, subprojects.
  • add_project — Create a new keyword-tracking project, idempotent by name. write.
  • create_group — Create a sub-project (group) under an existing parent project. write.
  • archive_project — Archive a project — pause tracking without losing history. write.
  • restore_project — Restore a previously archived project to active tracking. write.
  • delete_project — Permanently delete a project and all its keywords. write. Destructive.

Keywords

  • list_keywords — A project's keywords with rank, MSV, CPC, and change metrics. Sort by change_7d for gainers/losers.
  • search_keywords — Search the user's keywords across every project, by text + filters (rank, country, language, tags, URL).
  • get_keyword — One keyword's current rank, MSV, CPC, change, and lifecycle state.
  • add_keywords — Add tracked keywords to a project in bulk (up to 100 per call). write.
  • update_keywords — Bulk-update URL, region, language, type, and other attributes. Also accepts a tags: { attach: [...], detach: [...] } block for inline tag changes alongside attribute updates. write.
  • delete_keywords — Soft-delete tracked keywords by id (up to 1000 per call). write. Destructive.
  • move_keywords — Move keywords across projects in bulk. Tags clone by name into the destination project so each keyword stays tagged after the move. write.
  • refresh_individual_keywords — On-demand SERP refresh for specific keywords by id. write.
  • refresh_keywords_by_project — On-demand SERP refresh for every keyword in one or more projects. write.
  • export_keywords — Export keywords to a downloadable CSV — full account or one project. write.
  • suggest_missing_keywords — Surface terms a project's domain already gets impressions for in Google Search Console but isn't tracking yet. Filters out tracked + dismissed keywords; returns a friendly connect CTA if GSC isn't linked.

Tags

  • search_tags — Find tags by name within a single project.
  • create_tag — Create a tag in a project. Idempotent: re-creating an existing tag returns the existing id with created: false. write.
  • delete_tag — Delete a tag and its keyword pivots. write. Destructive.
  • attach_tag — Bulk-attach one or more tags to keywords. Accepts tag ids or tag names (missing names auto-create). write.
  • detach_tag — Bulk-detach tags from keywords. write.

Keyword analytics

  • get_keyword_history — One keyword's rank history over the last N days (up to 365).
  • get_keyword_metrics — Multi-timeframe rank-bucket movement for a single keyword (daily / weekly / monthly / semester / yearly / life).
  • get_keyword_competitors — Top competing domains for one keyword, with rank history.
  • get_serp — Daily SERP for one keyword (organic listings + rank) over a window.

Project & account performance

  • serp_account_summary — Cross-project keyword totals and rank-bucket distribution vs a baseline.
  • serp_account_performance — Per-project performance rollup vs a baseline date (paginated).
  • serp_account_top_positions — Per-project bucket counts (current / previous / start-of-period).
  • serp_project_performance — Project bucket comparison snapshot (Top 3 / 10 / 20 / 100) vs baseline.
  • serp_visibility — Daily visibility-score time series for a project.
  • serp_visibility_drivers — What drove visibility change — by keyword or by page.
  • serp_estimated_traffic — Daily estimated-traffic time series for a project.
  • serp_share_of_voice — Daily Share of Voice for the top-10 competitor domains.
  • serp_ranking_distribution_trend — Daily ranking-bucket distribution trend over a window.
  • serp_concentration — How much visibility or traffic comes from the top-N keywords.

Pages, intents, features

  • serp_top_pages — Top URLs in a project with deltas vs a baseline date.
  • serp_ranking_urls — Best-performing URLs snapshot — avg rank, MSV, CPC.
  • serp_emerging_pages — Pages whose first ranking appearance was in the last N days.
  • serp_search_intents — Keyword counts and estimated traffic per search-intent bucket.
  • serp_features — Featured Snippets, PAA, AI Overviews, and other SERP-feature counts.

Movement & alerts

  • serp_movers_window — Keywords entering / exiting top-N, consistent trends, recoveries, stagnation.
  • serp_anomalies — Detect unusual rank movement that crosses anomaly thresholds.
  • get_alerts — Account ranking alerts that crossed the user's thresholds.
  • update_alert_settings — Update the user's alert preferences — recipient emails, digest frequency, minimum rank-change threshold, and the exclude-off-the-radar flag. write.

Competitors & ideation

  • get_top_competitors — Top competitor domains in a project, ranked by SERP appearances.
  • compare_with_competitor — Side-by-side rank history for one keyword vs 1–10 competitor domains over a window. Returns a per-day timeline plus a summary table (current / best / worst / avg / gap vs you). Competitors auto-pick from the project when omitted.
  • suggest_related_keywords — Semantic keyword ideas around a seed term — with MSV/CPC/competition.
  • suggest_competitor_keywords — Keyword ideas mined from a competitor's ranking footprint.

Google Places (Maps keywords)

  • places_autocomplete — Resolve a free-text place name ("Kimoto Sushi Houston", "Ukraine") to concrete Google Place IDs. Use before add_keywords whenever the user describes a Maps target by name — Maps keywords rank by gmb_place_id and can't be invented.
  • places_details — Canonical details (name, formatted address, coordinates) for a ChIJ… Place ID; confirms it actually resolves. Useful when the user pastes a raw Place ID and you want to verify before tracking.

AI Visibility

  • aiv_list_domains — The user's tracked AI Visibility domains across LLM engines (ChatGPT, Perplexity, Gemini, AIOs).
  • aiv_get_domain — Fetch one AI Visibility domain by id.
  • aiv_list_search_terms — List the LLM prompts tracked for an AIV domain.
  • aiv_metrics — Composite AIV dashboard — visibility, sentiment, mentions, citations.
  • aiv_sentiment — AIV sentiment breakdown by engine (positive / neutral / negative).
  • aiv_citations — Who cites whom across LLM engines and prompts.

Account & sharing

  • get_account_info — Plan, usage counters, refresh-credit and AIV-credit balances.
  • list_tracked_regions — All search regions, languages, and device types in use.
  • get_account_sharing_settings — Account-wide share-link branding and visibility.
  • update_account_sharing_settings — Update account-wide share-link branding and visibility. write.
  • get_project_sharing_settings — Per-project share-link settings and branding override.
  • update_project_sharing_settings — Update per-project share-link settings and overrides. write.

Feedback

  • submit_feedback — Send feedback to the team when a tool falls short or you have an idea.

  • contact_us — Forward a message to the Keyword.com team — the same surface as the in-app "Contact us" / "Custom plan" dialog. Use when the user wants to talk to sales, request custom pricing, or ask about AIV credit bundles. write.