Account
MCP access
Connect an MCP client, browse every standard and admin tool, understand scopes and guarded writes, revoke access, and troubleshoot OAuth.
SERPclimber exposes an OAuth-protected Model Context Protocol server at this exact URL:
https://serpclimber.com/mcp
In SERPclimber, use the MCP menu and choose Copy MCP server URL, or open Settings → Account → MCP access. Paste the URL into a client that supports remote Streamable HTTP MCP servers. The client opens SERPclimber so you can sign in and approve access.
Opening the URL as a normal web page is not an MCP connection test. Browser visits redirect to this guide. An MCP client sends protocol requests with POST; before authorization, a 401 response that points to SERPclimber's protected-resource metadata is the expected healthy response. Use the production URL for phone and hosted clients. http://localhost:3000/mcp works only while the local app is running and only for a client that can reach that machine.
Connect a client
There is nothing to install and no API key to paste. Every client authenticates the same way: it discovers the OAuth endpoints from the server URL, opens SERPclimber in a browser, and you approve the scopes it asked for.
Claude Code
claude mcp add --transport http serpclimber https://serpclimber.com/mcp
Claude Desktop, claude.ai, and ChatGPT — add a custom connector and give it the server URL. In ChatGPT this is Settings → Connectors → Add.
Cursor, VS Code, and other mcp.json clients — one entry:
{
"mcpServers": {
"serpclimber": { "url": "https://serpclimber.com/mcp" }
}
}
If a client asks for a transport, choose Streamable HTTP. SSE and stdio are not offered.
Scopes
mcpreads workspace data: active projects, integration status, billing and project access, Search Console, Pages, saved AI Visibility evidence, crawler activity, experiments, settings, and documentation.mcp:writealso permits paid live services and the two-step action workflow. It does not let a client bypass project ownership, subscription, usage, integration, or workflow checks.
SERPclimber asks compatible clients for both scopes during the normal connection flow so the agent can use the complete tool set after you approve it. A client may explicitly request only mcp for a read-only connection; the consent screen always shows the scopes that specific client requested.
Approving OAuth does not require a paid plan. If a tool needs a subscription, writable project, connected integration, or remaining usage, that individual call returns a readable error such as subscription-required, project-read-only, or usage-limit-reached. The OAuth connection remains valid.
Writes require two steps
MCP clients cannot send a direct mutation. They first call actions_prepare. SERPclimber freezes the targets, preconditions, warnings, reversibility, and expiry into a short-lived plan. The client then calls actions_execute with only that plan ID.
Plans are one-time, expire, and are checked again before execution. MCP v1 supports Page refresh/rank/eligibility changes, the Experiment and Draft lifecycle, keyword updates, project feature/settings changes, and workspace defaults. It does not support creating, renaming, changing the domain of, archiving, or changing the default Project, and it cannot bind integrations.
Discard removes unpublished work. Running and completed Experiments retain their evidence and use the normal end or decision workflow.
Tool catalog
MCP clients receive each tool's current input schema and description through tools/list. This catalog explains which tool to choose. All standard tools require mcp; rows marked mcp:write additionally require that scope. Tool results never include credentials, encrypted fields, raw OAuth tokens, or platform-provider capacity.
For common choices:
- Use
search_console_analyzefor flexible or site-wide GSC questions,pages_read_search_console_inventoryfor the exact Pages table, andpages_list_project_inventoryfor product discovery and Experiment status. - Use
pages_rank_experiment_opportunitiesto choose the next Page,pages_read_experiment_opportunityto inspect one candidate, andpages_diagnosefor a complete historical dossier. - Use
ai_visibility_readfor saved evidence. Useai_visibility_ask_enginesonly when a fresh metered request is intended. - Use
projects_prioritize_workfor broad priorities, not for choosing the next Experiment Page.
Workspace and documentation tools
| Tool | Access | What it does and when to use it |
|---|---|---|
workspace_read_context | mcp | Lists active Projects, the default Project, and safe connection summaries. Use to establish scope or understand onboarding state. |
workspace_read_billing | mcp | Reads subscription state, Project capacity, overage settings, usage, and per-Project access. Use to explain billing or read-only blockers. |
integrations_read_status | mcp | Reports Google, Wix, and Cloudflare health, defaults, Project bindings, setup routes, and enabled or blocked features. It separately identifies SERPclimber-managed dependencies. |
projects_read_overviews | mcp | Returns every active Project with compact Search Console, AI Visibility, and crawler summaries. Use for an all-Projects dashboard; each lens can fail independently. |
docs_search | mcp | Searches shipped documentation by product intent and section. Use to locate the right guide before reading it. |
docs_read | mcp | Reads one shipped documentation page or named section. Use for detailed product workflow, setup, and permission guidance, not mutable account state. |
Search Console, Pages, and prioritization tools
| Tool | Access | What it does and when to use it |
|---|---|---|
search_console_analyze | mcp | Runs flexible first-party GSC analysis across queries, Pages, dates, countries, devices, and search appearance, with filters and comparisons. Use for site-wide or custom analytics. |
search_console_find_page_movement | mcp | Finds the strongest growing or breakout Pages against an equal preceding period. Use for positive movement discovery; use search_console_analyze for declines or arbitrary comparisons. |
pages_list_project_inventory | mcp | Lists authoritative discovered Pages by product status, including Opportunities, active workflows, exclusions, and freshness. Use to reproduce the project discovery inventory. |
pages_read_search_console_inventory | mcp | Reads the exact paginated Pages table contract: filters, sorting, GSC insights and markers, findings, GA4 revenue/conversions, and freshness. Use when matching the shipped Pages UI. |
pages_read_detail | mcp | Reads one Page's stored state, GSC trend and keywords, findings, GA4 impact, saved AI Visibility evidence, and crawler activity. Use for the Page Detail view or selected sections. |
pages_rank_experiment_opportunities | mcp | Ranks currently actionable Pages for the next Experiment after eligibility, freshness, path, exclusion, Draft, job, and active-test checks. Use for “what should we test next?” |
pages_read_experiment_opportunity | mcp | Inspects one Opportunity's eligibility, warnings, active Experiments, Draft blockers, and generation state. Use after selecting a candidate Page. |
pages_diagnose | mcp | Builds one comprehensive Page dossier from discovery, GSC, ranks, Experiment history, edits, keyword decisions, eligibility, and audit history. Use to explain performance or history. |
pages_explain_experiment_eligibility | mcp | Explains why a Page was selected, excluded, or blocked using effective rules, score components, overrides, and provenance. Use for eligibility questions, not mutation. |
projects_prioritize_work | mcp | Builds a broad operating brief from blockers, Opportunities, Drafts, Experiments, decisions, failures, capacity, and jobs. Use for project priorities or operational health. |
AI Visibility tools
| Tool | Access | What it does and when to use it |
|---|---|---|
ai_visibility_read | mcp | Reads saved overview, paginated questions, full saved answers, competitor citations, robots/llms state, and crawler traffic through overview, questions, competitors, or access sections. |
ai_visibility_ask_engines | mcp:write | Sends one exact question to selected AI engines and saves the snapshots. Use only for an explicit fresh live ask; subscription and usage checks still apply. |
Experiment, Draft, and settings tools
| Tool | Access | What it does and when to use it |
|---|---|---|
experiments_list | mcp | Lists actual Draft, running, awaiting-decision, and completed Experiments for one Project or an explicit cross-Project report. |
experiments_read | mcp | Reads one live Experiment and its Page evidence. Use for the state and results of a specific test. |
experiments_analyze_page_keywords | mcp | Analyzes one Experiment Page's keyword ranks, clicks, impressions, CTR, and position. Use for focused keyword evidence. |
experiments_review_draft | mcp | Reads one unpublished Draft and returns references for its Draft card and content diff. Use for review, not editing or publishing. |
experiments_read_draft_edit_context | mcp | Returns the persisted Draft outline, stable edit target IDs, allowed operations, and draftRevision. Use before preparing a safe Draft edit. |
settings_read_project | mcp | Reads stored and effective Project or Autopilot settings with inheritance and source provenance. Use to explain which value actually applies. |
settings_read_workspace_defaults | mcp | Reads raw Workspace defaults. Use for global inherited policy rather than a particular Project's effective value. |
Action tools
| Tool | Access | What it does and when to use it |
|---|---|---|
actions_prepare | mcp:write | Validates a supported mutation and freezes targets, preconditions, warnings, reversibility, and expiry into a one-time plan. This call does not execute the change. |
actions_execute | mcp:write | Executes one pending plan using only its planId, after ownership and preconditions are checked again. Plans cannot be executed twice. |
actions_retry_failed | mcp:write | Creates a fresh plan containing only failed items from a failed or partial prior plan. Execute the returned plan with actions_execute. |
actions_prepare accepts these v1 action values:
- Pages:
refresh_pages,refresh_page_ranks,update_page_keywords,exclude_pages_from_experiments, andrestore_pages_to_experiments. - Experiment and Draft lifecycle:
start_experiment_draft,add_page_to_experiments,remove_page_from_experiments,generate_experiment_draft,regenerate_experiment_draft,edit_experiment_draft,publish_experiment_draft,discard_experiment_draft,cancel_draft_generation,resolve_experiment_decision,end_experiment,approve_draft_slug, andkeep_current_slug. - Settings:
update_project_features,update_project_settings, andupdate_workspace_defaults.
Project creation, rename/domain changes, archive, default-Project changes, and integration binding are not available in MCP v1.
Admin marketing CMS tools
These eight tools are dynamically visible only when the authenticated user's root record currently has admin: true. Removing admin access hides them on the next request and blocks pending admin plans. Admin write tools additionally require mcp:write.
| Tool | Access | What it does and when to use it |
|---|---|---|
marketing_cms_list | Admin + mcp | Lists compact localized page groups with type/status filters, versions, category relationships, pending changes, and each locale's path and publication state. Use to find content without loading full bodies. |
marketing_cms_read | Admin + mcp | Reads one group by content ID or canonical English path, including editable drafts, versions, derived paths, link manifests, media references, and preview URLs. |
marketing_cms_validate | Admin + mcp | Runs the complete publication dry run and returns locale, schema, path, dependency, canonical-link, and media issues. Use before preparing publication. |
marketing_cms_prepare_change | Admin + mcp:write | Prepares a 30-minute CMS plan for create_locale_group, replace_locale_draft, replace_all_locale_drafts, publish_locale_group, unpublish_locale_group, or discard_never_published_group. Execute it with actions_execute. |
marketing_media_list | Admin + mcp | Searches safe first-party media with dimensions, metadata, readiness, creator, and reference counts. It never returns bytes or storage credentials. |
marketing_media_prepare_upload | Admin + mcp:write | Freezes filename, MIME type, decoded byte size, alt text, and caption into a one-time image upload plan. Use before sending image bytes. |
marketing_media_upload_image | Admin + mcp:write | Executes a pending upload plan using plain base64. It rechecks size, extension, MIME, signature, ownership, expiry, and one-time state. |
marketing_media_prepare_change | Admin + mcp:write | Prepares replace_metadata or delete_unreferenced for one media item. Deletion is allowed only at a current reference count of zero; execute with actions_execute. |
CMS creation and structural edits operate atomically on exactly en, es, pt-BR, de, and fr. Tools accept complete bodies, not arbitrary patches or database fields. All locales must retain the same ordered canonical English internal-link targets, and authored localized URLs are rejected. Publishing and unpublishing always affect the whole locale group.
Image upload supports JPEG, PNG, WebP, AVIF, GIF, and SVG up to 20 MB. Video upload remains in the Admin UI. Upload bytes go only to marketing_media_upload_image; they are never stored in an action plan or telemetry.
Manage or revoke a client
Open Settings → Account → MCP access to see each client name and trust source, approved scopes, connection date, last use, and call totals. A client registered dynamically is labeled unverified unless its metadata came from a verified client metadata document.
Choose Revoke to invalidate every access and refresh token in that grant immediately. Reconnect from the MCP client if you revoke it by mistake.
Troubleshooting
- The client says the URL cannot load and never opens sign-in or consent: confirm you added an MCP/custom connector, not a normal web connector. The client must support remote Streamable HTTP plus OAuth discovery and dynamic client registration or client metadata documents. Fetching
/mcpas a web page does not connect it. - The client reports
redirect_uris must only contain web uris: the server rejected the client's desktop or mobile callback before authorization began. Update the deployment, then remove and reconnect the client so dynamic registration runs again with native callback support. - You want to verify the deployment: open
https://serpclimber.com/.well-known/oauth-protected-resource/mcp. It should return JSON naminghttps://serpclimber.com/mcpand thehttps://serpclimber.com/oauthauthorization server. An unauthenticated MCPPOSTshould return401, not an HTML 404. - The client receives
401: reconnect so it can discover OAuth and request a new token. Confirm the server URL ends in/mcp. - The client receives
403 insufficient_scope: reconnect and approvemcp:writeif the tool is paid or can change data. - A tool returns a subscription or project error: fix the plan, usage, or project access in SERPclimber. Do not delete and recreate the OAuth connection.
- An integration-backed section is unavailable: open Integrations and connect or repair Google, Wix, or Cloudflare. Workspace overviews keep returning their other lenses.
- Authorization does not open: the production deployment must have a stable HTTPS origin and configured private MCP OAuth cookie and signing keys.
