SEO Utils MCPCommand Library โ†’
How the setup works

Our live
SEO engine.

We put the SEO Utils tool on a 24/7 server with 63 tools behind an MCP server. Here is the whole thing in plain pictures: what it is, where it lives, and the three ways you reach it. Copy, paste, go.

Claude (English)seo-utils CLIPublic URL
๐Ÿ’ฌ Claude
>_ CLI
๐Ÿ“ฑ web
โ†“ all hit โ†“
๐Ÿ–ฅ๏ธ SEO Utils MCP ยท Hetzner ยท 63 tools
The Big PictureStart here

One server, three doors

One server, three doors

We paid for the SEO Utils tool and put it on a server that runs 24/7. It exposes 63 SEO tools (keywords, SERPs, backlinks, traffic, rank tracking) over something called an MCP server. You never log into a dashboard. You reach that one server three different ways, and they all hit the same live data.

  • Door 1 โ€” Claude: ask in plain English, it calls the tools.
  • Door 2 โ€” the seo-utils CLI: raw commands, JSON back, no Claude.
  • Door 3 โ€” the public URL: connect from the web or your phone.
Same engine, same 63 tools, same token. Only the door changes.
FundamentalsThe one idea to get

What "the MCP" actually is

What "the MCP" actually is

MCP is just the pipe between an AI and a set of tools. The SEO Utils app publishes its 63 tools through an MCP server. Anything that speaks MCP (Claude, our CLI) can connect to that pipe and call the tools. You never touch the pipe itself. You ask for an outcome; the tool on the other end does the work and hands back data.

  • Think of it as a phone line to a senior SEO analyst.
  • 63 tools on the other end, all backed by live DataForSEO.
  • Claude picks the right tool automatically when you ask.
Under the HoodWhere it lives

The engine on Hetzner

The engine on Hetzner

The SEO Utils desktop app runs headless on a Hetzner server, kept alive 24/7 by systemd so it survives reboots. Its MCP server listens locally on port 19515. DataForSEO is wired in for live numbers. It is licensed and verified end-to-end, so the tools return real data, not demos.

  • App v1.47.4, headless, auto-restart (systemd).
  • 63 tools on 127.0.0.1:19515, Bearer-token protected.
  • DataForSEO connected = live keyword, SERP, backlink data.
It runs on the server, not your laptop. Close your terminal and it keeps running.
How You Use ItPick your door

Claude as client vs the raw CLI

Claude as client vs the raw CLI

Two ways to call the same server. Through Claude, you talk in English and Claude runs the tools for you, great for reports and exploring, but it spends Claude tokens. Through the seo-utils CLI you run a command and get JSON straight back, no Claude in the loop, free, and perfect for scripts, cron, and automation.

  • Want a narrated report or to explore? Use Claude.
  • Want raw data in a script or cron job? Use the CLI.
  • Both share the same endpoint and the same token.
Claude DesktopDoor 1 โ€” ask Claude (plain English)
using seo-utils, what's the search volume, CPC and difficulty for plumber dallas and emergency plumber dallas? put it in a table.
Terminal ยท Claude CodeDoor 2 โ€” the CLI (raw JSON)
seo-utils call check_keyword_metrics '{"keywords":["plumber dallas"],"location":"United States"}'
How You Use ItThe scriptable door

The seo-utils CLI

The seo-utils CLI

A tiny zero-dependency command you run from any terminal. Under the hood it does the MCP handshake (initialize, then list or call a tool), parses the streamed reply, and prints JSON. It reads the endpoint and token from a local .env. It is npm-linked, so seo-utils works from anywhere on the machine.

  • list โ€” see all 63 tools.
  • schema <tool> โ€” see exactly what a tool needs.
  • call <tool> '<json>' โ€” run any tool.
  • sql "<SELECT...>" โ€” query the local DB directly.
Heads up: the query_database tool's argument key is sql, not query.
Terminal ยท Claude CodeSee every tool
seo-utils list
Terminal ยท Claude CodeQuery the database directly
seo-utils sql "SELECT name FROM sqlite_master WHERE type='table'"
How You Use ItOff your machine

Reach it from anywhere

Reach it from anywhere

The server is exposed at a public HTTPS address through a Cloudflare tunnel, locked behind the Bearer token (no token, you get a 401). That means you can connect claude.ai on the web or your phone to the same engine, or point cloud automation (n8n, Make) at it, without anything running on your laptop.

  • Public URL via Cloudflare tunnel, token-gated.
  • Add it as a connector in claude.ai (web + mobile).
  • The token is a secret. Share it privately, never in a repo.
Terminal ยท Claude CodeConnect any Claude Code to it (user scope)
claude mcp add --transport http --scope user seo-utils https://seoutils-mcp.imerlino.com/mcp --header "Authorization: Bearer <YOUR_TOKEN>"
Keeping It TidyNever lose the thread

Pause and resume

Pause and resume

The whole setup lives in its own project folder with a CLAUDE.md (the map) and a .continue-here.md handoff. Open Claude there, type /pause to save the full state, walk away, and later /resume to pick up exactly where you left off. The repo is private on GitHub; the token stays in a gitignored .env, never committed.

  • CLAUDE.md = the project map Claude reads on entry.
  • /pause writes a handoff, /resume reads it back.
  • Private repo + gitignored .env = token never leaks.
Folder: D:/ClaudeDev/00_GITHUB/seoutils-mcp ยท repo is private.

Keep the commands handy

Every copy-paste command from this guide plus the real lookups, in one page you can bookmark.

Open the Command Library โ†’