surfer_get_ seo_ scoreRead the SEO Content Score, 0 to 100, with status and calculated_at.
Start a Content Editor for a keyword, get a writing brief from the pages that rank, save a draft and see its new score, or generate and optimize an article, all by asking.
PopMCPSurfer SEO
Sign in with Surfer and your AI can work with your Content Editors, SEO and AI Search guidelines, templates, voices and AI Tracker reports. Reading never spends a credit, and new connections start read-only. With an API key from Surfer support, it can also run Audits, the SERP Analyzer, the AI Detector and the Humanizer.
69 tools in the full catalog: 39 read and 30 write. 42 load by default, and the rest are found with tool search.
surfer_get_ seo_ scoreRead the SEO Content Score, 0 to 100, with status and calculated_at.
surfer_get_ seo_ structureRead recommended length and structure from top-ranking pages: word_count, plus characters, headings, paragraphs and images.
surfer_get_ writing_ briefEverything needed to write a page in one short answer: scores, length, terms, topics, facts and competitors.
surfer_list_ seo_ competitorsList the ranking pages behind the guidelines: url, title, position, score, domain_score, and included (whether the page counts toward the guidelines).
surfer_list_ seo_ termsList the terms to use: the main keyword first, then prominent terms from competitors and custom terms.
surfer_list_ seo_ topicsList topics and questions to cover, from Google's People Also Ask, competitor headings and custom additions.
surfer_update_ seo_ termsInclude or exclude terms, or add your own.
surfer_update_ seo_ topicsInclude or exclude topics, or add your own.
surfer_create_ content_ editorCreate a Content Editor for a keyword.
surfer_create_ editor_ and_ waitCreate a Content Editor for a keyword and wait for it to be ready.
surfer_delete_ content_ editorDelete a Content Editor and its document.
surfer_get_ contentRead the document inside a Content Editor as Markdown (default) or HTML: pass format=html for HTML ready for a CMS.
surfer_get_ content_ editorRead one Content Editor: state (scheduled, executing, completed, failed), main and secondary keywords, content_score (total, seo, ai_search), target word count, template, voice, notes, meta title and description, sharing links, and the status of its outline, AI article, Auto-Optimize run and guidelines.
surfer_list_ content_ editorsList Content Editors in one workspace, one page at a time.
surfer_update_ contentReplace the whole document in a Content Editor.
surfer_update_ content_ and_ rescoreReplace a document and wait for its new SEO and AI Search scores.
surfer_update_ content_ editorChange a Content Editor's settings: notes, custom_instructions (up to 5000 words), use_brand_knowledge, custom_voice_id, and surfer_template or custom_template_id (not both).
surfer_list_ content_ templatesList the workspace's own content templates, one page at a time.
surfer_list_ surfer_ content_ templatesList Surfer's built-in templates: id, name, description.
surfer_create_ ai_ articleStart writing an AI article in a Content Editor.
surfer_generate_ article_ and_ waitStart an AI article and wait for it, returning the text when it finishes.
surfer_get_ ai_ articleRead an AI article's state and settings.
surfer_list_ custom_ voicesList the workspace's custom writing voices, one page at a time.
surfer_create_ serp_ analyzer_ queryStart a SERP Analyzer query for a keyword.
surfer_get_ serp_ search_ resultsRead the ranking pages of a finished SERP Analyzer query, as rows: position, url, state, and word, keyword, heading, image and page speed counts, up to the top 50 pages.
surfer_list_ serp_ analyzer_ queriesList the workspace's SERP Analyzer queries from the last month: id, state, created, location, keyword.
surfer_get_ ai_ search_ guidelinesRead the AI Search guidelines: facts found in search results and in AI engines (Google AI Overviews and AI Mode, Gemini, OpenAI, Perplexity) with their sources, the AI Search score, and factors showing which facts the draft covers and how its introduction does.
surfer_get_ ai_ search_ scoreRead the AI Search score, 0 to 100, with status (ready, loading, calculating, error, unavailable), calculated_at and factors.
surfer_get_ ai_ tracker_ brand_ reportRead how brands appear in AI answers for a project and date range.
surfer_get_ ai_ tracker_ source_ reportRead which sources AI answers cite for a project and date range, and the brands they mention.
surfer_get_ auto_ optimize_ jobRead one Auto-Optimize run.
surfer_list_ ai_ tracker_ projectsList the workspace's AI Tracker projects.
surfer_start_ auto_ optimizeRun Auto-Optimize on a Content Editor.
surfer_call_ toolOn a signed-in connection, run any Surfer tool by name, including ones added after connecting.
surfer_create_ auditStart an Audit of a live page against a keyword.
surfer_detect_ ai_ contentEstimate how likely a text is to be AI-written.
surfer_find_ locationSearch the location names Surfer accepts.
surfer_get_ auditRead an Audit by id.
surfer_get_ outlineRead the outline Surfer built from the search results, as Markdown (default) or HTML.
surfer_humanize_ textRewrite a text so it reads more naturally while keeping its meaning, and get the new text back.
surfer_list_ toolsOn a signed-in connection, list Surfer's live tool set with parameter schemas.
surfer_list_ workspacesList the workspaces in this Surfer organization: id, name, type, state, location and connected Search Console site.
surfer_get_ seo_ guidelinesRead all of a Content Editor's SEO guidelines at once: score, structure, competitors, terms, topics and questions.
surfer_get_ seo_ guidelines_ statusRead a short status of the SEO guidelines: status, score, can_load_more_competitors, load_more_status.
surfer_load_ more_ seo_ competitorsAsk Surfer to load more competitors from the search results, in the background.
surfer_update_ seo_ competitorsChoose which competitors count, then Surfer recalculates the guidelines.
surfer_update_ seo_ structureSet your own targets.
surfer_list_ all_ content_ editorsList Content Editors across every workspace in the organization, newest first by default, one page at a time.
surfer_create_ content_ templateCreate a content template from an example of the structure you want.
surfer_delete_ content_ templatePermanently delete a content template.
surfer_get_ content_ templateRead one content template, including its reference text.
surfer_replace_ content_ templateSame as surfer_update_content_template, under the PUT method Surfer also documents.
surfer_update_ content_ templateChange a content template's name, reference_text (at least 200 words) or default flag.
surfer_create_ custom_ voiceCreate a custom voice from a sample of the writing style.
surfer_delete_ custom_ voicePermanently delete a custom voice.
surfer_get_ ai_ article_ outlineRead the outline of the editor's active AI article as Markdown (default) or HTML.
surfer_get_ custom_ voiceRead one custom voice, including its reference text.
surfer_list_ ai_ articlesList the AI articles generated for a Content Editor, with each one's id and state.
surfer_replace_ custom_ voiceSame as surfer_update_custom_voice, under the PUT method Surfer also documents.
surfer_submit_ ai_ article_ outlineSend an edited outline and let the AI article carry on writing.
surfer_update_ custom_ voiceChange a custom voice's name, reference_text (at least 200 words) or default flag.
surfer_create_ serp_ analyzer_ batchStart several SERP Analyzer queries at once.
surfer_get_ serp_ prominent_ termsRead the prominent words and phrases of a finished SERP Analyzer query, as rows: term, pages, density and word counts.
surfer_get_ latest_ auto_ optimize_ jobRead the most recent Auto-Optimize run of a Content Editor, in any state.
surfer_list_ ai_ search_ factsList only the AI Search facts, each with its source urls and where it was cited.
surfer_list_ locationsList every location name Surfer accepts, several thousand of them.
surfer_list_ permalinksList the links that share a Content Editor, by type (edit, comment).
surfer_regenerate_ outlineRetry an outline that failed.
surfer_reset_ permalinksReplace a Content Editor's sharing links, so the old ones stop working for everyone.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Surfer SEO side.
Open Surfer SEO in PopMCP, click Sign in with Surfer, sign in, choose your organization and select Authorize. There is no developer app and no callback URL to set up. For Audit, SERP Analyzer, AI Detector or Humanizer, use a Surfer API key under More options: Surfer support issues it to your organization's owner.
your-surfer-seo-value••••••••••••3f7aReading spends no credits and changes nothing. Creating, rewriting and deleting wait until an owner or admin allows write actions in PopMCP, and new connections start read-only. Your AI can never do more than your own role in Surfer allows, and creating a Content Editor or running Auto-Optimize spends the same credits as in the app.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Surfer SEO credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Which of my recent Content Editors have the lowest content scores, and what should I fix first?
surfer_list_content_editorsok
Then just ask for the work
“Which of my recent Content Editors have the lowest content scores, and what should I fix first?”
“Start a Content Editor for "best running shoes for beginners" in the United Kingdom and give me a writing brief”
“Replace the draft in this Content Editor with the text below and tell me its new scores”
“Write an AI article in this Content Editor, and let me review the outline first”
“Which terms and topics is this page missing compared with the pages that rank?”
“Run an audit of this page for this keyword and show me how it compares with its competitors”
“How often did AI answers mention my brand last month, and which sources did they cite?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Surfer SEO behind an AI client.
No. You click Sign in with Surfer, sign in and choose your organization. A key is only for Audit, SERP Analyzer, AI Detector and Humanizer. Surfer support issues it to the organization's owner: in Surfer open MCP & API, then API, and select Contact Support.
Signing in needs a plan that includes MCP: Surfer lists Pro, Peace of Mind, Enterprise and AI Search Analytics. An API key needs Peace of Mind, Enterprise or the API add-on, and Audit, SERP Analyzer and AI Tracker must also be on your plan.
Only if you allow write actions, which are off on new connections. Creating a Content Editor spends one credit, an AI article spends one on Enterprise and some older plans, and Auto-Optimize counts toward its own allowance. Reading never spends anything, and Surfer's Usage page shows what is left.
Yes, once you allow write actions. Saving replaces the whole document, and Auto-Optimize rewrites it straight away with no review step. Surfer's document stays in Surfer: nothing is published to your site.
Signing in reaches brand knowledge, recommendations and Search Console data, and works for any member. A key is held by the owner, reaches every workspace in the organization, and adds Audit, SERP Analyzer, AI Detector, Humanizer and deleting a Content Editor. A connection uses one or the other, and you can add a second connection to have both.
No. Surfer says its API has no endpoints for Keyword Research, Topical Map, Internal Linking, Content Audit or Rank Tracker, so those stay in the app.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Surfer SEO in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Surfer SEO on the consent screen. The Surfer SEO tools are then available in that session, and no Surfer SEO credential is stored on your machine.
Loading 69 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 42-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 69 here. A trigger is something PopMCP watches for you: 3 Surfer SEO events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Surfer SEO.
Launch a hosted MCP endpoint for Surfer SEO, keep tool access under control, and start testing real workflow prompts right away.