<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AgentSEO-dev</title>
    <description>The latest articles on DEV Community by AgentSEO-dev (@agentseodev).</description>
    <link>https://dev.to/agentseodev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4038290%2F83084df5-eb23-41ca-8787-0ab95e10c6dd.png</url>
      <title>DEV Community: AgentSEO-dev</title>
      <link>https://dev.to/agentseodev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/agentseodev"/>
    <language>en</language>
    <item>
      <title>How to Add an SEO MCP Server to Claude Code</title>
      <dc:creator>AgentSEO-dev</dc:creator>
      <pubDate>Sat, 25 Jul 2026 15:23:20 +0000</pubDate>
      <link>https://dev.to/agentseodev/how-to-add-an-seo-mcp-server-to-claude-code-45nh</link>
      <guid>https://dev.to/agentseodev/how-to-add-an-seo-mcp-server-to-claude-code-45nh</guid>
      <description>&lt;h1&gt;
  
  
  How to add an SEO MCP server to Claude Code
&lt;/h1&gt;

&lt;p&gt;Claude Code can already edit files, run commands, and reason through a codebase.&lt;/p&gt;

&lt;p&gt;The gap shows up when the work depends on a live external system.&lt;/p&gt;

&lt;p&gt;SEO is a good example. If you ask Claude Code to improve a landing page, it can inspect the page and suggest better copy. But it cannot know the current SERP, the competing page formats, the AI Overview behavior, or the backlink context unless you paste that data in.&lt;/p&gt;

&lt;p&gt;That is exactly the job MCP is built for.&lt;/p&gt;

&lt;p&gt;Claude Code’s MCP docs describe MCP servers as a way to connect Claude Code to external tools, databases, and APIs so Claude can read and act on those systems directly instead of working from copied data.&lt;/p&gt;

&lt;p&gt;In this guide, we will add an SEO MCP server to Claude Code and run the first useful prompts.&lt;/p&gt;

&lt;p&gt;I will use AgentSEO as the example server because it exposes a hosted Streamable HTTP MCP endpoint and a local npm package. The setup pattern is the important part.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get from an SEO MCP server
&lt;/h2&gt;

&lt;p&gt;An SEO MCP server gives Claude Code tool access to live search workflows.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Here is a SERP export. Can you summarize it?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you can ask:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use the SEO MCP server to analyze the SERP for "best seo api" in the United States.
Then identify the search intent and draft a content brief for a comparison page.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The difference is small in wording and large in workflow.&lt;/p&gt;

&lt;p&gt;The first prompt makes you the data pipeline.&lt;/p&gt;

&lt;p&gt;The second prompt lets Claude Code call the tool directly.&lt;/p&gt;

&lt;p&gt;For AgentSEO, the live server card currently lists 45 MCP tools, including SERP analysis, keyword ideas, content briefs, local SEO checks, backlink analysis, rank tracking, and AI Overview extraction.&lt;/p&gt;

&lt;p&gt;You can verify that yourself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://www.agentseo.dev/.well-known/mcp/server-card.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The hosted endpoint is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://www.agentseo.dev/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Before you start
&lt;/h2&gt;

&lt;p&gt;You need three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code installed.&lt;/li&gt;
&lt;li&gt;An AgentSEO API key.&lt;/li&gt;
&lt;li&gt;A project where you want the MCP server available.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use a server-side API key. Do not use a browser-restricted key for local agent tooling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: add the hosted SEO MCP server
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fufor3byvw1i1gt3cr4qm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fufor3byvw1i1gt3cr4qm.png" alt=" " width="799" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claude Code supports remote HTTP MCP servers with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http &amp;lt;name&amp;gt; &amp;lt;url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For AgentSEO:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http agentseo https://www.agentseo.dev/mcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer sk_live_your_key"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"x-project-id: client-alpha"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"x-workflow-id: seo-mcp-test"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;sk_live_your_key&lt;/code&gt; with your AgentSEO API key.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;x-project-id&lt;/code&gt; and &lt;code&gt;x-workflow-id&lt;/code&gt; headers are optional, but I like adding them early. Once an agent workflow starts making real API calls, traceability matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: add the local npm MCP server
&lt;/h2&gt;

&lt;p&gt;If you prefer a local stdio server, use the npm package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"agentseo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@agentseo/mcp-server"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"AGENTSEO_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk_live_your_key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"AGENTSEO_API_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.agentseo.dev/api/v1"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful when your MCP client expects a local subprocess instead of a hosted HTTP endpoint.&lt;/p&gt;

&lt;p&gt;For Claude Code, I would start with the hosted HTTP version unless you have a reason to keep everything local.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify the server in Claude Code
&lt;/h2&gt;

