<?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: Matthias Ramahi</title>
    <description>The latest articles on DEV Community by Matthias Ramahi (@liaxim).</description>
    <link>https://dev.to/liaxim</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%2F4116455%2F3b0094e2-4ceb-4de9-b102-5c2c7c1e23ad.jpg</url>
      <title>DEV Community: Matthias Ramahi</title>
      <link>https://dev.to/liaxim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/liaxim"/>
    <language>en</language>
    <item>
      <title>Connecting Claude Code to an SEO MCP server, and what a safe first session looks like</title>
      <dc:creator>Matthias Ramahi</dc:creator>
      <pubDate>Thu, 08 Oct 2026 15:00:00 +0000</pubDate>
      <link>https://dev.to/liaxim/connecting-claude-code-to-an-seo-mcp-server-and-what-a-safe-first-session-looks-like-3olk</link>
      <guid>https://dev.to/liaxim/connecting-claude-code-to-an-seo-mcp-server-and-what-a-safe-first-session-looks-like-3olk</guid>
      <description>&lt;p&gt;Ask a coding agent which keywords your docs should target and it will happily give you a list with search volumes. The volumes are invented. The model has no idea how often a term is searched, where your pages rank, or which of your URLs return a 404. It fills the gap with plausible numbers, and plausible numbers are worse than none because they look like data.&lt;/p&gt;

&lt;p&gt;The Model Context Protocol (MCP) is the standard way to fix that: the agent calls tools on a server that has the real data. This post walks through connecting Claude Code to the Crawl Foundry SEO MCP server and, more importantly, through how to run the first session so nothing gets bought or changed by accident.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the server exposes
&lt;/h2&gt;

&lt;p&gt;Crawl Foundry is an SEO web app with keyword research, rank tracking, site audits and content tools. Its MCP server gives an agent access to the same functions inside one workspace: researching and organizing keywords, reading rankings and competitors, starting and reviewing site audits, checking backlinks and AI visibility, building SEO plans, and writing, scoring and optimizing content.&lt;/p&gt;

&lt;p&gt;The part worth understanding before you connect anything is the cost model, because some of those tools fetch fresh third-party data and that costs money. Every tool falls into one of four classes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free:&lt;/strong&gt; reading data already saved in your workspace&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay per use:&lt;/strong&gt; fresh data or generation, charged to your EUR balance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price first:&lt;/strong&gt; larger actions that need your approval or must fit inside the agent budget&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval only:&lt;/strong&gt; publishing, regardless of how high the budget is&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Adding the server
&lt;/h2&gt;

&lt;p&gt;The endpoint is &lt;code&gt;https://app.crawlfoundry.com/api/mcp&lt;/code&gt; and it speaks MCP over Streamable HTTP. For Claude Code, one command adds it at user scope:&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 &lt;span class="nt"&gt;--scope&lt;/span&gt; user crawl_foundry &lt;span class="s2"&gt;"https://app.crawlfoundry.com/api/mcp"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Codex has an equivalent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;codex mcp add crawl_foundry --url "https://app.crawlfoundry.com/api/mcp"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cursor and VS Code have one-click install links on the feature page, and any other client that supports Streamable HTTP works by pasting the address into its MCP settings.&lt;/p&gt;

&lt;p&gt;There is no API key in this setup. The first time the agent calls the server, your client opens the Crawl Foundry sign-in in the browser. You log in, see which workspace and permissions are requested and allow access. That is plain OAuth, which means no long-lived secret ends up in a dotfile, a shell history or a chat transcript.&lt;/p&gt;

&lt;h2&gt;
  
  
  One workspace per session
&lt;/h2&gt;

&lt;p&gt;If you manage several sites, this is the detail that matters most. Each MCP session works in exactly one workspace, and the agent has to confirm which one before it starts. Data from two clients never mixes in a single conversation, and grants and budgets apply per workspace.&lt;/p&gt;

&lt;p&gt;In practice the agent will ask, or you tell it up front: "Use the workspace for docs.example.com." If your organization has more than 25 workspaces, you use a workspace-specific address instead of the organization-wide one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first prompt should buy nothing
&lt;/h2&gt;

&lt;p&gt;Start with a question that reads saved data and changes nothing. Something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Show me the saved SEO overview for this workspace.
Don't buy new data and don't change anything.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does three things. It confirms the connection and the workspace. It shows you what is already stored, which on a fresh workspace may be very little. And it shows you how the agent reports gaps: the server returns explicit data gaps and coverage states instead of empty arrays the model might paper over, and a well-behaved agent will tell you "there is no stored ranking data yet" rather than guess.&lt;/p&gt;

&lt;p&gt;Only after that is it worth moving to a paid action, with the limit named in the prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Research keywords around "self-hosted analytics".
Show me the expected cost before you run anything.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Budgets with hard caps
&lt;/h2&gt;

&lt;p&gt;Out of the box, the agent budget is EUR 5 per action, EUR 10 per workspace per month and EUR 50 per organization per month. Owners and admins can change those numbers or switch the agent budget off, and only they manage connections and grants.&lt;/p&gt;

&lt;p&gt;Some actions sit outside any budget. Publishing, and changes to deployments, DNS, users or billing, always require explicit approval. An agent that runs in a loop can spend at most what you allowed; it cannot publish a draft to your CMS because it decided the draft was ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use the REST API instead
&lt;/h2&gt;

&lt;p&gt;MCP is designed for agents: the model chooses the tools. If you are writing your own automation, say a nightly job that pulls audit findings into a dashboard, the same functions are available through a versioned REST API with an OpenAPI description. API keys there are created and revoked by organization admins, each client is bound to one workspace, and the same EUR balance and cost classes apply. The REST side gets its own post later in this series.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things to check after the first session
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;claude mcp list&lt;/code&gt; and confirm the server shows as connected.&lt;/li&gt;
&lt;li&gt;In Crawl Foundry, look at the activity and cost log for the workspace. Every paid run shows up there with its cost.&lt;/li&gt;
&lt;li&gt;Revoke and reconnect once, so you know how to cut access quickly if you ever need to.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full setup for every client, the cost classes and the guardrails are documented on the &lt;a href="https://crawlfoundry.com/features/seo-mcp-server" rel="noopener noreferrer"&gt;Crawl Foundry SEO MCP server page&lt;/a&gt;. If you want to see what multi-step agent workflows look like on top of it, the &lt;a href="https://crawlfoundry.com/features/ai-agents" rel="noopener noreferrer"&gt;AI agents overview&lt;/a&gt; is the next stop. Crawl Foundry is pay-per-use without a subscription obligation, and the MCP server is included on every plan, including the free one.&lt;/p&gt;

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