Skip to main content
Connect your favorite AI app to SnowSEO and work with your SEO just by chatting. Instead of opening the dashboard, you can ask Claude, ChatGPT, or any AI assistant something like “how are my tracked keywords doing this month?” and get the answer straight from your SnowSEO account — and, for the actions you switch on, have it do the work too: “track these five keywords for me.”

What is the MCP server?

The Model Context Protocol (MCP) is an open standard that lets AI apps connect securely to outside services. The SnowSEO MCP server is how your AI app reaches your SnowSEO data — your keywords, rankings, topic clusters, Search Console stats, and more — so you can ask about them in normal conversation instead of switching between apps. By default the connection is read-only — the app can view your data and answer questions, nothing more. You can also switch on specific actions per brand (like tracking keywords or managing existing articles) so the assistant can do them for you. You decide exactly what’s allowed in Settings → Integrations → MCP, and every connected app follows those rules.

What you can do

Once connected, just ask your AI app to:
  • Check your rankings — see tracked keywords, what moved up or down, and trends over time
  • Research keywords — get keyword ideas with search volume, competition, and AI suggestions for your brand
  • Review topic clusters — see which clusters are gaining visibility and how they’re performing
  • Look at your traffic — Search Console clicks, impressions, CTR, GA4 visitors, and PostHog analytics
  • Review AI visibility — inspect tracked prompts, model visibility, competitors, citations, and filters
  • Check your content — article SEO scores, status, and recent team activity
  • Plan content — get article title ideas, target keywords, outlines, and FAQ prompts for any topic
  • Read your brand setup — audience, competitors, and brand profile
  • See your whole portfolio — an org-level rollup of every brand’s visibility, rankings, traffic, and open work
  • Review recommended next steps — the ranked to-do list of what to fix, with how-to detail for each item

…and take action for you

Switch these on per brand — they’re off by default — and the assistant can also:
  • Track & untrack keywords — start rank-tracking new keywords, or remove ones you no longer need
  • Track AI prompts — add, refresh, update, or remove prompts from AI-visibility tracking
  • Organize topics — create topic clusters and add keywords or prompts to them
  • Generate articles — write a complete SEO article from a brief, or run it step by step (titles → outline → draft); this uses credits, so the assistant asks first
  • Manage content — edit existing articles and schedule, publish, unpublish, or change public-feed visibility
  • Work your next steps — start, snooze, dismiss, reopen, or mark next steps done, and refresh the list
You turn each one on or off in Settings → Integrations → MCP — see Control what AI can do.

Connect your AI app

This is the easy way and works on any SnowSEO plan. You add SnowSEO as a “connector” inside your AI app, sign in through your browser once, and you’re done — there’s no key to copy or paste. The server URL is the same everywhere:
AI apps occasionally rename these menus as they update, so the exact wording may differ slightly — but the flow is always the same: find where the app adds a custom connector (or MCP server), paste the URL above, and approve the SnowSEO sign-in.

Claude (Desktop & web)

  1. Open Claude and go to Settings → Connectors.
  2. Click Add custom connector (this needs a paid Claude plan — Pro, Max, Team, or Enterprise).
  3. Give it a name like SnowSEO and paste the server URL: https://mcp.snowseo.com/mcp
  4. Click Add, then Connect. Claude opens the SnowSEO sign-in page in your browser — sign in and click Allow.
  5. SnowSEO now appears in your connectors. Start a chat and ask away.

ChatGPT

ChatGPT calls custom MCP connectors apps, and you add them through Developer mode (available on paid ChatGPT plans).
  1. In ChatGPT, open Settings → Apps, then Advanced, and turn on Developer mode. This is what lets you add custom connectors.
  2. Back on the Apps screen, click Create app.
  3. In the New App dialog, give it a Name like SnowSEO. Under Connection, keep Server URL selected and paste https://mcp.snowseo.com/mcp.
  4. Set Authentication to OAuth.
  5. Tick “I understand and want to continue” on the risk notice, then click Create.
  6. Sign in to SnowSEO and approve access. The app is now available — turn it on in a chat and ask about your SEO.

Other apps & assistants

Most MCP-capable apps follow the same pattern. Find where the app adds a custom connector or MCP server, paste https://mcp.snowseo.com/mcp, and approve the SnowSEO sign-in in your browser. No API key needed.

Which brand am I connecting?

Your connection is tied to your SnowSEO user session, not one fixed brand. The assistant should call list_teams first, let you choose the brand/team you mean, and pass that teamId to team-scoped tools. Tool permissions are still managed per brand in Settings → Integrations → MCP.

