Account

MCP access

Connect an MCP client, browse every standard and admin tool, understand scopes and guarded writes, revoke access, and troubleshoot OAuth.

Updated 2026-08-17Markdown source

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

  • mcp reads workspace data: active projects, integration status, billing and project access, Search Console, Pages, saved AI Visibility evidence, crawler activity, experiments, settings, and documentation.
  • mcp:write also 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_analyze for flexible or site-wide GSC questions, pages_read_search_console_inventory for the exact Pages table, and pages_list_project_inventory for product discovery and Experiment status.
  • Use pages_rank_experiment_opportunities to choose the next Page, pages_read_experiment_opportunity to inspect one candidate, and pages_diagnose for a complete historical dossier.
  • Use ai_visibility_read for saved evidence. Use ai_visibility_ask_engines only when a fresh metered request is intended.
  • Use projects_prioritize_work for broad priorities, not for choosing the next Experiment Page.

Workspace and documentation tools

ToolAccessWhat it does and when to use it
workspace_read_contextmcpLists active Projects, the default Project, and safe connection summaries. Use to establish scope or understand onboarding state.
workspace_read_billingmcpReads subscription state, Project capacity, overage settings, usage, and per-Project access. Use to explain billing or read-only blockers.
integrations_read_statusmcpReports Google, Wix, and Cloudflare health, defaults, Project bindings, setup routes, and enabled or blocked features. It separately identifies SERPclimber-managed dependencies.
projects_read_overviewsmcpReturns every active Project with compact Search Console, AI Visibility, and crawler summaries. Use for an all-Projects dashboard; each lens can fail independently.
docs_searchmcpSearches shipped documentation by product intent and section. Use to locate the right guide before reading it.
docs_readmcpReads 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

ToolAccessWhat it does and when to use it
search_console_analyzemcpRuns 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_movementmcpFinds 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_inventorymcpLists authoritative discovered Pages by product status, including Opportunities, active workflows, exclusions, and freshness. Use to reproduce the project discovery inventory.
pages_read_search_console_inventorymcpReads 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_detailmcpReads 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_opportunitiesmcpRanks 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_opportunitymcpInspects one Opportunity's eligibility, warnings, active Experiments, Draft blockers, and generation state. Use after selecting a candidate Page.
pages_diagnosemcpBuilds 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_eligibilitymcpExplains why a Page was selected, excluded, or blocked using effective rules, score components, overrides, and provenance. Use for eligibility questions, not mutation.
projects_prioritize_workmcpBuilds a broad operating brief from blockers, Opportunities, Drafts, Experiments, decisions, failures, capacity, and jobs. Use for project priorities or operational health.

AI Visibility tools

ToolAccessWhat it does and when to use it
ai_visibility_readmcpReads 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_enginesmcp:writeSends 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

ToolAccessWhat it does and when to use it
experiments_listmcpLists actual Draft, running, awaiting-decision, and completed Experiments for one Project or an explicit cross-Project report.
experiments_readmcpReads one live Experiment and its Page evidence. Use for the state and results of a specific test.
experiments_analyze_page_keywordsmcpAnalyzes one Experiment Page's keyword ranks, clicks, impressions, CTR, and position. Use for focused keyword evidence.
experiments_review_draftmcpReads one unpublished Draft and returns references for its Draft card and content diff. Use for review, not editing or publishing.
experiments_read_draft_edit_contextmcpReturns the persisted Draft outline, stable edit target IDs, allowed operations, and draftRevision. Use before preparing a safe Draft edit.
settings_read_projectmcpReads stored and effective Project or Autopilot settings with inheritance and source provenance. Use to explain which value actually applies.
settings_read_workspace_defaultsmcpReads raw Workspace defaults. Use for global inherited policy rather than a particular Project's effective value.

Action tools

ToolAccessWhat it does and when to use it
actions_preparemcp:writeValidates a supported mutation and freezes targets, preconditions, warnings, reversibility, and expiry into a one-time plan. This call does not execute the change.
actions_executemcp:writeExecutes one pending plan using only its planId, after ownership and preconditions are checked again. Plans cannot be executed twice.
actions_retry_failedmcp:writeCreates 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, and restore_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, and keep_current_slug.
  • Settings: update_project_features, update_project_settings, and update_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.

ToolAccessWhat it does and when to use it
marketing_cms_listAdmin + mcpLists 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_readAdmin + mcpReads one group by content ID or canonical English path, including editable drafts, versions, derived paths, link manifests, media references, and preview URLs.
marketing_cms_validateAdmin + mcpRuns the complete publication dry run and returns locale, schema, path, dependency, canonical-link, and media issues. Use before preparing publication.
marketing_cms_prepare_changeAdmin + mcp:writePrepares 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_listAdmin + mcpSearches safe first-party media with dimensions, metadata, readiness, creator, and reference counts. It never returns bytes or storage credentials.
marketing_media_prepare_uploadAdmin + mcp:writeFreezes 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_imageAdmin + mcp:writeExecutes a pending upload plan using plain base64. It rechecks size, extension, MIME, signature, ownership, expiry, and one-time state.
marketing_media_prepare_changeAdmin + mcp:writePrepares 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 /mcp as 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 naming https://serpclimber.com/mcp and the https://serpclimber.com/oauth authorization server. An unauthenticated MCP POST should return 401, 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 approve mcp:write if 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.