&lt;p&gt;After adding the server, open Claude Code and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code’s &lt;code&gt;/mcp&lt;/code&gt; panel lets you inspect connected MCP servers. It should show the server and its tools.&lt;/p&gt;

&lt;p&gt;If the server does not appear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;restart Claude Code&lt;/li&gt;
&lt;li&gt;check the API key header&lt;/li&gt;
&lt;li&gt;confirm the endpoint URL is exactly &lt;code&gt;https://www.agentseo.dev/mcp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;claude mcp list&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;claude mcp get agentseo&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The setup is not done until Claude Code can see the tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  First prompt: analyze a live SERP
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fttc2fc9jtlalzhcs4tbh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fttc2fc9jtlalzhcs4tbh.png" alt=" " width="799" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start with one bounded workflow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use AgentSEO to analyze the SERP for "best seo api" in the United States.

Return:
1. the dominant search intent
2. the common page formats
3. the SERP features that matter
4. what kind of page I should build
5. three risks before publishing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is better than asking for “SEO advice.” The prompt names the keyword, location, output shape, and decision you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Second prompt: create a content brief
&lt;/h2&gt;

&lt;p&gt;Once the SERP analysis works, ask for something closer to production.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use AgentSEO to create a content brief for the keyword "seo api for ai agents".

Audience: developers building agent workflows.
Page type: educational comparison page.
Goal: explain when an SEO API should be exposed as MCP tools.

Include:
- search intent
- suggested H2 structure
- entities and subtopics to cover
- internal link ideas
- title and meta options
- what not to claim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The phrase “what not to claim” is important. Agent-generated SEO content gets risky when it turns every tool output into marketing confidence.&lt;/p&gt;

&lt;p&gt;Ask Claude Code to preserve the review step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Third prompt: check AI Overview visibility
&lt;/h2&gt;

&lt;p&gt;If your SEO work touches AI search, use a narrower prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use AgentSEO to check AI Overview visibility for "best seo api".

Tell me:
1. whether an AI Overview appears
2. what source patterns show up
3. whether AgentSEO or competing pages are citation candidates
4. what page changes would improve citation likelihood
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Treat this as directional research, not a magic ranking button.&lt;/p&gt;

&lt;p&gt;AI Overview behavior changes. The point is to create a repeatable check, not a one-time screenshot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common setup mistakes
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr0vp4v08qkij4zpiia46.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr0vp4v08qkij4zpiia46.png" alt=" " width="799" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The annoying MCP failures are usually small.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrong header format
&lt;/h3&gt;

&lt;p&gt;Use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer sk_live_your_key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not paste the header as JSON into the CLI command.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrong transport
&lt;/h3&gt;

&lt;p&gt;For the hosted AgentSEO endpoint, use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--transport&lt;/span&gt; http
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The MCP spec calls the current HTTP transport Streamable HTTP. Claude Code accepts &lt;code&gt;http&lt;/code&gt; in the CLI and also recognizes &lt;code&gt;streamable-http&lt;/code&gt; in JSON configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  No restart after configuration
&lt;/h3&gt;

&lt;p&gt;If Claude Code was already open, restart it or check &lt;code&gt;/mcp&lt;/code&gt; again after adding the server.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prompt is too vague
&lt;/h3&gt;

&lt;p&gt;This is a bad first prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Improve my SEO.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a better first prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use AgentSEO to analyze the SERP for "best seo api" in the United States and tell me what page type I should build.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MCP gives Claude Code tools. You still need to give it a job.&lt;/p&gt;

&lt;h2&gt;
  
  
  When not to use an SEO MCP server
&lt;/h2&gt;

&lt;p&gt;Do not use an SEO MCP server for every writing task.&lt;/p&gt;

&lt;p&gt;You probably do not need live SEO tools when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you are editing brand voice&lt;/li&gt;
&lt;li&gt;you are cleaning grammar&lt;/li&gt;
&lt;li&gt;you are writing internal docs&lt;/li&gt;
&lt;li&gt;you already have the source data in the repo&lt;/li&gt;
&lt;li&gt;the page is not search-led&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use the server when the decision depends on current search context.&lt;/p&gt;

&lt;p&gt;That includes SERP intent, competitor page shape, keyword opportunities, AI Overview visibility, rank tracking, local visibility, or backlink signals.&lt;/p&gt;

&lt;h2&gt;
  
  
  The operator checklist
&lt;/h2&gt;

