Skip to main content
The SnowSEO MCP server lets AI agents — Claude, Cursor, VS Code Copilot, Windsurf, and any MCP-compatible client — read your SnowSEO data directly, in chat. Ask “how are my tracked keywords doing this month?” or “summarize my topic clusters” and the agent pulls live data through a set of read-only tools. It’s a thin, stateless proxy over the Developer API: every tool call maps to a /v3 endpoint and is authenticated with the same sk_ API key. The server stores nothing — your key is forwarded per request and your brand is resolved from the key automatically.
The MCP server uses your Developer API key, which is available on the Scale plan. Generate one from Settings → Integrations → API — see the Authentication guide.

Connection details

PropertyValue
Endpointhttps://mcp.snowseo.com/mcp
TransportStreamable HTTP (POST)
AuthAuthorization: Bearer sk_xxx or x-api-key: sk_xxx
Brand contextResolved from the key — no teamId needed
AccessRead-only
Each key is scoped to one brand. To connect multiple brands, create one key per brand and add each as a separate MCP server.

Setup

Wherever you see sk_xxx, replace it with your actual key (it starts with sk_). Treat it like a password — don’t commit it to a public repo.

Claude Code

Add the server with one command:
claude mcp add --transport http snowseo https://mcp.snowseo.com/mcp \
  --header "x-api-key: sk_xxx"
Add --scope project to write it to a checked-in .mcp.json, or --scope user to make it available in every project.

Manual configuration (other AI agents)

For other MCP-compatible clients (Cursor, VS Code, Windsurf, custom agents), find your client’s MCP config file (usually .mcp.json or mcp.json, at the project or user level) and add:
{
  "mcpServers": {
    "snowseo": {
      "type": "http",
      "url": "https://mcp.snowseo.com/mcp",
      "headers": {
        "x-api-key": "sk_xxx"
      }
    }
  }
}
Field names vary slightly between clients (e.g. Windsurf uses serverUrl instead of url; VS Code’s top-level key is servers). Check your client’s docs for the exact shape — the URL, http transport, and auth header stay the same.
Some clients can only launch local commands. Bridge the remote server to stdio with mcp-remote (requires Node.js):
{
  "mcpServers": {
    "snowseo": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.snowseo.com/mcp",
        "--header",
        "x-api-key: sk_xxx"
      ]
    }
  }
}
The x-api-key header is preferred here — its value has no space, which avoids a header-escaping bug some clients hit on Windows.

Available tools

All tools are read-only. The brand is resolved from your key, so none of them take a teamId.
ToolWhat it returns
keyword_researchKeyword ideas with search volume, competition, and CPC
suggest_keywordsAI keyword suggestions from a website + brand context
rank_tracking_keywordsAll tracked keywords with current position and trend
rank_tracking_top_keywordsBest-performing tracked keywords, with period comparison
rank_tracking_keyword_changesKeywords that improved, dropped, newly ranked, or were lost
rank_tracking_keyword_historyPosition history for a specific keyword over time
topic_clusters_listAll topic clusters with counts, visibility, and trend
topic_cluster_detailOne cluster’s keyword/prompt performance and competitors
gsc_traffic_statsSearch Console clicks, impressions, CTR, and position
ga_overviewGA4 users, pageviews, and sessions with comparison
cms_articlesArticles with status, SEO scores, and metadata
activity_feedRecent team activity across the platform
brand_settingsBrand profile, audience, competitors, and colors
Some tools chain naturally — e.g. call topic_clusters_list first to get a cluster id, then pass it to topic_cluster_detail. Good agents do this automatically.

Verify the connection

Once configured, restart (or refresh MCP in) your client and ask the agent something like:
“Using SnowSEO, show me my brand settings.”
If it returns your brand name and website, you’re connected. You can also list the tools — the client should show 13 SnowSEO tools available.

Frequently asked questions

No — it’s the same sk_ key. The MCP server is just a different way to reach the Developer API. Generate keys in Settings → Integrations → API.
No. Every MCP tool is read-only — they fetch data, never write it.
The brand is baked into the key. To work across multiple brands, create one key per brand and add each as its own MCP server (e.g. snowseo-brand-a, snowseo-brand-b).
Make sure you’re asking about a keyword you actually track (see rank_tracking_keywords), and that the brand has Google Search Console connected. Untracked keywords return no history.
Double-check the header is exactly Authorization: Bearer sk_xxx (with the space) or x-api-key: sk_xxx, that the key hasn’t been revoked, and that your client is using the streamable-http transport. For stdio-only clients, use the mcp-remote bridge.