ContextBolt SEO Free for 7 days. Keywords, SERPs, backlinks and AI visibility, inside Claude. SEO data inside Claude. Start free trial
ContextBolt SEO in Goose · 3 minutes · Beginner

ContextBolt SEO in Goose (2026 Setup Guide)

One streamable_http extension, and Goose answers with live keyword data.

7-day free trial · then $35/mo · 1,000 credits
SEO MCP server for Claude, Cursor & Codex Goose · ContextBolt connected live data
What should I write next?
Used keyword_research
email marketing toolsKD 49 · 4,400/mo
email automationKD 31 · 2,900/mo
welcome email examplesKD 22 · 1,600/mo

Trusted by 300+ users across the globe
WORKS IN

It connects in 3 minutes.

  1. Connect your ContextBolt account For OAuth, add https://seo.contextbolt.app/mcp and complete sign-in with your SEO account email and email code, then allow access. If your client cannot complete OAuth, follow the personal-URL compatibility steps on this page. Get that private URL from your ContextBolt SEO welcome email. Use one connection method.
  2. Personal-URL setup: Run goose configure In the terminal run goose configure, choose Add Extension, then Remote Extension (Streamable HTTP). Give it the name contextbolt-seo and paste your MCP URL as the URI. This is the safest route because it writes the YAML for you.
  3. Or edit config.yaml by hand Open ~/.config/goose/config.yaml and add contextbolt-seo under extensions with type streamable_http and a uri field. Note that Goose uses uri, not url, and streamable_http with an underscore, where JetBrains uses a hyphen.
  4. Personal-URL setup: Validate and connect Search Console Run goose info -v to confirm the extension loaded, then start a session and ask 'what SEO tools do you have?'. Ask 'connect my Google Search Console' and approve read-only access to read your real clicks and positions, free and without spending credits.

Then ask it something real.

“What should this page target, and who already ranks for it?” Chains keyword_research and serp_overview so the target and the competition arrive in one answer.
“How hard is 'open source ai agent' to rank for?” Calls keyword_difficulty and returns a score plus the referring domains you would realistically need.
“Find keyword gaps against our closest competitor” Runs competitor_keywords to name the rivals, then ranked_keywords on both sides, so the gap arrives ready to become a content plan.
“Audit this URL and write the fixes to a file” Calls page_audit, then uses Goose's file access to save the checklist where you can work through it.

What it can do in Goose.

  • Run keyword research in plain English from the terminal
  • Score how hard a keyword is to rank for before you write
  • See who ranks in Google's top 10 for any query
  • Size up any domain's traffic, keywords, and authority
  • Find the keywords a competitor already ranks for
  • Spot backlink gaps: who links to rivals but not you
  • Connect your own Google Search Console, read-only and free
  • Get a private SEO Dashboard that fills itself with your research, free

The longer story.

Goose is Block’s open-source agent, and it was designed around MCP from the beginning rather than having support bolted on later. That shows in the setup: remote streamable HTTP extensions are a first-class concept, so ContextBolt SEO connects without a bridge or a proxy.

The easy route: goose configure

Run goose configure, choose Add Extension, then Remote Extension (Streamable HTTP). Give it the name contextbolt-seo and paste your MCP URL as the URI.

This is worth doing even if you are comfortable in YAML, because it writes the correct field names for you and Goose has two that catch people out.

The config.yaml entry

Use https://seo.contextbolt.app/mcp and complete the browser sign-in if your client supports remote MCP with OAuth. Enter your SEO account email and email code, then allow the connection. For a client that cannot complete that flow, use the personal-URL compatibility configuration shown here. Copy the full private URL from your ContextBolt SEO welcome email and replace the example URL with it.

If you would rather edit it directly, open ~/.config/goose/config.yaml:

extensions:
  contextbolt-seo:
    enabled: true
    type: streamable_http
    name: contextbolt-seo
    description: Live keyword, SERP, and competitor data
    uri: https://seo.contextbolt.app/mcp/YOUR_TOKEN
    timeout: 60

