For the complete documentation index, see llms.txt. This page is also available as Markdown.

🤖MCP Server (AI Integration)

The MCP Server lets you connect AI assistants like Claude, ChatGPT, Codex, Cursor, or any MCP-compatible client to your SEO data. Ask questions in plain English and get instant answers — no need to navigate dashboards or export reports manually.

Claude using SEO Utils to build an area demographics dashboard

MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external data sources. SEO Utils runs an MCP server locally on your machine — your data never leaves your computer.

Example Reports Generated by MCP

These reports were generated entirely by the MCP Server — one prompt, zero manual work:

What Can You Do With It?

Use Case
Example Prompt

Generate reports

"Generate a weekly SEO report for example.com"

Find weak pages

"Find pages with high impressions but low CTR"

Keyword cannibalization

"Which keywords have multiple pages competing?"

Ranking trends

"Show me my biggest ranking winners and losers this month"

Ranked-page changes

"Compare the captured HTML before and after this page was lost, and tell me which changes may have contributed"

Content gaps

"Find queries I'm ranking for but don't have dedicated pages"

Local SEO

"Generate a local SEO report for my business"

Multi-location analytics

"Compare my Haidilao hot pot rankings across all locations"

Client reports

"Create a professional client-ready report for example.com"

Keyword research

"Check keyword metrics for: seo tools, rank tracker"

SERP analysis

"What's ranking for 'seo tools' in Google?"

Backlink analysis

"Show me the backlinks for example.com"

Content gap

"Find keywords competitors rank for but I don't"

Backlink gap

"Find sites linking to competitors but not me"

Traffic analytics

"Show me the traffic overview for laravel.com"

Organic keywords

"What keywords does laravel.com rank for?"

Demographics

"Show me population and income data around my business"

Bulk analysis

"Compare organic traffic for laravel.com, symfony.com, and codeigniter.com"

NAP Finder

"Which domains have the most NAP citations for my business?"

Keyword explorer

"What are the keyword suggestions for 'keto diet' in the US?"

Saved keywords

"Create a keyword list called 'Competitors' and add: seo tools, rank tracker"

Grow rank tracker

"Add the top 20 content-gap keywords from my competitor into my example.com rank tracker"

Clean up rank tracker

"Remove these irrelevant keywords from my example.com rank tracker: foo, bar, baz"

Weight rank tracker keywords

"In my example.com rank tracker, make 'buy seo tools' count three times and set 'seo tools login' to Track only"

Automations

"Create an automation that exports PDF when my rank tracker finishes"

Indexing health

"How many of my pages are indexed? Which directories have the worst indexing rate?"

Indexing diagnostics

"Find pages with zero internal links that aren't indexed — orphan pages"

Internal link analysis

"Which pages have the most internal links pointing to them?"

Find internal links

"Find internal links for my five best priority pages on example.com — quote the cost first"

AI log analysis

"Which AI bots are violating my robots.txt? What questions is Perplexity asking about my site?"

Keyword insights

"Which keywords are trending up in my rank tracker?"

GA4 conversions

"Which pages generate the most conversions from organic search?"

Custom queries

"How many keywords am I tracking across all reports?"

Manage workspaces

"Create a new workspace called Client A" or "In the Client A workspace, create a rank tracker for clienta.com"

SEO Tests

"Create a split test on example.com comparing /pricing vs /pricing-v2 — 50/50 traffic, hypothesis is the new layout will lift CTR"

Local rank tracking

"Create a GMB rank tracker for Haidilao Hot Pot in Bellevue, WA — 5x5 grid at 500m radius, tracking 'hot pot bellevue' and 'best chinese bellevue', weekly on Mondays 9am Pacific"

AI visibility tracking

"Create an LLM rank tracker for my brand Acme (variants: Acme, Acme Inc) tracking 'best crm software' and 'top crm tools' in ChatGPT and Google AI Overview, weekly"

Review monitoring

"Start tracking the Google reviews for Haidilao Hot Pot Bellevue — pull the 200 most recent reviews and tell me which ones have no owner response"

Citation discovery

"Run a NAP Finder for Monsoon Seattle at 615 19th Avenue East, phone (206) 325-2111, then show me which directories cite the business"

Content briefs

"Create a content struct for 'keto meal plan', wait for the analysis, then generate an AI outline with GPT and write an article draft from it"

Keyword clustering

"Cluster these 50 keto keywords by SERP similarity and tell me how many pages I need to cover them — use the DataForSEO SERP API"

Entity analysis

"Run an NLP analysis on my keto guide and my competitor's page with TextRazor — which entities do they cover that I don't?"

The MCP server gives the AI read-only access to your database, can fetch live data from external APIs (keyword metrics, SERP results, backlinks), and can manage your saved keyword lists.

Requirements

  • A valid SEO Utils license key

  • MCP Access (one-time purchase)

Setting Up the MCP Server

1

Purchase MCP Access

Go to Settings → Services and scroll down to the MCP Server (AI Integration) section. Click "Purchase MCP Access" to complete the one-time purchase via Stripe.

Purchase MCP Access button in Settings

Alternatively, you can purchase MCP access directly from your browser at app.seoutils.app/mcp/purchase — enter your license key and complete the checkout.

MCP access is a one-time purchase with unlimited updates — no subscription. It's tied to your license key, works on all devices associated with your license, and cannot be transferred. An active (non-expired) SEO Utils license is required.

2

Refresh Purchase Status

After completing your purchase, go back to Settings → MCP Server and click the "Refresh" button to verify your purchase. This confirms your MCP access is active.

Click Refresh to verify your purchase
3

Enable the MCP Server

Once your purchase is verified, toggle "Enable MCP Server" to start the server. You should see the status change to Running (port 19515).

MCP Server running, with the Connect an AI app picker below
4

Connect your AI app

Under Connect an AI app, pick your app and follow its steps, described below.

Connect an AI app with Claude Desktop & Cowork selected

Connecting to AI Assistants

In SEO Utils, go to Settings → MCP Server and use Connect an AI app: pick your app, and SEO Utils shows exactly what to do (usually one click), then how to add the SEO Utils skill. Every command has its own Copy button, already filled in with the location of SEO Utils on your computer.

App
How it connects
Requires Node.js?
Requires public URL?

Claude Desktop & Cowork

One click: Install in Claude Desktop

No

No

Claude Code

One click: Add to Claude Code

No

No

OpenAI Codex (ChatGPT desktop app, CLI, IDE)

One click: Add to Codex

No

No

OpenCode (CLI, desktop app, IDE)

One click: Add to OpenCode

No

No

Cursor

One click: Add to Cursor

No

No

VS Code (GitHub Copilot)

One click: Add to VS Code

No

No

OpenClaw

One command

No

No

Grok Build (CLI coding agent)

One command

No

No

Google Antigravity

Paste a config

No

No

Perplexity (Mac)

Paste a command

No

No

ChatGPT desktop app

One click: Add to Codex (shared MCP servers)

No

No

n8n / Make

HTTP with the auth token

No

Yes (HTTPS), unless n8n runs on the same computer

Claude Web (claude.ai)

Custom connector, token via Request headers (beta)

No

Yes (HTTPS)

ChatGPT (web), Grok (grok.com)

Not supported yet

—

—

How the local apps connect. Every app down to Perplexity starts SEO Utils itself as its MCP server (the SEO Utils program with mcp-stdio). That needs no Node.js and puts no auth token in the app's config, so rotating the token doesn't break it. The app can also start before SEO Utils: if SEO Utils isn't open, the AI is told to open it, and it works as soon as SEO Utils is running.

Claude Desktop & Cowork
  1. In Connect an AI app, choose Claude Desktop & Cowork

  2. Click "Install in Claude Desktop"

  3. Restart Claude Desktop to apply changes. On Windows, fully quit it first (tray icon or Task Manager)

You'll see SEO Utils under Settings → Connectors in Claude Desktop. It works in Cowork on this computer too.

Claude Desktop can start before SEO Utils. Open SEO Utils whenever you want to use it; there's no need to restart Claude Desktop.

Claude Code
  1. In Connect an AI app, choose Claude Code

  2. Click "Add to Claude Code". SEO Utils is added for all your projects

  3. Start a new Claude Code session

Prefer the terminal? Copy the command shown under the button and run it. On a Mac it looks like this:

OpenAI Codex (ChatGPT Desktop App, CLI & IDE Extension)

The ChatGPT desktop app (Codex), the Codex CLI and the IDE extension share one config file: ~/.codex/config.toml (Windows: %USERPROFILE%\.codex\config.toml).

  1. In Connect an AI app, choose OpenAI Codex

  2. Click "Add to Codex". Only the SEO Utils entry in config.toml changes; your other settings and comments are kept. The entry lets SEO Utils tools run for up to 15 minutes. Without it, Codex stops any tool after 60 seconds

  3. In the app, open the MCP settings and select Restart. In the CLI, start a new session; in the IDE extension, restart the extension

Added SEO Utils to Codex with an earlier version? Click "Add to Codex" again to get the 15-minute timeout.