Example prompts

Once you’re connected, try asking:
Some questions chain together automatically — ask about a topic cluster and a good assistant will list your clusters first, then dig into the one you mean.

Developer setup (CLI & editors)

Building with an AI coding tool? The same server works from the command line and code editors. These use the same browser sign-in (OAuth) on any plan.

Claude Code

Then run /mcp, pick snowseo, and choose Authenticate to sign in. Add --scope user to use it in every project, or --scope project to share it with your team in a checked-in .mcp.json.

Cursor, VS Code, Windsurf & other editors

Open your client’s MCP config (usually a .mcp.json or mcp.json file) and add the server with no auth header:
On first connect the client opens the SnowSEO sign-in page in your browser. Approve it once and you’re connected.
Field names differ a little between clients (Windsurf uses serverUrl instead of url; VS Code’s top-level key is servers). The flow is the same — point it at the URL with no auth header and let the client handle sign-in.
Some clients can only launch local commands. Bridge to the remote server with mcp-remote (needs Node.js) — it handles the browser sign-in for you:

What the assistant can access

These are the tools the app uses behind the scenes. Call list_teams first to choose a brand, then pass the returned teamId to team-scoped tools. Read tools are on by default (you can switch any off per brand); actions stay off until you switch them on per brand. Read (on by default): Actions (off until you switch them on in Settings → Integrations → MCP):
Not every endpoint in the API reference is available as an MCP tool. Long-running or background operations are left out because an assistant won’t wait on a single call — for example, a full Website Audit runs as a crawl job that can take minutes, so it stays in the dashboard and REST API only. The tools above are the complete set an AI app can use.
Tools are documented here at the conceptual level — there is currently no per-tool parameter reference. Each tool maps to a /v3 endpoint, so consult the matching API reference page for exact inputs. Authentication is OAuth 2.1 only today; there is no API-key path for the MCP server.

Technical details

The server is a thin, stateless proxy over the Developer API: every tool call maps to a /v3 endpoint, and nothing is stored — your credentials are forwarded per request and team-scoped calls carry the selected teamId.

Control what AI can do

You’re always in charge of what a connected app can do. In the dashboard, open Settings → Integrations → MCP to see every tool grouped into Reading your data and Taking actions, each with an on/off switch.
  • Reads are on by default — viewing your SEO data is safe.
  • Actions are off by default — switch on only the ones you want the assistant to perform for you.
  • Rules are per brand, and every app connected to that brand (Claude, ChatGPT, Cursor…) follows them — flip a switch and it applies everywhere on the next request.
  • Only admins and owners can change these; other teammates can view them.
Turning a tool off hides it from the assistant completely, so it can’t see or call it. Each brand has its own rules — to manage a different one, switch your active brand in the dashboard first.

Permission API

The same per-brand allow/deny matrix is available over the REST API — the dashboard settings screen is a thin client over these two routes, and the MCP server enforces the resulting state per brand on every request. GET /v3/settings/mcp Team-scoped (teamId), any member. Returns the full tool catalog with, for each tool, its name, label, description, group (read or write), default state, and effective state for the brand — plus canManage (whether the caller may edit) and brandId. PATCH /v3/settings/mcp Team-scoped, team admins/owners only (members can read the matrix but not change it). Body: permissions, a map of tool name"allow" | "deny" (deltas only; values matching a tool’s default are cleared). Reads default to allow and writes default to deny. Returns the updated catalog in the same shape as the GET route.

Troubleshooting

No — connecting an AI app works on any SnowSEO plan. You just add the connector and approve access in your browser.
The menu differs per app: in Claude it’s Settings → Connectors → Add custom connector; in ChatGPT it’s Settings → Apps → Advanced → Developer mode, then Create app. Most apps only allow custom connectors on paid plans.
Ask the assistant to call list_teams and use the teamId for the brand you mean. You do not need to reconnect just to switch brands.
That action is probably switched off for this brand. Open Settings → Integrations → MCP, turn it on under Taking actions, and ask again — new actions are off by default. (Some actions also use credits or need a specific plan.)
Make sure it’s a keyword you actually track (ask for rank_tracking_keywords to see them), and that the brand has Google Search Console connected. Untracked keywords have no history to show.
Re-run the sign-in step and approve access in the browser window. Make sure your client uses the streamable-http transport and that it didn’t cache an expired session — removing and re-adding the connector forces a fresh sign-in.