Two field names matter. Goose uses uri, where almost every other MCP client uses url. And it uses streamable_http with an underscore, where JetBrains uses a hyphen and VS Code just says http.

Both describe exactly the same thing, which is what makes them dangerous. A config copied from a working Cursor or VS Code setup looks right, parses fine, and produces no tools. If the extension shows as enabled and nothing appears, check those two lines before anything else.

Run goose info -v after any hand edit to confirm the file still parses.

If you use Berd, this page is still the one you want

Berd is Block’s desktop app for working with AI agents, open-sourced on August 18, 2026 under Apache 2.0. It is not a separate agent. It bundles a pinned Goose binary as a sidecar and talks to it over the Agent Client Protocol, so the thing running your tools is Goose.

That has a practical consequence worth knowing before you set anything up. Berd reads and writes the same config.yaml Goose does, at Goose’s own config directory. So the ContextBolt SEO extension is not something you add twice. Add it in either place and it is there in both.

  • Already set it up in the Goose CLI? Open Berd and it is there. Nothing else to do.
  • Starting in Berd? Add it through Berd’s own extensions UI, or run goose configure and restart Berd.

The two field-name gotchas above apply exactly the same way, because it is the same file. uri, not url. streamable_http with an underscore.

Why the terminal suits SEO work

Goose runs where your project runs, which makes the research loop unusually tight. You ask what a page should target, the answer comes back in the terminal, and the lookup lands on your SEO Dashboard so it is still there tomorrow.

Plan a page: keyword research plus difficulty, before a word is written.

Find the gaps: competitor_keywords names the rivals, then ranked_keywords on your site and theirs shows what they rank for and you do not, which is usually the fastest way to fill a content backlog.

Audit what shipped: page_audit against a live URL returns a fix list you can work through in the same session.

Read your own data free: the Search Console tools never spend credits, so checking what moved this month costs nothing.

Because your MCP URL carries a personal token, treat config.yaml like any other file holding a credential. The full tour of tools is in the ContextBolt SEO guide, and the background on how an SEO MCP server works is worth reading first if this is new.

Common questions.

Is it uri or url?

uri. Goose extensions use a uri field where almost every other MCP client uses url. It is a small difference that makes a config copied from Cursor or VS Code fail silently. If the extension shows as enabled but no tools appear, check that field first.

Is it streamable_http or streamable-http?

streamable_http, with an underscore. JetBrains uses streamable-http with a hyphen and VS Code just uses http. All three refer to the same transport. Between this and the uri field, most failed Goose setups come down to a value copied from a working config in another tool.

Should I use goose configure or edit the YAML?

Use goose configure for the first setup, because it writes correct YAML and saves you from both gotchas above. Edit ~/.config/goose/config.yaml afterwards when you want to tune the timeout, rename the extension, or add headers. Run goose info -v after any hand edit to confirm it still parses.

Does Goose need a bridge for remote servers?

No. Goose was co-designed around MCP from the start and supports remote streamable HTTP extensions natively, including OAuth where a server needs it. ContextBolt SEO carries its token in the URL path, so no auth block is required.

Where does Goose save the research?

To your ContextBolt account. Every lookup lands on your SEO Dashboard, a private page you can sign in to from any machine. Nothing is written to your disk, and saving never counts against your 1,000 monthly credits.

Does this work in Berd?

Yes, and you only set it up once. Berd bundles a pinned Goose binary as a sidecar and reads the same config.yaml, so an extension added in the Goose CLI is already present in Berd, and one added in Berd's extensions UI is present in the CLI. The uri and streamable_http field names apply identically.

How many credits does a question cost?

Research tools cost one credit each. Backlink tools cost three each. An agent chaining several calls in one task spends more, so watch your first few sessions. Checking your balance is always free.

See it in your own chat.

Seven days free, 100 trial credits, then $35 a month. Cancel before it ends and pay nothing.

Start your free trial See everything ContextBolt SEO does