Prefer the terminal? Copy the codex mcp add seo-utils -- … mcp-stdio command shown under the button and run it. The command can't set the timeout, so then open config.toml and add this line under [mcp_servers.seo-utils]:

If Add to Codex says config.toml couldn't be read, the file has an error, and SEO Utils leaves it unchanged. Fix the file, or run the command instead.

OpenCode (CLI, Desktop App & IDE Extension)

The OpenCode CLI, desktop app and IDE extension share one config folder: ~/.config/opencode (Windows: %USERPROFILE%\.config\opencode).

  1. In Connect an AI app, choose OpenCode

  2. Click "Add to OpenCode". SEO Utils adds itself to opencode.json in that folder, or to opencode.jsonc if that's the file you use. Your other settings and comments are kept

  3. Restart OpenCode. To check, run opencode mcp list: seo-utils shows as connected

Prefer to edit the file yourself? Copy the config shown under the button and add its seo-utils entry to the mcp section of your config. On a Mac it looks like this:

Cursor
  1. In Connect an AI app, choose Cursor

  2. Click "Add to Cursor". Cursor opens and asks you to confirm

  3. Confirm the install in Cursor

VS Code (GitHub Copilot)
  1. In Connect an AI app, choose VS Code

  2. Click "Add to VS Code". VS Code opens and asks you to confirm

  3. Confirm the install and, when prompted, that you trust the server. Then use SEO Utils from Copilot Chat in agent mode

OpenClaw
  1. In Connect an AI app, choose OpenClaw and copy the command. On a Mac it looks like this:

  1. Run it in a terminal. OpenClaw applies the change without a restart; the next turn uses SEO Utils

  2. Check the connection with openclaw mcp doctor seo-utils --probe

Grok Build (xAI coding agent)
  1. In Connect an AI app, choose Grok Build and copy the command. On a Mac it looks like this:

  1. Run it in a terminal, then press r in /mcps

Grok Build also reads Claude Code's MCP servers. If you already added SEO Utils to Claude Code, it's there already.

Google Antigravity
  1. In Connect an AI app, choose Google Antigravity and copy the config. On a Mac it looks like this:

  1. Add it to ~/.gemini/config/mcp_config.json, which Antigravity 2.0, the Antigravity IDE and the CLI share. In the IDE, open … → MCP Servers → Manage MCP Servers → View raw config. (In Antigravity 2.0, Add MCP opens the MCP Store, so edit the file for a custom server.) If the file already lists servers, add the seo-utils entry inside its mcpServers

  2. Ask the agent "What tools do you have access to?" to confirm the connection

Perplexity (Mac — Local)

Perplexity's Mac app supports local MCP servers through a helper app.

  1. Open Perplexity → Settings → Connectors

  2. Install the PerplexityXPC helper when prompted

  3. Click Add Connector → Simple tab

  4. Set Server Name to SEO Utils

  5. In SEO Utils, choose Perplexity in Connect an AI app, copy the command and paste it as the Command

  6. Click Save and wait for status to show Running

  7. Go to Perplexity homepage and toggle your MCP on under Sources

Requires a Perplexity paid plan.

ChatGPT

ChatGPT desktop app: it runs local MCP servers from the same list as Codex (Settings → MCP servers, stored in ~/.codex/config.toml). In SEO Utils, choose OpenAI Codex in Connect an AI app and click "Add to Codex", then select Restart in the ChatGPT app's MCP servers settings. See OpenAI Codex above.

ChatGPT on the web: not supported yet. Its custom connectors (Developer mode → ChatGPT Plugins) authenticate with OAuth or no authentication only, and SEO Utils requires its auth token on every request.

n8n / Make / Claude Web (claude.ai)

Requires a publicly accessible HTTPS URL and the auth token

Cloud apps cannot connect to localhost, so SEO Utils needs a public HTTPS address, and the app must send SEO Utils' auth token (Authorization: Bearer …) with every request.

  • n8n — its MCP nodes support a Bearer header. If n8n runs on the same computer as SEO Utils, use http://localhost:19515/mcp directly, no public URL needed: in Connect an AI app, choose Claude web, Grok, n8n, Make and copy the config with the URL and header

  • Make — its MCP Client app connects to a server URL with an access token

  • Claude Web (claude.ai) — go to Customize → Connectors → Add custom connector and enter the URL with /mcp appended. Claude can send the token only through Request headers (Authorization: Bearer YOUR_TOKEN_HERE), which is in beta for a limited set of organizations. Without it, the connector can't authenticate with SEO Utils. Custom connectors are on all Claude plans (Free: one connector); on Team and Enterprise, an Owner adds them