&lt;p&gt;Before you call the setup done:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add the MCP server.&lt;/li&gt;
&lt;li&gt;Confirm it appears in &lt;code&gt;/mcp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run one live SERP prompt.&lt;/li&gt;
&lt;li&gt;Run one production-shaped content brief prompt.&lt;/li&gt;
&lt;li&gt;Save the working prompt in your repo or team docs.&lt;/li&gt;
&lt;li&gt;Add project/workflow metadata if multiple people will use it.&lt;/li&gt;
&lt;li&gt;Decide who reviews the SEO recommendation before it ships.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last step matters.&lt;/p&gt;

&lt;p&gt;An SEO MCP server gives Claude Code fresher context. It does not remove judgment.&lt;/p&gt;

&lt;p&gt;The best workflow is not “agent writes, human publishes.”&lt;/p&gt;

&lt;p&gt;The better workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;agent gathers live SEO context
agent drafts the recommendation
human checks the tradeoffs
agent helps implement the approved changes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is where MCP starts to feel useful.&lt;/p&gt;

&lt;p&gt;Not as another dashboard.&lt;/p&gt;

&lt;p&gt;As a tool layer inside the place where the work is already happening.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code MCP docs: &lt;a href="https://code.claude.com/docs/en/mcp" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MCP transport spec: &lt;a href="https://modelcontextprotocol.io/specification/2025-06-18/basic/transports" rel="noopener noreferrer"&gt;https://modelcontextprotocol.io/specification/2025-06-18/basic/transports&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AgentSEO Claude Code integration: &lt;a href="https://www.agentseo.dev/integrations/claude-code" rel="noopener noreferrer"&gt;https://www.agentseo.dev/integrations/claude-code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AgentSEO MCP landing page: &lt;a href="https://www.agentseo.dev/seo-mcp-server" rel="noopener noreferrer"&gt;https://www.agentseo.dev/seo-mcp-server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AgentSEO npm package: &lt;a href="https://www.npmjs.com/package/@agentseo/mcp-server" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@agentseo/mcp-server&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mcp</category>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Building an SEO MCP server for Claude Code and Codex</title>
      <dc:creator>AgentSEO-dev</dc:creator>
      <pubDate>Mon, 20 Jul 2026 16:18:18 +0000</pubDate>
      <link>https://dev.to/agentseodev/building-an-seo-mcp-server-for-claude-code-and-codex-ghj</link>
      <guid>https://dev.to/agentseodev/building-an-seo-mcp-server-for-claude-code-and-codex-ghj</guid>
      <description>&lt;h1&gt;
  
  
  Building an SEO MCP server for Claude Code and Codex
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftvmxcs4x1h75z8b2lo0d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftvmxcs4x1h75z8b2lo0d.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most SEO APIs were built for dashboards.&lt;/p&gt;

&lt;p&gt;That is not a criticism. Dashboards are useful. A marketer opens a report, checks rankings, reviews keywords, exports a CSV, and decides what to do next.&lt;/p&gt;

&lt;p&gt;But that is not how work feels inside Claude Code, Codex, Cursor, or a custom AI agent.&lt;/p&gt;

&lt;p&gt;Inside an agent workflow, the shape is different. You do not want to stop, open a separate SEO tool, copy data into the chat, ask the model to reason over it, then move back to your editor.&lt;/p&gt;

&lt;p&gt;You want the agent to ask for live search data directly.&lt;/p&gt;

&lt;p&gt;That is why we shipped AgentSEO as an MCP server.&lt;/p&gt;

&lt;p&gt;This post is a practical breakdown of what changed, how the server is installed, and why I think SEO APIs are going to move from dashboard-first products to agent-native workflow tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1raxczihu9yngz4bdchx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1raxczihu9yngz4bdchx.png" alt=" " width="799" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The buyer problem is not only data access
&lt;/h2&gt;

&lt;p&gt;SEO teams already have data.&lt;/p&gt;

&lt;p&gt;They have rank trackers, backlink tools, keyword databases, crawl reports, and a growing pile of AI visibility screenshots. The problem is that the data often stops one step before the work.&lt;/p&gt;

&lt;p&gt;A typical SEO API gives you a payload.&lt;/p&gt;

&lt;p&gt;Then your team still has to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which result matters?&lt;/li&gt;
&lt;li&gt;Which page should we update first?&lt;/li&gt;
&lt;li&gt;What is the intent behind this SERP?&lt;/li&gt;
&lt;li&gt;What should the writer or developer actually change?&lt;/li&gt;
&lt;li&gt;Is this useful for an agent, or does it need another parser layer?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last question is the one more API teams should ask.&lt;/p&gt;

&lt;p&gt;If the output still needs a parser layer, a polling layer, and a summarization layer before an agent can act, the API is not finished for agent workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  What an SEO MCP server should do
&lt;/h2&gt;

