MCP — plug SignalGuide into Claude, ChatGPT, Cursor.
Drop SignalGuide's endpoint into any MCP client, approve the connection in a browser tab, and your AI assistant can answer questions about your traffic and configure the account end to end — add a site, set conversion pages, define content clusters, set goals, schedule reports. Scoped to your sites, revokable any time.
What is MCP
The Model Context Protocol is an open standard AI assistants use to call external data and tools. SignalGuide's MCP server exposes two categories of tools, plus resources and prompt templates:
- Read tools — pull intelligence about what your site has been doing, what changed, and what to do next.
- Write tools — configure the account: onboard a site, connect Google sources, define conversion pages, content clusters, goals, vanity filters, notes, refresh cadence, and report schedules.
Write tools require the mcp:write scope (OAuth) or a manual sgm_ token. Read tools work with either. See Security for the scope and role model.
Prerequisites
A SignalGuide account with at least one connected site. If you haven't done that yet, start with Onboarding. You'll need a site generating at least one snapshot for the tools to return anything useful.
Setup — OAuth (recommended)
OAuth 2.1 clients discover SignalGuide automatically — no tokens, no config files. This works in Claude Desktop (recent versions), Cursor, and any client that implements the MCP authorization spec.
Add the MCP server URL
In your client, add a remote MCP server with the URL https://api.signalguide.io/mcp/sse. Nothing else to type — no headers, no tokens.
Approve in your browser
The client opens https://api.signalguide.io/oauth/consent in a browser tab. If you're already signed into SignalGuide, you'll see a consent screen listing the client's name and what it's allowed to do. Click Approve.
Ask a question
The browser hands control back to the client, which now has an access token and can call SignalGuide's tools on your behalf. Try: “What's the biggest problem on my site right now?”
Access tokens last one hour; the client refreshes them transparently. Revoke any connected app any time from Settings → AI agents → Connected apps.
Setup — manual token (fallback)
For clients without OAuth support, CLI scripts, and curl testing, you can still paste a long-lived bearer token.
Create a token
Open Settings, go to the AI agents tab, scroll to Manual tokens, click Create token. Optionally give it a label (e.g. “curl testing”) so you can tell it apart later.
Paste into your MCP client
Tokens start with sgm_. Configs for the common clients are in the next section. The authorization header is Bearer <your token>; the SSE endpoint is https://api.signalguide.io/mcp/sse.
Restart the client
Claude Desktop and Cursor re-read their config on launch. Quit fully and reopen. ChatGPT picks up remote connectors immediately after you add them in the UI.
Client configs
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows. Add the signalguide entry under mcpServers:
Cursor
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project.
ChatGPT
ChatGPT supports remote MCP servers on Team, Enterprise, and Pro plans via Settings → Connectors → Add connector. Use these values:
Any MCP client
The server speaks MCP over SSE. Two endpoints, both under /mcp:
Tool reference
Tools split into read (intelligence, no auth scope beyond a valid token) and write (configuration, requires mcp:write or a manual token). In normal read use, start with get_site_brief, then drill into actions, changes, recommendations, pages, search opportunities, AI referrals, conversion funnels, or data health as needed.
Read tools
Configuration and write tools
Mutating tools require mcp:write (OAuth) or a manual sgm_ token. The role gate matches the web app: most edits need at least member; changing credential-bearing site sources needs admin. get_site_brief returns existing conversion-page, cluster, goal, and vanity-filter IDs for edits.
Resources
MCP-aware clients can also read resources for ambient context before calling tools. SignalGuide exposes these JSON resources:
Prompt templates
These prompts appear in clients that support MCP prompt discovery. They instruct the assistant which SignalGuide tools to call and how to frame the answer.
configure_new_site() walks the assistant through the full onboarding flow — discover Google sources, create the site, add conversion pages, propose clusters, capture goals, set refresh cadence, and (on paid plans) schedule a weekly briefing. Requires mcp:write.
Example prompts
Paste any of these into Claude, ChatGPT, or Cursor after the server is connected. The assistant will chain tool calls and summarize.
- “Use SignalGuide to tell me what changed this week and what I should fix first.”
- “Use SignalGuide to prioritize my next five site changes by impact.”
- “What's the biggest problem on my site right now?”
- “Compare the latest snapshot to the previous one — what changed?”
- “Which of my pages have the highest bounce rate with more than 100 views?”
- “How much traffic am I getting from ChatGPT and Perplexity this period?”
- “Which of my content clusters are gaining momentum?”
- “Show me P0 and P1 findings across all my sites.”
- “How are my conversion pages performing and where's the conversion coming from?”
- “Pull the top 20 pages by GSC impressions and tell me which ones have bad CTR.”
Configuration prompts
These prompts use the write tools. With OAuth, your client needs to be authorized with mcp:write; with a manual token, write is enabled by default.
- “Onboard a new SignalGuide site for example.com using my GA4 and Search Console properties. Suggest 4 content clusters and a weekly email schedule.”
- “Add /pricing, /contact, and /demo as conversion pages on site 12.”
- “Propose content clusters from my recent GA4 traffic, show them to me, and create the ones I approve.”
- “Set a goal of 5,000 monthly organic clicks by 2026-09-30 on site 12 with must-hit priority.”
- “Filter out /blog/what-is-* and /glossary/* from my reports on site 12.”
- “Set the refresh interval for site 12 to hourly (60 minutes).”
- “Schedule a weekly Slack briefing for site 12 — webhook URL: https://hooks.slack.com/...”
- “Disconnect Google Ads from site 12 but keep GA4 and Search Console connected.”
Security
Two scopes. mcp:read covers all intelligence tools (the read table above). mcp:write covers configuration tools (the write table above). OAuth clients request scopes explicitly at consent time. Manual sgm_ tokens are user-issued from the Settings page and have write enabled by default — treat them like a password.
Account roles. Within an account, write tools follow the same role gate as the web app: edits require at least member; credential-bearing source changes require admin; viewers can read but cannot mutate. Plan limits (site count, cluster count, paid-only schedules) also apply through MCP, exactly as in the dashboard.
Scoped per user. Every tool pulls user_id from the verified bearer token, not from arguments. Site access is enforced through account membership — a token can reach every site on every account you belong to, and nothing else. Passing a foreign site_id returns a generic Site <id> not found — it won't reveal whether that id exists.
Hashed at rest. Tokens are stored only as SHA-256 hashes. If you lose a token, generate a new one — there's no recovery.
Revoke anytime. For OAuth clients, Settings → AI agents → Connected apps → Disconnect. For manual tokens, scroll to Manual tokens and click Revoke. Either path is instant; the next request gets a 401.
OAuth details. Public PKCE clients only (no client secrets). Access tokens last one hour; refresh tokens 30 days and rotate on every use — replaying an old refresh token revokes the whole chain. Supported scopes are mcp:read and mcp:write. Unknown scopes are dropped at consent time.
Troubleshooting
401 Unauthorized
The response body looks like {"error":"unauthorized","detail":"..."}. Causes: no Authorization header, a header that doesn't start with Bearer , or a token that's been revoked or mistyped. Generate a new one and update your config.
“This tool requires the mcp:write scope”
Your OAuth client was authorized with mcp:read only. Re-run the authorization flow asking for mcp:write, or switch to a manual sgm_ token which has write enabled by default. Read tools continue to work either way.
“This action requires member access”
You're a viewer on the account that owns this site. Viewers can read every tool but cannot mutate configuration. Ask the account owner to bump your role to member (or admin for credential-bearing source changes) in Settings → Team.
Tools not appearing in Claude Desktop
Almost always a config-file syntax error (trailing comma, missing quote) or Claude Desktop wasn't fully quit before reopening. Validate the JSON, quit completely from the menu bar, relaunch.
“Site not found” when calling a tool
You passed a site_id the token can't see. Ask the assistant to call list_sites first and pick an id from that list.
No snapshot yet
A fresh site has no snapshot until the first pull runs. Tool responses include "snapshot": null and empty arrays. Trigger a pull from the dashboard or wait for the scheduled one.
Limits
No rate limits enforced at launch — use the endpoint normally and we'll publish numbers here before any throttling ships. MCP access is included on every paid plan; see pricing for tiers.