Getting a public HTTPS address

  • VPS with a reverse proxy — if SEO Utils runs on a VPS, set up a reverse proxy (Nginx on Linux, Caddy on any OS) with HTTPS pointing to 127.0.0.1:19515, and use your public URL (e.g., https://mcp.yourdomain.com/mcp)

  • Cloudflare Tunnel — use a named tunnel on your Cloudflare account (Cloudflare's guide) pointing to http://localhost:19515

The token is in SEO Utils Settings → MCP Server → Connect an AI app → Other MCP apps. A connection set up with the token stops working when you rotate it; update it with the new one.

Grok (grok.com)

Not supported yet. Grok's custom connectors (grok.com/connectors → New Connector → Custom) are available to all Grok users, but they authenticate with OAuth or API keys, and xAI documents no way to send SEO Utils' Authorization: Bearer token. Grok Build, xAI's coding agent, does connect: see Grok Build above.

Other MCP apps

In Connect an AI app, choose Other MCP apps. It shows two configs to copy:

  • For apps that start a local server (stdio): runs SEO Utils with mcp-stdio. No token, and it keeps working after a token rotation

  • For apps that connect by URL (HTTP): http://localhost:19515/mcp with the Authorization: Bearer … header. Update it after you rotate the token. To keep the connection in one workspace, add an X-SEO-Utils-Workspace header (see Working Across Client Workspaces)

Install our free skill to help your AI assistant choose the right MCP tool automatically. Without it, the AI sometimes calls the wrong tool — for example, fetching third-party API data when you ask about your own rank tracker reports.

The skill uses the open Agent Skills format (SKILL.md) and works across all major AI assistants. In SEO Utils, Connect an AI app shows the skill step for the app you pick (step 2).

App
How to add the skill
How to update it

Claude Desktop, Cowork, claude.ai

Plugin: Customize → Plugins → Add → Add marketplace → seoutilsapp/seo-utils-skills

Automatic with Sync automatically, or Check for updates

Claude Code

Plugin: two /plugin commands

Enable auto-update, or claude plugin update

Codex, Cursor, VS Code, OpenClaw, OpenCode

Install skill button

Click Install skill again

Google Antigravity

Install skill button

Click Install skill again

Grok Build

Install skill button

Click Install skill again

ChatGPT

Save skill ZIP, then upload

Upload the new ZIP

Perplexity

Save SKILL.md, then upload

Upload the new file

Claude Desktop / Cowork / claude.ai

The skill comes as a Claude plugin, so it updates from its source and reaches claude.ai, the desktop app, Cowork and Claude Code at once.

  1. In Claude, go to Customize → Plugins

  2. Click Add → Add marketplace and enter seoutilsapp/seo-utils-skills

  3. Install SEO Utils from that marketplace

Prefer to upload the skill? In SEO Utils, choose Claude Desktop & Cowork in Connect an AI app and click "Save skill ZIP". Then in Claude go to Customize → Skills → + → Create skill → Upload a skill. An uploaded skill doesn't update itself; don't install both.

Claude Code

Run these in Claude Code, one at a time:

Claude Code leaves auto-update off for marketplaces you add, so turn it on once: /plugin → Marketplaces → seo-utils → Enable auto-update.

If you installed the plugin in Claude Desktop or claude.ai, Claude Code already has it: plugins on your Claude account sync to Claude Code.

OpenAI Codex, Cursor, VS Code, OpenClaw & OpenCode

These apps all read the shared skills folder ~/.agents/skills.

  1. In Connect an AI app, choose your app

  2. Click "Install skill". SEO Utils downloads the current skill and saves it to ~/.agents/skills/seo-utils-mcp-guide/SKILL.md

  3. Restart the app if it's open

Prefer the terminal?

Google Antigravity

In Connect an AI app, choose Google Antigravity and click "Install skill". The skill is saved to ~/.gemini/config/skills/seo-utils-mcp-guide/SKILL.md, and new conversations pick it up.

Prefer the terminal?

Grok Build

In Connect an AI app, choose Grok Build and click "Install skill". The skill is saved to ~/.grok/skills/seo-utils-mcp-guide/SKILL.md, and Grok Build loads it right away.

ChatGPT
  1. In Connect an AI app, choose ChatGPT and click "Save skill ZIP"

  2. In ChatGPT, go to Plugins → Skills → Create → Upload from your computer

  3. Upload the ZIP file

Uploading skills needs a ChatGPT Business, Enterprise or Edu plan.

Perplexity
  1. In Connect an AI app, choose Perplexity and click "Save SKILL.md"

  2. In Perplexity, go to Skills → Create skill → Upload a skill

  3. Upload the SKILL.md file

Updating the Skill

We update the skill when SEO Utils adds or changes MCP tools. How you get the update depends on how you added it:

  • Claude plugin (Claude Desktop, Cowork, claude.ai) — in Customize → Plugins, open the seo-utils marketplace and select Check for updates, or turn on Sync automatically once

  • Claude plugin (Claude Code) — turn on auto-update (/plugin → Marketplaces → seo-utils → Enable auto-update), or run claude plugin update seo-utils@seo-utils, then /reload-plugins

  • Install skill button (Codex, Cursor, VS Code, OpenClaw, OpenCode, Antigravity, Grok Build) — click Install skill again; it replaces the old copy. Restart the app if it's open

  • Uploaded file (ChatGPT, Perplexity, or a ZIP uploaded to Claude) — save the file again, delete the old skill in the app, and upload the new one

  • Copied with curl — run the same curl command again

Source: github.com/seoutilsapp/seo-utils-skills

Run SEO Tasks from Your Phone

You can run SEO tasks from your phone using either Cowork (Dispatch) or Telegram/Discord channels. Both methods process tasks on your desktop using the MCP server.

With Dispatch in Cowork, you can assign SEO tasks from your phone and Claude will execute them on your desktop.

Assign SEO tasks from your phone using Dispatch in Cowork

For example, you can message Claude from your phone:

  • "Generate a weekly SEO report for example.com and save it as HTML"

  • "Check the backlink profile for competitor.com"

  • "Find keyword cannibalization issues for my site in GSC"

Claude processes the task on your desktop using your local SEO data and MCP tools, then returns the results to your phone.

With Channels in Claude Code, you can send SEO prompts from Telegram or Discord — Claude processes them on your computer and replies right back in the chat.

Send SEO prompts from Telegram to Claude Code with MCP access
1

Create a project folder and set up MCP

Create a folder for your SEO workspace:

Then add SEO Utils to Claude Code: in SEO Utils, choose Claude Code in Connect an AI app and click "Add to Claude Code" (see Connecting to AI Assistants). It's added for all your projects, this folder included.

2

Install Bun (required for channel plugins)

3

Set up Telegram or Discord channel

Follow the official guide for your platform:

  • Telegram setup — Create a bot via BotFather, install the plugin, configure, and pair

  • Discord setup — Create a bot in Discord Developer Portal, install the plugin, configure, and pair

4

Start Claude Code with channels enabled

Or for Discord:

5

Send SEO prompts from your phone

Open Telegram or Discord on your phone and message your bot:

  • "Show me the top trending queries in GSC for my site"

  • "Generate a backlink report for competitor.com"

  • "Create an automation that emails me when rank tracking completes"

Claude processes the request on your computer and replies in the chat.

Multiple channels for different clients

Run separate Claude Code sessions with different bot tokens — one per client or project. Each session has its own MCP connection, workspace, and chat bot.

The environment variable overrides the saved config, so each session uses a different bot. Works the same way for Discord with DISCORD_BOT_TOKEN.

Available Tools

The MCP server exposes the following tools that the AI uses automatically:

The AI reaches most of these through a few catalog tools, so it doesn't load dozens of tool definitions up front: it finds an action with search_actions, reads its parameters with describe_action, and runs it with read_action (your local data, free), lookup_action (external data, may spend your API credits) or write_action (creates, changes, deletes or sends something). The names below are the action names it uses.

Data Tools (read your existing SEO data):

Tool
Description

list_tables

Lists all database tables with descriptions

describe_table

Shows columns, types, and relationships for a specific table

query_database

Executes read-only SQL queries against your SEO data

query_gsc

Specialized SQL tool for Google Search Console data with built-in timezone and filter guidance

list_workspaces

Lists all workspaces and shows the active one and how it was chosen

set_workspace

Switches the AI to a different workspace until the AI app reconnects (Workspaces)

Action Tools (fetch live data from APIs):

Tool
Description

check_keyword_metrics

Check search volume, difficulty, CPC, and search intents for keywords via DataForSEO

fetch_serp_data

Fetch live Google SERP results for keywords. Caches results to avoid duplicate API calls

get_backlink_summary

Get backlink overview: total backlinks, referring domains, domain rank, spam score, distributions

get_backlink_history

Get historical backlink trends: new/lost backlinks and referring domains over time

fetch_backlinks

Fetch individual backlink records with filters (dofollow, platform type, etc.)

get_referring_domains

Get list of domains linking to a target with rank, spam score, and backlink count

get_anchor_texts

Get anchor text distribution — which texts are used most in backlinks

get_backlink_competitors

Find domains competing for the same backlink sources

get_content_gap

Find keywords competitors rank for but you don't

get_backlink_gap

Find domains linking to competitors but not you

get_demographics

Fetch demographic data (population, income, age, homeownership) around a location — supports US, UK, Australia, and Canada

get_gmb_report_group_dashboard

Get aggregated multi-location dashboard — visibility score, rankings, trends across all locations in a report group

create_gmb_report_group

Create a report group from existing individual GMB rank tracker reports for multi-location analytics

delete_gmb_report_group

Delete a report group (individual reports are not affected)

find_google_business

Resolve a business name/address to a Google Place ID via Google Places autocomplete (used before create_gmb_rank_tracker_report or create_google_business_review_fetch)

find_google_business_from_maps_url

Resolve a Google Maps link (full URL, maps.app.goo.gl share link, or ?cid= link) to the business's Place ID, name, and address — no Google Places API key needed; goes through DataForSEO

create_gmb_rank_tracker_report

Create a new GMB rank tracker report with full grid, schedule, and keyword setup. Auto-geocodes place_id → center coords; auto-generates the measurement grid (square/circle/polygon) or accepts an explicit list of coordinates

update_gmb_rank_tracker_report

Partially update an existing GMB rank tracker report — change schedule, grid, locale, branding, or measurement points. Markers regenerate automatically when grid inputs change

run_gmb_rank_tracker

Trigger a fresh snapshot run for an existing GMB rank tracker report. Asynchronous; consumes DataForSEO credits (one task per keyword × grid point)

delete_gmb_rank_tracker_reports

Permanently delete one or more GMB rank tracker reports (up to 100 per call) with their keywords, grid, snapshots and ranking history. Each report is deleted on its own; the result lists what was deleted and why any was not

get_traffic_summary

Get organic traffic overview (ETV, keyword counts, paid traffic) for a domain

get_organic_keywords

Get keywords a domain ranks for with position, volume, traffic, difficulty

get_traffic_competitors

Find organic search competitors with shared keyword overlap

get_top_pages

Get top pages by organic traffic for a domain

get_historical_rank

Get historical organic traffic and ranking trends over time (monthly)

get_keyword_suggestions

Get Google keyword suggestions with full metrics (volume, KD, CPC, backlinks, SERP info)

get_bing_related_keywords

Get Bing related keywords with metrics

fetch_autocomplete_keywords

Trigger autocomplete keyword generation from Google or Bing (background)

get_autocomplete_keywords

Get autocomplete keywords with metrics from the database

bulk_traffic_analysis

Analyze organic traffic for multiple domains at once

bulk_backlink_analysis

Analyze backlink profiles for multiple URLs/domains at once

submit_url_for_google_indexing

Submit a URL for Google indexing via the Indexing API

check_google_indexing_status

Check a URL's indexing status via the URL Inspection API (returns coverage state, verdict, etc.)

trigger_indexing_action

Run batch inspection scan, trigger internal link crawl, check crawl status, recalculate paths

submit_url_to_index_now

Submit a URL to IndexNow for Bing indexing

check_index_now_status

Check if a URL is indexed by Bing

send_email

Send an email with optional attachments using your configured SMTP credentials

get_robots_compliance

Per-bot robots.txt compliance for a log analysis report — which bots are allowed, how many requests violated a Disallow rule. Uses the Go-side robots.txt matcher (SQL can't evaluate robots.txt rules)

Saved Keywords Tools (manage your keyword lists):

Tool
Description

list_saved_keywords_lists

List all keyword lists with keyword counts

create_saved_keywords_list

Create a new keyword list with a name and locale

update_saved_keywords_list

Rename a keyword list

delete_saved_keywords_list

Delete a keyword list and all its keywords

add_keywords_to_list

Add keywords to a list (duplicates are skipped)

remove_keywords_from_list

Remove keywords from a list by their IDs

Organic Rank Tracker Tools (set up trackers, grow tracked keyword sets, and queue runs):

Tool
Description

create_organic_rank_tracker_report

Create a rank tracker with keywords, locale, schedule, collection method, device type, optional DataForSEO settings, and optional ranked-page HTML capture. HTML capture is off by default; its scope can include only the target domain or the target and tracked competitors, with a configurable retention period. The first scan runs automatically unless you say otherwise or its schedule window delays it.

update_organic_rank_tracker_report

Update an existing tracker's name, schedule, collection method, business name, include-subdomains setting, DataForSEO settings, or ranked-page HTML capture, scope, and retention. Domain, keywords, locale, and device type cannot be changed. Disabling capture keeps existing HTML history. Some pixel-tracking settings lock after data is collected.

add_organic_rank_tracker_keywords

Add keywords to an existing rank tracker report. A keyword the report already has is not added twice. With a weight, every listed keyword — new or existing — gets that weight. Does NOT rerun the tracker — the AI asks you separately.

update_organic_rank_tracker_keywords

Set the weight of existing keywords in a rank tracker report: a whole number from 0 to 1000, where 100 counts once and 0 (Track only) tracks a keyword without counting it. Keywords are matched by their exact text; any not found are listed back.

remove_organic_rank_tracker_keywords

Remove keywords from a rank tracker report by their text. Destructive — also deletes those keywords' historical positions, PAA appearances, and insights. Keywords not found in the report are reported back but don't cause an error.

run_rank_tracker

Queue a rank tracker run for a report. Background job; consumes DataForSEO credits. Optional force_refresh to rescrape everything.

compare_ranked_page_html

Compare two completed ranked-page HTML captures from the same URL, or explicitly compare an old and replacement URL. Returns paginated line differences, capture metadata, ranked/new/lost states, and affected keywords. It defaults to main content; full HTML is available for metadata and template analysis. It reads existing local captures, does not rescrape, and treats changes as evidence rather than proof of a ranking cause.

compare_ranked_page_html analyzes the rendered HTML of pages that ranked, not Google's SERP source. Enable Capture Ranked Page HTML on the tracker first. The AI finds two completed captures in your local history, then uses the comparison tool; no DataForSEO credits are consumed by the comparison.

LLM Rank Tracker Tools (track brand visibility in AI answers):

Tool
Description

create_llm_rank_tracker_report

Create a new LLM rank tracker — brand variants, search terms, AI engines (ChatGPT, ChatGPT Web Search, Google AI Overview, Google AI Mode), locale, and schedule. Auto-runs the first snapshot unless you say otherwise (scheduled reports still auto-start within ~15 minutes; use an on-demand schedule to fully defer). Requires DataForSEO credentials and a configured LLM extraction provider. The first brand variant becomes the report's title

run_llm_rank_tracker

Queue a snapshot run for an existing LLM rank tracker report. Background job; sends every search term to every configured AI engine and consumes DataForSEO credits. One snapshot per day — re-running the same day updates today's snapshot

Review Fetcher Tools (track Google Business Profile reviews):

Tool
Description

create_google_business_review_fetch

Start tracking a business's Google reviews — resolves the business via find_google_business (name) or find_google_business_from_maps_url (Google Maps link), sets the initial pull depth, locale, and DataForSEO queue priority, and runs the first fetch unless you say otherwise. Requires DataForSEO credentials. Note: there is no automatic schedule for review fetches — each snapshot is triggered on demand

run_google_business_review_fetch

Trigger a review fetch for a tracked business. Background job; pulls the latest reviews via DataForSEO, deduplicates them, and flags new, missing (removed/filtered by Google), and reinstated reviews. Returns the snapshot ID so progress can be checked

N.A.P Finder Tools (find local citation pages):

Tool
Description

run_nap_finder

Create and run a N.A.P Finder report in one step — searches Google for exact-match combinations of your business name, address, and phone number to find the pages that cite them. Each call is a fresh report (reports are one-shot and can't be re-run). Scrapes via DataForSEO, your own IP, or proxies; supports custom search-term template lists, excluded domains, and per-country locales. Results arrive in the background

The AI resolves the business address and phone automatically via find_google_business when you only give a name, and analyzes finished reports through query_database on the nap_finder_items table (e.g. citations per domain, missing listings).

Content Struct Tools (competitor content analysis and AI outlines):

Tool
Description

create_content_struct

Create a content analysis report for one or more keywords — scrapes the top Google results and extracts meta titles, descriptions, and heading structures (H1–H4) from up to 20 top-ranking competitor pages per keyword. Multiple keywords are grouped. Scrapes via your own IP (default), proxies, or the DataForSEO SERP API (consumes credits). The analysis runs in the background

generate_content_outline

Generate an AI content outline from a finished content struct report — sends the competitor headings to your chosen AI model (OpenAI, Anthropic, Gemini, OpenRouter, or Ollama) and produces a suggested meta title, meta description, and a full H1–H4 outline. Replaces any existing outline once the new one is ready (a failed generation keeps the old outline); uses your AI provider's API credits

SERP Clustering Tools (group keywords into topic clusters):

Tool
Description

create_serp_clustering_report

Create a SERP clustering report and run it — scrapes the Google results for every keyword and groups keywords into clusters when their SERPs share enough URLs (keywords whose results overlap can be targeted by one page). Supports a similarity threshold (3–7 shared results), three clustering algorithms (default / strict / balanced strict), per-country locales, device choice, and an optional target domain for per-cluster rank analysis. Scrapes via your own IP (default), proxies, or the DataForSEO SERP API (consumes credits); with DataForSEO connected it also fetches search volume / CPC / difficulty for the keywords. Runs in the background

run_serp_clustering

Re-run clustering for an existing report — optionally adding new keywords first. Reuses SERP data newer than saved_serp_days instead of re-scraping, and can either re-cluster everything from scratch or keep existing clusters and only distribute new keywords into them. The similarity threshold can change per run; locale, device, and SERP depth stay fixed

Text Analysis Tools (extract entities and topics with NLP):

Tool
Description

run_nlp_analysis

Run an NLP entity analysis on pasted text/HTML or on live URLs (scraped first) — extracts the named entities (people, organizations, places, products, concepts) the content is about, with confidence scores, Wikipedia links, and mention counts; TextRazor also extracts topics. Uses whichever NLP provider you configured (TextRazor, Dandelion, or Google NLP — API key required in Settings, uses that provider's quota). Each call creates a new Text Analysis report and runs in the background

Internal Links Tools (find, review and apply internal links — see Internal Links):

Tool
Description

get_internal_links_overview

The Internal Links numbers for a property: pages crawled, orphans, priority targets, link text and link cap problems

list_internal_link_opportunities

One Opportunities list (priority targets, orphans, anchors, too many links, duplicate links, or every page), searched, sorted and paged

get_internal_link_source_candidates

The pages that could link to one target page, closest first

estimate_internal_link_run

Quote a Find links run before it starts. Free

run_internal_links

Start Find links for up to 50 target pages. Spends TypeSafe and embedding credit

get_internal_links_run_status

Progress of the latest Find links run

cancel_internal_links_run

Stop the running Find links run. Finished pages keep their suggestions

list_internal_link_suggestions

Suggestions by status and target page, with the sentence, the link text and the reason

review_internal_link_suggestions

Accept, reject or move suggestions back to review, up to 200 at a time

edit_internal_link_anchor

Change a suggestion's link text to other words of the same sentence

apply_internal_links

Write accepted links into your live WordPress site, up to 50 at a time

revert_internal_links

Remove applied links from your live WordPress site

reconcile_internal_links

Settle unconfirmed applies and reverts by reading the pages (Check N unconfirmed)

get_internal_link_rules

The link rules, Advanced settings and your own rules for the AI

save_internal_link_rules

Change some of those rules. The others keep their values

get_internal_link_crawl_status

Progress of the latest link crawl

Automation Tools (manage your workflows):

Tool
Description

get_automation_schemas

Get available trigger types, action types, and configs

create_automation

Create a new automation workflow

update_automation

Update or pause/resume an automation

delete_automation

Delete an automation and its history

save_automation_report_mappings

Set which reports trigger an automation

Workspace Tools (manage your workspaces):

Tool
Description

create_workspace

Create a new workspace for organizing projects. Name must be unique; new workspaces are not made active by default

update_workspace

Rename a workspace or update its logo URL. Default workspace can be renamed

To list, query, or switch workspaces, the AI uses the existing list_workspaces / set_workspace data tools. Deleting a workspace is done in the desktop app (and is blocked if the workspace still contains data).

SEO Test Tools (manage your SEO experiments):

Tool
Description

create_seo_test

Create a new SEO test (split / time_based / url_switch). Validates type-specific fields and fetches baseline metrics from GSC

update_seo_test

Update an existing SEO test's name, description, hypothesis, end_date, or type-specific timing fields (test_type is immutable)

To list, view metrics, or delete tests, the AI uses query_database on the tests, test_pages, and test_metrics tables. Deleting a test is done in the desktop app.

Keyword Insights Tools (analyze ranking behavior):

Tool
Description

get_keyword_insight_summary

Get insight counts (trending up/down, pogo sticking, flickering, key events) for a report

The AI can also query the keyword_insights, keyword_insight_histories, ga4_landing_page_metrics, and ga4_property_mappings tables directly via query_database for deeper analysis.

SQL queries are read-only — the AI cannot modify your data via SQL. Action tools fetch data from external APIs (DataForSEO) and may incur API costs. Saved Keywords, Organic Rank Tracker, LLM Rank Tracker, Review Fetcher, and N.A.P Finder tools can create, update, and delete keyword lists, add, weight or remove keywords in rank tracker reports, create LLM rank tracker reports and review fetches, and queue tracker/fetch/citation-search runs on your behalf. Removing rank tracker keywords also deletes their historical positions and insights — there is no undo. Running a tracker, review fetch, or N.A.P Finder search via DataForSEO consumes DataForSEO credits.

Built-in Prompts

Claude Desktop shows these in the prompt picker — click the slash icon to find them:

Prompt
What It Does

Weekly SEO Report

Comprehensive weekly performance report with rankings, GSC data, and recommendations

Keyword Cannibalization

Finds keywords where multiple pages compete for the same query

Weak Pages Analysis

Identifies underperforming pages that need optimization

Ranking Trends

Analyzes ranking changes over time with winners and losers

Content Gap Analysis

Finds content opportunities from Search Console data

Local SEO Report

Google Business rank tracking performance report

SERP Landscape

Competitive analysis of SERP features and competitors

Ranked Page HTML Changes

Compares stored page captures and evaluates changes around new, lost, or moved pages

Client Report

Professional, client-ready report in non-technical language

Example Prompts

Here are some prompts you can try right away. Click each category to expand.

Tip for GSC queries: When asking about your own site's search performance, include "in GSC" or "from my Search Console data" in your prompt. This tells the AI to query your local Google Search Console data instead of fetching third-party estimates.

📊 Reporting & Charts
  • "Create a dashboard to report all SEO metrics of tuikhoeconban.com" (Work with Claude Cowork Live Artifact to create live SEO dashboard.)

  • "Pull my Google Search Console data for the last 30 days. Show me a line chart of daily clicks and impressions over time. Also show a table of the top 10 queries by clicks."

  • "Get my organic rank tracker data for example.com. Create a pie chart showing the ranking distribution: how many keywords are on page 1 (positions 1-10), page 2 (11-20), page 3 (21-30), and beyond."

  • "Pull my Google Business rank tracker data for My Business Name. Create a heatmap or grid visualization showing my ranking positions across different geographic points."

  • "Compare my Google Search Console query performance between the last 7 days and the previous 7 days. Find the top 10 queries that gained the most clicks and the top 10 that lost the most."

  • "Create a comprehensive SEO dashboard for example.com with: 1) A line chart of GSC clicks over the last 30 days, 2) Current organic rank distribution as a donut chart, 3) A table of top 10 pages by impressions."

🔍 SEO Analysis
  • "Find pages on my site that rank on positions 11-20 (page 2) with more than 100 impressions. These are quick-win opportunities to push to page 1."

  • "Find pages with high impressions but low CTR — the title or description probably needs work."

  • "Which keywords have multiple pages competing for the same position? Show me the cannibalization issues."

  • "Find queries I'm appearing for in Google but don't have a dedicated page targeting them."

🗺️ Local SEO
  • "Show me my Google Business rank tracking data. Create a summary of how many grid points I rank in top 3, top 10, and not ranking."

  • "Show me the ranking trend for 'hot pot' in my GMB report #7"

  • "Compare my local rankings between this week and last week. Which keywords improved?"

  • "List all my GMB rank tracker reports with their keywords and latest snapshot dates"

  • "Show me the demographics around my business and correlate with my local rankings — do I rank better in high-income or high-density areas?"

  • "Show me the multi-location dashboard for Haidilao Hot Pot across all locations"

  • "Create a report group for all my Haidilao reports so I can see combined rankings"

  • "What's my visibility score for Haidilao across Bellevue and Seattle? Compare vs 30 days ago"

  • "Which location has the best local rankings for 'hot pot'?"

📍 Create, Update & Delete GMB Rank Trackers
  • "Create a GMB rank tracker for Haidilao Hot Pot in Bellevue, WA tracking 'hot pot bellevue', 'best chinese bellevue', and 'haidilao'. Use a 5x5 square grid with 500m radius, run weekly on Mondays 9-11am Pacific."

  • "Set up a circle 7x7 GMB tracker for my dental clinic at 100 Park Ave, New York with 1 mile radius, tracking 'dentist near me', 'emergency dentist nyc', and 'tooth cleaning manhattan'. Run once now so I can see the baseline."

  • "Track Pho Bac Sup Shop in Seattle for 'pho near me' and 'best pho seattle' — square 7x7, 800m radius, weekly Mondays at 8am Pacific."

  • "Create a GMB tracker for Joe's Pizza in NYC simulating searches from Brooklyn instead of Manhattan, tracking 'pizza near me' and 'best slice brooklyn'."

  • "I have 9 specific tracking points for my market research project — coordinates: [{lat: 47.61, lng: -122.20}, {lat: 47.62, lng: -122.20}, ...]. Create a GMB report for Haidilao Hot Pot Bellevue using those exact points and track 'coffee shop'."

  • "Update my Haidilao GMB report — bump it from 5x5 to 7x7 grid and change the schedule to twice-per-month on the 1st at 8am Pacific."

  • "Disable the daily run schedule on GMB report #7 and switch it to a one-time manual tracker."

  • "Rebrand the export header on GMB report #12 to 'Q1 Local SEO — Acme Dental' and set the comparison period to 30 days."

  • "Run a fresh snapshot for GMB report #7 right now — I want to see today's rankings without waiting for the schedule."

  • "Delete GMB report #12 — it was only a test."

  • "I have a few 'Joe's Pizza' GMB test reports. List them for me, then delete all of them once I confirm."

🌐 Create & Update Organic Rank Trackers
  • "Set up an organic rank tracker for example.com in the US English, tracking 'best seo tool', 'seo software', and 'free seo audit'. Use DataForSEO, desktop, weekly schedule."

  • "Track moz.com on mobile in the UK for 'keyword research', 'local seo', and 'backlink checker' — DataForSEO, weekly, start scanning right away."

  • "Create a rank tracker for mycompany.io scraping from my own IP with 5-second delays. Daily schedule. Keywords: 'widget pricing', 'widget reviews', 'best widgets 2026'. Don't start scanning yet — I want to review settings first."

  • "Set up tracking for a French SaaS — saas-fr.com in France French, tracking 'logiciel de gestion', 'outil de productivité', 'crm français'. DataForSEO, weekly."

  • "Make a rank tracker for laravel.com in the US that includes subdomains (so docs.laravel.com counts as laravel.com). DataForSEO, desktop, weekly. Keywords: 'php framework', 'laravel tutorial', 'best php frameworks'."

  • "Set up a rank tracker for a Chicago dental clinic — chicagosmiles.com, US English, DataForSEO, daily — but only run it between 9am and 5pm Chicago time."

  • "Change the schedule on rank tracker #19 from weekly to daily."

  • "Make rank tracker #19 run only on Mondays and Thursdays, between 08:00 and 12:00 in America/New_York."

  • "Remove the time window and day restrictions from rank tracker #22 so it can run at any time."

  • "Rename rank tracker #22 to 'Moz.com — Q1 Tracking' and turn on include subdomains."

  • "Switch rank tracker #23 from own-IP scraping to DataForSEO and bump priority to 2 for faster turnaround."

  • "Disable pixel tracking on report #20." (Will error if a snapshot has already captured pixel data — pixel settings are immutable after data is collected, by design.)

  • "Add 'cold brew beans' and 'nitro cold brew' to rank tracker #19 with a weight of 50."

  • "In rank tracker #19, set 'buy seo tools' to a weight of 300 and make 'seo tools login' Track only."

🔑 Keyword Research
  • "Check keyword metrics for: seo tools, rank tracker, keyword research, backlink checker"

  • "Check keyword metrics for these keywords in Vietnam: công cụ seo, phân tích backlink"

  • "What's the search volume and difficulty for 'best seo tools 2026'?"

🎯 Gap Analysis
  • "Find keywords that ahrefs.com and semrush.com rank for but seoutils.app doesn't"

  • "What content opportunities am I missing compared to my top 3 competitors?"

  • "Find domains that link to ahrefs.com but not seoutils.app"

  • "Show me the backlink gap between seoutils.app and its top competitors: semrush.com, moz.com"

  • "Find high-volume keywords (1000+ searches) that competitors rank for in the US but I don't"

📊 Traffic Analytics
  • "Show me the traffic overview for laravel.com"

  • "What are the top organic keywords for laravel.com in the US?"

  • "Who are the traffic competitors for seoutils.app?"

  • "What are the top pages by traffic for laravel.com?"

  • "Show me only informational keywords that laravel.com ranks for"

  • "What keywords does laravel.com rank for in positions 1-3 with more than 1000 monthly searches?"

  • "Show me the organic traffic trend for laravel.com over the past 5 years. Draw a chart."

🏘️ Demographics (US, UK, Australia & Canada)
  • "Show me the demographics around my GMB report #7 business"

  • "What's the population density and median income near Haidilao Hot Pot Bellevue?"

  • "Compare the demographics data with my local rankings — do I rank better in high-income or low-income areas?"

  • "Show me census data within 3 miles of coordinates 47.61, -122.20"

  • "Show me demographics around my business in London / Sydney / Toronto"

🔎 GSC Insights & Mentions
  • "Find keyword cannibalization issues for example.com in GSC"

  • "Using my GSC data, what percentage of queries are branded vs non-branded for example.com?"

  • "Show me my top trending queries in GSC this month vs last month"

  • "What are my optimization opportunities in GSC — queries I rank for but don't mention in page titles?"

  • "Show me GSC traffic by country for my site — which countries send the most clicks?"

  • "Break down my GSC queries by position range: how many rank 1-3, 4-10, 11-20, and 21+?"

  • "Which queries in GSC have zero mentions in page titles but high impressions?"

  • "Show me additional traffic sources beyond web search in my Search Console data"

🔗 URL Indexing
  • "How many of my URLs are indexed vs not indexed? Show the breakdown by coverage state."

  • "Submit this URL for Google indexing: https://example.com/new-page"

  • "Check the indexing status of https://example.com/page using the URL Inspection API"

  • "Show me all URLs that have been crawled but not indexed — what's causing them to be rejected?"

  • "Which directories on my site have the worst indexing rate?"

  • "Find orphan pages — URLs with zero internal links that aren't indexed"

  • "Show me the top 10 pages by internal inlink count and their indexing status"

  • "Run an inspection scan for my site to update all URL statuses"

  • "Start an internal link crawl for my site"

  • "Which URLs have had their coverage state change in the last 7 days?"

  • "Show me pages that went from 'Submitted and indexed' to something else recently"

  • "Submit https://example.com/updated-page to IndexNow for Bing"

📐 Content Struct (Content Brief)
  • "Create a content struct for 'keto meal plan' and tell me when the analysis is done"

  • "Analyze the top Google results for 'best running shoes', 'trail running shoes', and 'running shoes for flat feet' — group them as 'Running Shoes Cluster'"

  • "Create a content struct for 'best pho hanoi' targeting Vietnam, using the DataForSEO SERP API"

  • "Create a content struct for 'coffee grinder' but exclude amazon.com and reddit.com from the competitor pages"

  • "Generate an AI content outline for my 'keto meal plan' content struct using Claude"

  • "Regenerate the outline for report #191 with GPT — focus the prompt on beginner-friendly content"

  • "Show me the content brief for 'keto' — report #189"

  • "Write a 2000-word article using the content outline from content struct report #191"

  • "Show me the AI-generated outline and suggested meta title/description for report #193"

  • "Which H2 headings appear most frequently across competitor pages for 'hot pot' in report #191?"

  • "Write an SEO-optimized blog post following the content brief in report #189."

  • "Compare the heading structure of the top 5 competitor pages for 'keto' in report #189"

🧩 SERP Clustering
  • "Cluster these keywords by SERP similarity: keto diet, keto meal plan, keto recipes, low carb diet, keto for beginners — call the report 'Keto Cluster'"

  • "Create a SERP clustering report for my keyword list using the DataForSEO SERP API with a similarity of 5 and the strict algorithm"

  • "Cluster these German keywords for germany: hochzeit checkliste, hochzeitsplanung, hochzeit budget — and set target domain example.de so I can see where I rank per cluster"

  • "Is my 'Keto Cluster' report done yet? If it failed, tell me why"

  • "Add these new keywords to SERP clustering report #22 and distribute them into the existing clusters — reuse SERP data from the last 30 days"

  • "Re-run report #22 from scratch with a stricter similarity of 6"

  • "Show me the clusters in report #22 — cluster name, keyword count, and total search volume, biggest first"

  • "Which keywords in report #22 ended up unclustered, and which clusters does my domain not rank in at all?"

📝 Text Analysis (NLP)
  • "Run an NLP analysis on https://example.com/blog/keto-guide with TextRazor and show me the entities it covers"

  • "Analyze these three competitor pages with Google NLP and tell me which entities all of them mention: [urls]"

  • "Here's my article draft — analyze it with Dandelion and list the entities with their Wikipedia links: [pasted text]"

  • "Analyze my German landing page example.de/preise with TextRazor in German — call the report 'Preise Entities'"

  • "Is my 'Preise Entities' analysis finished? If it failed, tell me why"

  • "Show me all my NLP analysis reports"

  • "What are the top entities found in my TextRazor analysis report #19?"

  • "Which entities appear most frequently across all items in report #21?"

  • "Compare the entities found by GoogleNLP vs TextRazor for the same URLs"

  • "Show me all entities with confidence score above 0.8 in report #20"

  • "What topics were identified in my TextRazor report? Show them sorted by score"

📊 Bulk Analysis
  • "Compare organic traffic for laravel.com, symfony.com, and codeigniter.com"

  • "Show me the backlink profiles for seoutils.app, ahrefs.com, and semrush.com"

  • "Which of these domains has the highest domain rank: moz.com, majestic.com, semrush.com?"

  • "Analyze traffic and backlinks for my top 5 competitors"

  • "Compare referring domains count for example.com vs example.org"

📍 NAP Finder
  • "List all my NAP Finder reports"

  • "Which domains have the most NAP citations for Monsoon Seattle?"

  • "Show me all NAP citations found on yelp.com for my business"

  • "What search terms found the most results in NAP Finder report #5?"

  • "Find all NAP citations ranking in position 1-3 for monsoon seattle"

  • "Compare NAP citations between report #5 and report #6 — which domains appear in both?"

  • "Run a NAP Finder for Monsoon Seattle at 615 19th Avenue East, phone (206) 325-2111, using DataForSEO"

  • "Find citation pages for Joe's Pizza — look up the address and phone from Google first, exclude joespizza.com"

  • "Run a NAP citation check for my business with both phone formats: (222) 333-4444 and 222-333-4444"

  • "Run a NAP Finder for my Toronto business in the Canadian locale, scanning the top 50 results per query"

  • "Run a NAP Finder for Monsoon using my custom search term list, then tell me when it's done and which new domains it found compared to report #7"

🔬 Keyword Explorer
  • "What are the keyword suggestions for 'keto diet' in the US?"

  • "Show me Bing related keywords for 'coffee shops' sorted by search volume"

  • "Find keyword suggestions for 'seo tools' with search volume over 1000 and keyword difficulty under 40"

  • "Get keyword suggestions for 'best laptops' — only show commercial and transactional intent keywords"

  • "Fetch autocomplete keywords for 'seo tools' from Google"

  • "Show me the autocomplete keywords for 'keto' from both Google and Bing"

  • "What's the search volume, keyword difficulty, and CPC for 'keto diet'?"

📋 Saved Keywords
  • "Show me all my saved keyword lists"

  • "Create a new keyword list called 'Competitor Keywords' for the US market"

  • "Add these keywords to my 'Competitor Keywords' list: seo tools, keyword research, backlink checker"

  • "Create a keyword list called 'Vietnam SEO' for Vietnam in Vietnamese"

  • "Rename my 'Old Keywords' list to 'Archive - Q1 2026'"

  • "Delete the 'Test Keywords' list"

  • "How many keywords are in each of my saved keyword lists?"

📈 Organic Rank Tracker
  • "Add these keywords to my rank tracker for example.com: seo audit, technical seo, on-page seo"

  • "Take the top 20 keywords from the content gap report between example.com and competitor.com and add them to my rank tracker for example.com"

  • "Pull the highest-converting GSC queries from the last 90 days that I'm not yet tracking, and add them to my example.com rank tracker"

  • "Add 'black friday deals, cyber monday sale' to my shop.com tracker and rerun it right now"

  • "Remove these keywords from my example.com rank tracker: outdated keyword, irrelevant term, typo'd kw"

  • "Find every keyword in my shop.com tracker that hasn't ranked in the last 60 days and remove them"

  • "Clean up my rank tracker — remove all keywords containing the word 'test'"

  • "Force-refresh my rank tracker for example.com — I want fresh SERPs for every keyword"

  • "Rerun the rank tracker for laravel.com"

  • "Enable ranked-page HTML capture for my example.com tracker. Capture only my target domain and keep the files forever."

  • "Enable ranked-page HTML capture for my shop.com tracker, include my tracked competitors, and keep captures for 90 days."

  • "For my example.com rank tracker, compare the two captures around when https://example.com/old-page became lost. Summarize the main-content changes and tell me which are plausible contributors, without treating correlation as proof."

  • "A new URL replaced my old ranking page. Compare the last capture of https://example.com/old-page with the first capture of https://example.com/new-page, show which tracked keywords moved, and clearly label it as a cross-page comparison."

  • "Compare the full captured HTML before and after my page declined. Check title, canonical, robots directives, structured data, redirects, and template changes."

🌐 SERP Analysis
  • "What's ranking for 'seo tools' in Google?"

  • "Fetch SERP data for: rank tracker, keyword research tool, seo software"

  • "Show me the top 10 Google results for 'best seo tools' in the US"

  • "What pages are ranking for 'local seo' in the UK?"

🤖 LLM Rank Tracker
  • "Show me all my LLM rank tracker reports"

  • "Create an LLM rank tracker for my brand Ahrefs (variants: Ahrefs, ahrefs.com) tracking 'best seo tools' and 'best backlink checker' in ChatGPT and Google AI Overview, weekly"

  • "Set up an LLM rank tracker for Hasiru Farms in India tracking 'organic vegetables bangalore' on Google AI Overview"

  • "Create an LLM rank tracker for my brand across all four AI engines, on-demand only — don't run it yet, I want to review it first"

  • "Run my Ahrefs LLM rank tracker now"

  • "How is my brand mentioned across AI engines like ChatGPT and Google AI Overview?"

  • "Which search terms trigger the most AI citations for my brand?"

  • "Compare my LLM visibility across engines — ChatGPT vs ChatGPT Web Search vs Google AI Overview vs Google AI Mode"

  • "Show me the trend of my brand mentions in AI responses over the last month"

⭐ Review Fetcher
  • "Start tracking the Google reviews for Haidilao Hot Pot in Bellevue, WA — pull the 300 most recent reviews"

  • "Track the reviews of this business: https://maps.app.goo.gl/AbC123 — start with the 100 latest"

  • "Add my dental clinic to the Review Fetcher but don't fetch anything yet — I'll run it manually later"

  • "Set up review tracking for my restaurant in Germany with reviews translated to German"

  • "Fetch the latest reviews for my Haidilao review tracker and tell me how many new ones came in"

  • "Which of my reviews have no owner response yet? List the worst-rated ones first"

  • "Did any of my Google reviews go missing since the last check? Show me the removed ones"

  • "Summarize the themes in my 1-star and 2-star reviews from the latest snapshot"

  • "Compare my star-rating breakdown between the latest snapshot and the previous one"

📄 Log Analysis
  • "Show me all my log analysis reports"

  • "Which pages get the most Googlebot crawls in my latest log analysis?"

  • "Show me pages with 404 errors that Googlebot is trying to crawl"

  • "What's the crawl frequency breakdown by HTTP status code?"

🤖 AI Log Analysis (AEO / GEO)
  • "Is GPTBot violating my robots.txt in my latest log analysis report?"

  • "Which AI bots are ignoring my Disallow rules — filter to violations > 0"

  • "Which pages are Perplexity and ChatGPT-User fetching most this month?"

  • "What questions are AI engines asking about my site? Group by extracted_query"

  • "How is AI traffic trending vs search traffic over the last 30 days?"

  • "Which pages has Googlebot crawled recently but AI bots haven't visited in over a week?"

  • "What's the error rate per AI bot — which bots are getting 4xx/5xx responses most?"

🧪 SEO Tests
  • "Show me all my SEO tests and their current status"

  • "How is my SEO test #5 performing — are clicks and impressions improving?"

  • "Compare the before and after metrics for my latest completed SEO test"

  • "Create a time-based SEO test on example.com starting today: hypothesis is rewriting the H1 on /blog/seo-guide will improve CTR. Change implemented date is today."

  • "Create a 50/50 split test on shop.example.com comparing /products/a, /products/b (control) vs /products/c, /products/d (variant), starting next Monday"

  • "Create a URL switch test on example.com alternating /pricing with /pricing-v2 every 7 days, starting today, ending in 60 days"

  • "Update SEO test #7 — extend the end date to 2026-08-01 and update the hypothesis to mention the new schema markup"

  • "Update test #3 to clear the end date so it runs indefinitely"

📧 Send Email
  • "Send an email to client@example.com with subject 'Weekly SEO Report' and a summary of this week's ranking changes"

  • "Email me the keyword cannibalization analysis for my site"

  • "Send the content brief for 'keto diet' to my team at team@example.com"

  • "Compose and send an email to client@example.com with the top 10 ranking improvements this month"

⚡ Automations
  • "Show me all my automations"

  • "What trigger types and action types are available for automations?"

  • "Create an automation that exports a PDF report when my organic rank tracker snapshot completes"

  • "Create an automation that runs when a content struct outline is generated. It should: 1) Export the outline as markdown to my Downloads folder, 2) Send an email to client@example.com with subject 'New Content Brief: [keyword name]' and body showing the meta title, meta description, and number of headings, with the markdown file attached, 3) Send a GET webhook to https://n8n.example.com/webhook/content-brief"

  • "Set up an automation to send an email with the rank tracker PDF attached when a snapshot finishes"

  • "Create a webhook automation that posts rank tracker data to my n8n workflow when a snapshot completes"

  • "Pause automation #1"

  • "Delete the 'Test' automation"

🔬 Keyword Insights
  • "Show me the keyword insight summary for my example.com rank tracker report"

  • "Which keywords are trending up in my rank tracker report #20?"

  • "Are any of my keywords pogo sticking or flickering? Explain what that means."

  • "Show me the insight history — which keywords recently became unstable?"

  • "How many of my keywords have enough data for trend analysis?"

📈 Rankings + GA4 Conversions (SEO Utils exclusive)

These prompts combine ranking data with Google Analytics 4 conversion metrics — something no standalone GA4 or rank tracker tool can do on its own. Note: this shows correlation (keyword ranking changes on pages that also saw conversion changes), not direct causation.

  • "Show me keywords that improved in ranking on pages that also saw increased conversions. I want to see the position change alongside the page's conversion count."

  • "Show me pages that generated conversions from organic search, and for each page, show me which keywords rank on that page and their current position."

  • "Which pages generate the most organic revenue in GA4, and what keywords am I tracking on those pages?"

  • "Are any of my pogo-sticking or flickering keywords on pages that generate conversions? These pages need stabilization first."

  • "Give me a complete SEO health report for example.com: how many keywords are trending up vs down, which have unstable rankings, which pages have the most conversions, and what's my total organic revenue from GA4."

🗂️ Workspaces
  • "List my workspaces"

  • "Create a new workspace called Client A"

  • "Create a workspace named E-commerce Projects with logo https://example.com/logo.png"

  • "Rename workspace 3 to Personal Sites"

  • "Update the Side Projects workspace — clear the logo"

  • "Which workspace am I in right now? Switch me to Client A and show all the rank tracker reports in that workspace."

  • "In the Client B workspace, create an organic rank tracker for clientb.com with the keywords from my 'Client B' saved list."

  • "List the saved keyword lists in the Client A workspace without switching my workspace."

📝 Client & Comprehensive Reports
  • "Generate a professional, client-ready SEO report for example.com for the last 30 days. Use clear, non-technical language suitable for stakeholders."

  • "Create a comprehensive SEO health report for example.com. Include: GSC performance summary, top queries, optimization opportunities, cannibalization issues, and a weekly clicks trend chart."

  • "Give me a complete SEO & backlink report for example.com — include traffic overview, top keywords, top pages, top competitors, backlink profile, and combined trends. Save it as an interactive HTML dashboard."

Workspaces

If you use multiple workspaces in SEO Utils, the MCP server defaults to your currently active workspace. You can ask the AI to list, switch, create, or rename workspaces:

"List my workspaces"

"Switch to the Client Projects workspace"

"Create a new workspace called Client A"

"Rename workspace 3 to E-commerce Projects"

"Update my Personal workspace — change the logo to https://example.com/logo.png"

After switching, all subsequent queries will be scoped to that workspace. New workspaces are not made active automatically — switch to them with set_workspace (or in the workspace switcher in the app). Workspace deletion is only available in the desktop app and is blocked if the workspace still contains any data.

Working Across Client Workspaces

A switch lasts only until your AI app reconnects to SEO Utils. Apps reconnect when they restart, and remote connections can reconnect on their own. After a reconnect, the AI is back in the workspace that is active in the desktop app.

If you work across several client workspaces, choose the workspace in a way that survives reconnects:

Way to choose
Example
How long it lasts

Name the workspace in the request

"Create a rank tracker for example.com in the Client A workspace"

That request only

Switch the workspace

"Switch to the Client A workspace"

Until the AI app reconnects

Set a workspace on the connection

The X-SEO-Utils-Workspace header (see below)

Every request on that connection, also after reconnects

When more than one applies, the first row in the table wins. When none applies, the AI uses the workspace that is active in the desktop app.

Naming a workspace in a request and the connection header need SEO Utils versions after 2.7.0.

Set a workspace on the connection

Use this when one AI connection always works for one client, for example an agent per client on a server.

  1. Find the workspace ID: ask the AI "List my workspaces".

  2. Add the header X-SEO-Utils-Workspace: <workspace ID> to the connection, next to the Authorization header. For example, in Claude Code:

  1. Add one connection per client, each with its own workspace ID.

Only apps that connect by URL (HTTP) can send a header. The Install in Claude Desktop connection and other local (stdio) connections cannot: with those, name the workspace in each request.

Data Accuracy

The MCP server is designed to return the same numbers you see in the app. Behind the scenes, it automatically handles:

  • Timezone conversion — Google Search Console uses Pacific Time, while other tools use your server's timezone. The MCP applies the correct offsets automatically.

  • Default filters — Filters like search_type = 'web' for GSC data are applied automatically. You don't need to specify them.

  • Smart table selection — When you ask about total clicks over time, the MCP uses the aggregate table (accurate totals). When you ask about specific queries, it uses the query-level table. Same logic as the app.

  • Rank tracker specifics — NULL positions correctly handled as "not ranking," local pack results prioritized over organic, and average rank calculations match the app exactly.

You just ask your question in plain English — the MCP handles all the complexity.

Security

Aspect
Detail

Network

Server binds to 127.0.0.1 only — not accessible from the internet

Authentication

Bearer token required for all connections

Data access

SQL queries are read-only. A small set of write tools can: create/update/delete saved keyword lists, add keywords to rank tracker reports, create LLM rank tracker reports and review fetches, queue tracker and review-fetch runs, run N.A.P Finder citation searches, create content structs and generate AI content outlines, create and run SERP clustering reports, run NLP text analyses, create/update workspaces, delete GMB rank tracker reports, manage automations and GMB report groups, and review, apply and revert internal links on your WordPress site

Query safety

Only SELECT statements allowed, auto-limited to 1,000 rows

Token storage

Auth token file has 0600 permissions (owner-read only)

Token rotation

Rotate the auth token anytime from Settings — the old token stops working immediately, no restart needed

Rotating the Auth Token

If your token was exposed — shared in a screenshot, a screen recording, or a config file — rotate it to generate a new one and lock out anyone still holding the old token.

1

Open the MCP Server Settings

Go to Settings → Services and scroll to the MCP Server (AI Integration) section. The Rotate auth token option appears while the server is running.

2

Click "Rotate token"

A confirmation dialog explains the impact: the current token is invalidated immediately, and apps connected by URL with the token, and Claude Desktop set up by an earlier SEO Utils version, lose access until you update them. Click "Rotate" to confirm.

Rotate token in the MCP Server settings
3

Reconnect Your AI Clients

The new token takes effect instantly — no restart of SEO Utils needed.

  • Apps added with a button or command in Connect an AI app (Claude Desktop, Claude Code, Codex, Cursor, VS Code, OpenClaw, Grok Build, Antigravity, Perplexity) — nothing to do: they read the current token from SEO Utils

  • Apps connected by URL with the token (n8n, Make, claude.ai, other HTTP clients) — copy the new token from Connect an AI app → Other MCP apps and replace the old one

  • Connections made with SEO Utils 2.5.0 or earlier — install again from Connect an AI app

Frequently Asked Questions

Is this self-hosted?

Yes! The MCP server runs entirely inside the SEO Utils app on your own machine. Your data stays local — nothing is sent to any third-party server. It works on macOS, Windows, and Linux (including VPS).

What about security? Is my desktop accessible from the internet?

No. The MCP server binds to 127.0.0.1 (localhost) only — it is not accessible from the internet. Only applications running on your own machine can connect to it, and they need a valid Bearer token to authenticate. Your data never leaves your computer.

Can I run this on a VPS for 24/7 automations?

Yes! You can install SEO Utils on a VPS (Linux is supported) and keep it running 24/7. This is great for automations with n8n, Make, etc. — they won't fail when your local machine is turned off. If you need external access from the internet, put SEO Utils behind a reverse proxy (like Nginx) with HTTPS. The built-in Bearer token auth ensures only authorized clients can connect.

Which AI clients are supported?

Any MCP-compatible client works, including:

  • Claude Desktop / Cowork (desktop) — one click (local connection)

  • Claude Code — one click or one command (local connection)

  • OpenAI Codex (ChatGPT desktop app, CLI, IDE extension) — one click or one command (local connection, shared config.toml)

  • Cursor and VS Code (GitHub Copilot) — one click (local connection)

  • OpenClaw, Grok Build — one command (local connection)

  • Google Antigravity — paste a config (local connection)

  • Perplexity (Mac) — paste a command (macOS only, paid plan)

  • ChatGPT desktop app — one click, through Add to Codex (local connection)

  • n8n, Make — via HTTP with the auth token (requires a public HTTPS URL, or n8n on the same machine)

  • Claude Web (claude.ai) — via custom connector, only with its Request headers beta (requires a public HTTPS URL)

  • ChatGPT on the web, Grok (grok.com) — not supported yet: their connectors can't send SEO Utils' auth token

  • Any MCP client — the standard MCP protocol, as a local command (stdio) or over HTTP

None of the local connections need Node.js. See Connecting to AI Assistants.

Can the AI modify or delete my data?

SQL queries are strictly read-only — only SELECT statements are allowed. However, a small set of action tools can write on your behalf: Saved Keywords tools (create/rename/delete lists, add/remove keywords), Organic Rank Tracker tools (create/update reports, add or remove keywords, queue a tracker run — which consumes DataForSEO credits; removing a keyword also deletes its historical positions and insights), LLM Rank Tracker tools (create reports, queue a snapshot run — also consumes DataForSEO credits), Review Fetcher tools (create a review fetch, queue a fetch run — also consumes DataForSEO credits), Content Struct tools (create reports — consumes DataForSEO credits when scraping via the SERP API — and generate AI outlines, which spend your configured AI provider's credits), SERP Clustering tools (create reports and queue clustering runs — scraping and keyword metrics consume DataForSEO credits when it is the chosen method; adding keywords to an existing report is part of a run), Workspace tools (create or rename workspaces), GMB report groups (create/delete), GMB rank tracker reports (delete one or many — permanent: it also removes their keywords, grid, snapshots and ranking history), Automations (create/update/delete), and Internal Links (run Find links, which spends TypeSafe and embedding credit; review suggestions; change the rules; apply or revert links on your live WordPress site). Workspace deletion is intentionally not exposed over MCP — that operation lives in the desktop app. Everything else (GSC, backlinks, snapshots, settings) cannot be modified by the AI.

The AI uses the wrong tool for GSC queries

When asking about your own site's search performance (cannibalization, trending queries, weak pages, etc.), include "in GSC" or "from my Search Console data" in your prompt. Without this hint, the AI may fetch third-party estimated data from DataForSEO instead of querying your actual Google Search Console data stored locally.

Example: Instead of "Find cannibalization issues for example.com", say "Find cannibalization issues for example.com in GSC".

Troubleshooting

MCP server won't start

Make sure you have a valid license key and have purchased MCP access. Check that port 19515 is not being used by another application.

Claude Desktop shows "Server disconnected" or "failed"

This usually means one of these:

  1. Installed with SEO Utils 2.5.0 or earlier — that connection runs mcp-remote on Node.js, and it stops for good if Claude Desktop starts before SEO Utils. Click "Install in Claude Desktop" again with the current SEO Utils: the new connection needs no Node.js and survives either app starting first

  2. SEO Utils is not running — Open the app and make sure the MCP server is enabled (status shows "Running")

  3. Didn't restart Claude Desktop — After installing, you must fully quit and reopen Claude Desktop

Claude's custom connector can't use http://localhost

Claude's custom connectors (Customize → Connectors) run on Anthropic's servers, not on your computer, so they can't reach localhost at all, whatever the URL scheme.

Use "Install in Claude Desktop" instead — it connects locally, with no URL.

"Install in Claude Desktop" says success but nothing shows

Try these fixes in order:

1. Fully kill Claude Desktop (most common fix on Windows)

On Windows, closing the window doesn't quit Claude Desktop — it stays running in the background. Open Task Manager (Ctrl+Shift+Esc), find Claude in the process list, click End Task, then reopen Claude Desktop.

2. Installed with SEO Utils 2.5.0 or earlier?

That setup needs Node.js. Click "Install in Claude Desktop" again with the current SEO Utils, whose connection doesn't.

3. Windows: config file in wrong location

On Windows, Claude Desktop installs as an MSIX package and reads config from a different location than expected. Update to the latest SEO Utils version (v1.45+) which automatically detects the correct path.

If you're on an older version, manually create claude_desktop_config.json at:

instead of %APPDATA%\Claude\. Copy the local (stdio) config from SEO Utils Settings → MCP Server → Connect an AI app → Other MCP apps.

SyntaxError: Unexpected token { / Cannot find module 'node:path'

This comes from the mcp-remote connection that SEO Utils 2.5.0 and earlier installed: Claude Desktop ran it with an old Node.js, which is common with nvm.

Fix: click "Install in Claude Desktop" again with the current SEO Utils, then restart Claude Desktop. The new connection doesn't use Node.js.

The AI says "SEO Utils isn't running"

The AI app is connected, but SEO Utils is closed or its MCP server is off. Open SEO Utils and make sure Settings → MCP Server shows Running, then ask again. There's no need to restart the AI app.

If the AI says the connection dropped during a call and it "may or may not have completed", check the result in SEO Utils before asking it to run the same action again.

"Add to Claude Code" says the claude command wasn't found

SEO Utils looks for Claude Code's claude command in the usual install locations. If it's somewhere else, copy the command shown under the button and run it in a terminal.

"Add to Cursor" or "Add to VS Code" says it couldn't open the app

The app isn't installed, or your system doesn't know it can open its install links. Install or update Cursor or VS Code, open it once, then click the button again.

Queries return no data

Make sure you're in the correct workspace. Use the prompt "List my workspaces" to check which one is active, then switch if needed. A switch ends when your AI app reconnects; to stay in one workspace, see Working Across Client Workspaces.

Does the auth token change when I restart SEO Utils?

No. The auth token is generated once and persists across restarts. You only need to set up the connection once — it will keep working after restarting SEO Utils or your computer.

The token only changes when you rotate it yourself via Settings → MCP Server → Rotate token (see Rotating the Auth Token). After a rotation, only apps connected by URL with the token need the new one.

Last updated