&lt;p&gt;MCP gives clients a standard way to discover and call tools. The official MCP registry describes itself as a list of MCP servers for clients, like an app store for MCP servers.&lt;/p&gt;

&lt;p&gt;That matters because the install surface is moving closer to the place where developers already work.&lt;/p&gt;

&lt;p&gt;For SEO, I do not think the best MCP server is just a thin wrapper around raw endpoints. That is a start, but it misses the point.&lt;/p&gt;

&lt;p&gt;A useful SEO MCP server should expose workflow-shaped tools.&lt;/p&gt;

&lt;p&gt;Instead of only returning raw SERP data, it should help an agent do jobs like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;analyze SERP intent&lt;/li&gt;
&lt;li&gt;find content gaps&lt;/li&gt;
&lt;li&gt;draft a content brief&lt;/li&gt;
&lt;li&gt;check local visibility&lt;/li&gt;
&lt;li&gt;review title and meta opportunities&lt;/li&gt;
&lt;li&gt;inspect AI Overview presence&lt;/li&gt;
&lt;li&gt;identify backlink opportunities&lt;/li&gt;
&lt;li&gt;QA a draft before publishing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent should be able to move from question to action without making the user become the integration layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built into AgentSEO
&lt;/h2&gt;

&lt;p&gt;AgentSEO now exposes 45 MCP tools for live SEO workflows.&lt;/p&gt;

&lt;p&gt;The tools cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SERP analysis&lt;/li&gt;
&lt;li&gt;keyword research&lt;/li&gt;
&lt;li&gt;content briefs&lt;/li&gt;
&lt;li&gt;content refresh briefs&lt;/li&gt;
&lt;li&gt;backlink analysis&lt;/li&gt;
&lt;li&gt;rank tracking&lt;/li&gt;
&lt;li&gt;local SEO checks&lt;/li&gt;
&lt;li&gt;sitemap and technical QA&lt;/li&gt;
&lt;li&gt;AI Overview extraction&lt;/li&gt;
&lt;li&gt;AI search visibility monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part is not the number. A big tool count can become noise fast.&lt;/p&gt;

&lt;p&gt;The important part is that the tools map to repeatable SEO jobs. A developer, growth engineer, or technical SEO should be able to give the agent a real task and get back something useful enough to act on.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use AgentSEO to analyze the SERP for "best seo api" in the United States.
Identify the dominant intent, list the strongest competing angles,
and create a content brief for a comparison page.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is different from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fetch the SERP payload and make me figure out the rest.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second version is data access. The first version is closer to workflow infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install path: hosted MCP
&lt;/h2&gt;

&lt;p&gt;For clients that support remote MCP servers, AgentSEO can run over hosted Streamable HTTP.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http agentseo https://www.agentseo.dev/mcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer sk_live_your_key"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"x-project-id: client-alpha"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"x-workflow-id: nightly-refresh"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The extra headers are optional workflow metadata. I like keeping them in the example because production agent workflows need traceability. When an agent calls a paid or rate-limited API, you eventually want to know which project and workflow made the call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install path: local stdio MCP
&lt;/h2&gt;

&lt;p&gt;For local MCP clients, the npm package works through stdio.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"agentseo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@agentseo/mcp-server"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"AGENTSEO_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk_live_your_key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"AGENTSEO_API_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.agentseo.dev/api/v1"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That gives teams a clean local path without forcing every client through the hosted endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  The GTM lesson: MCP directories are becoming agent app stores
&lt;/h2&gt;

&lt;p&gt;The product work was only half the launch.&lt;/p&gt;

&lt;p&gt;The other half was distribution.&lt;/p&gt;

&lt;p&gt;If you ship an MCP server and only mention it in your docs, you are making discovery too hard. Developers are already browsing MCP directories to find tools their agents can use.&lt;/p&gt;

&lt;p&gt;For AgentSEO, we published or submitted to:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Official MCP Registry&lt;/td&gt;
&lt;td&gt;Live as &lt;code&gt;dev.agentseo.www/agentseo-mcp&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;npm&lt;/td&gt;
&lt;td&gt;Live as &lt;code&gt;@agentseo/mcp-server&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smithery&lt;/td&gt;
&lt;td&gt;Live, 45 tools detected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Glama&lt;/td&gt;
&lt;td&gt;Hosted connector live, 45 tools verified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mcp.so&lt;/td&gt;
&lt;td&gt;Submitted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;awesome-mcp-servers&lt;/td&gt;
&lt;td&gt;PR submitted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PulseMCP&lt;/td&gt;
&lt;td&gt;Waiting on official registry sync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP Market&lt;/td&gt;
&lt;td&gt;Submitted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP Server Spot&lt;/td&gt;
&lt;td&gt;Submitted&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is the new shelf space.&lt;/p&gt;

&lt;p&gt;Not all of it will convert. Some directories will send little traffic. Some will take weeks to index. Some will matter mostly as trust signals.&lt;/p&gt;

&lt;p&gt;But the intent is unusually clean.&lt;/p&gt;

&lt;p&gt;Someone browsing an MCP directory is not vaguely interested in AI. They are looking for a tool their agent can install.&lt;/p&gt;

&lt;p&gt;That is a better starting point than most launch traffic.&lt;/p&gt;

&lt;h2&gt;
  
  
  The product lesson: expose jobs, not endpoints
&lt;/h2&gt;

&lt;p&gt;This is the part I would underline for any API company.&lt;/p&gt;

&lt;p&gt;Do not start by asking, "How do we expose every endpoint through MCP?"&lt;/p&gt;

&lt;p&gt;Start with a smaller question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What are the 5 jobs an agent should be able to complete without leaving the workflow?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For an SEO API, those jobs might be:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Analyze a live SERP.&lt;/li&gt;
&lt;li&gt;Find keyword or content gaps.&lt;/li&gt;
&lt;li&gt;Create an implementation-ready brief.&lt;/li&gt;
&lt;li&gt;QA a draft before publishing.&lt;/li&gt;
&lt;li&gt;Track whether visibility moved.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is enough for a useful first version.&lt;/p&gt;

&lt;p&gt;The raw endpoint map can come later. If you start with the endpoint map, you risk shipping a server that is technically complete and practically annoying.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple checklist for API teams
&lt;/h2&gt;

&lt;p&gt;If you are thinking about turning your API into an MCP server, I would start here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pick one user: developer, agency operator, growth engineer, analyst.&lt;/li&gt;
&lt;li&gt;Pick one repeatable workflow.&lt;/li&gt;
&lt;li&gt;Expose the few tools needed to complete that workflow.&lt;/li&gt;
&lt;li&gt;Make the install command copy-pasteable.&lt;/li&gt;
&lt;li&gt;Publish to the official MCP registry.&lt;/li&gt;
&lt;li&gt;Add one directory listing where your buyers already browse.&lt;/li&gt;
&lt;li&gt;Test with a real prompt, not only a protocol inspector.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The inspector can tell you the server works.&lt;/p&gt;

&lt;p&gt;A real prompt tells you whether the product works.&lt;/p&gt;

&lt;h2&gt;
  
  
  The larger shift
&lt;/h2&gt;

&lt;p&gt;APIs used to feed dashboards.&lt;/p&gt;

&lt;p&gt;Now they can feed agents.&lt;/p&gt;

&lt;p&gt;That does not make dashboards obsolete. It does mean API products need a second interface: one designed for software agents that can plan, call tools, inspect results, and continue the workflow.&lt;/p&gt;

&lt;p&gt;For AgentSEO, MCP is that interface.&lt;/p&gt;

&lt;p&gt;The bet is simple: if AI agents are where more technical SEO and growth work happens, then SEO infrastructure should be available inside those agents.&lt;/p&gt;

&lt;p&gt;Not as a pasted export.&lt;/p&gt;

&lt;p&gt;As a tool the agent can actually use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AgentSEO MCP landing page: &lt;a href="https://www.agentseo.dev/seo-mcp-server" rel="noopener noreferrer"&gt;https://www.agentseo.dev/seo-mcp-server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AgentSEO quickstart: &lt;a href="https://www.agentseo.dev/docs/quickstart" rel="noopener noreferrer"&gt;https://www.agentseo.dev/docs/quickstart&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm package: &lt;a href="https://www.npmjs.com/package/@agentseo/mcp-server" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@agentseo/mcp-server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Official MCP registry docs: &lt;a href="https://github.com/modelcontextprotocol/registry/tree/main/docs" rel="noopener noreferrer"&gt;https://github.com/modelcontextprotocol/registry/tree/main/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Glama connector: &lt;a href="https://glama.ai/mcp/connectors/dev.agentseo.www/agentseo-mcp" rel="noopener noreferrer"&gt;https://glama.ai/mcp/connectors/dev.agentseo.www/agentseo-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Smithery listing: &lt;a href="https://smithery.ai/servers/agentseo/agentseo-mcp" rel="noopener noreferrer"&gt;https://smithery.ai/servers/agentseo/agentseo-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mcp</category>
      <category>seo</category>
      <category>ai</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
