UPGeoSEO

MCP integration

Run your SEO from your editor.

Pull your findings and paste-ready fix-prompts into any AI coding CLI over MCP — and, when you want, let it do the work too: plan the calendar, write an article, publish it. Every action that changes something asks you to confirm first.

The loop this is for

Audit → fix-prompt → your coding agent.

get_fix_prompt returns an instruction written for a coding agent, not a human checklist: what the finding means, how to fix it, and the severity and area it affects. Your assistant reads a finding from your audit, asks for its fix-prompt, and applies it to the repo it already has open — the audit and the code never leave your editor.

  1. 1

    Run a free audit on your site — no account needed.

  2. 2

    Connect the MCP server with your token (below).

  3. 3

    Ask your assistant to pull a finding and its fix-prompt, and apply it.

Worth knowing

Audits are started in the dashboard — no MCP tool starts one. Over MCP you read the runs and their findings. A fix-prompt is guidance for your agent, per finding type; it is not a patch, and your agent still has to make and check the change.

What you get

39 tools your assistant can call.

Once connected, your AI coding CLI can ask UPGeoSEO for your sites, audits and fixes — and act on them. The list below is generated from the server itself, so it is what is actually registered today, not a summary someone wrote once.

Read — 22 tools

These only look. They return your own data and change nothing.

  • detect_locales

    Show the languages detected on one of your sites.

  • get_ai_visibility

    The site's most recent completed AI-visibility probe cycle rates.

  • get_analytics

    Google Analytics 4 report for one of your sites.

  • get_analytics_realtime

    GA4 realtime active users, by country and page.

  • get_article

    Look up one article by id: its title, language, status, whether it is the PRIMARY or a translation, slug, live URL, image refs, SEO score, and its whole translation group.

  • get_article_impact

    SEO + GEO impact deltas/trend for one article vs.

  • get_audit_findings

    PAGINATED — returns at most `limit` findings (default 50, max 200) with `page.hasMore` and `page.nextOffset`; read `summary` for totals by severity and type, then page with `offset`.

  • get_bing_performance

    Bing Webmaster traffic, per-page stats, and crawl stats for one of your sites.

  • get_calendar

    PAGINATED — the content calendar for one of your sites: each slot's scheduled date, TARGET KEYWORD (with its volume/competition), locale, role, intent, and the article it produced.

  • get_fix_prompt

    Get a ready-to-paste remediation prompt for a finding type.

  • get_geo_summary

    Live GA4 rollup of AI-assistant referral traffic (ChatGPT, Perplexity, Gemini, Claude, Copilot, You.com).

  • get_impact_report

    The site's impact report: clicks/impressions/avg position for the last 28 days vs.

  • get_index_status

    Stored Google/Bing index verdicts for one of your sites' articles.

  • get_indexnow_setup

    Show the IndexNow verification file one of your sites must serve so Bing, Yandex, Seznam and Naver accept the URLs we submit on your behalf.

  • get_integration_schemas

    Get JSON Schema for everything UPGeoSEO emits to your own systems (Article, WebhookPublishPayload, RssItem, StructuredData, TranslationGroup) plus the MCP tool index and per-channel integration guides.

  • get_keyword_metrics

    The STORED search metrics for one keyword on one of your sites (volume, competition, CPC, difficulty, market, source, measured-at).

  • get_keywords

    PAGINATED — the keywords discovered for one of your sites, with volume, competition, difficulty, intent, source, and whether each is already scheduled on the calendar.

  • get_search_performance

    Google Search Console performance for one of your sites (clicks, impressions, CTR, position).

  • get_site_speed

    The last stored PageSpeed Insights check (mobile + desktop).

  • get_usage

    Show this month's action usage for one of your sites — what each limit counts, used/total, reset date.

  • list_audits

    List recent audit runs for one of your sites.

  • list_sites

    List the sites in your account, with each site's id, URL, and latest audit scores (foundation + AI-readiness).

Write — 17 tools

These change something: they add a site, plan a calendar, write, translate, publish or delete. Most are confirm-gated (below); all of them are limited to your own account.

  • add_site

    Add a new site to your account by its URL: crawls it and builds its brand profile.

  • connect_publish

    Add a publish destination for a site: a WordPress site or a webhook.

  • create_focusasks first

    Concentrate promotion on a new feature (sourced through real demand; the feature name is never the keyword; other articles of that language mention it) or a newly launched language, without adding articles.

  • delete_articleasks first

    Permanently delete one article, or every non-primary translation of a group.

  • generate_articleasks first

    Write ONE article now for a site (inline, ~30-60s).

  • generate_articles_bulkasks first

    Enqueue many background article-generate jobs at once (returns immediately).

  • generate_calendarasks first

    Plan a content calendar for one of your sites.

  • launch_localeasks first

    Re-run native content research for one of this site's already-enabled languages.

  • publish_articleasks first

    Publish a DRAFT article to the site's connected destination.

  • publish_translationsasks first

    Cascade-publish a whole translation group: the primary plus every draft sibling.

  • recrawl_site

    Re-learn one of your sites: re-crawl it and refresh the crawl-derived brand profile and brand colors.

  • refresh_locale_keywordsasks first

    Refresh a non-primary locale's keyword ideas: purge unscheduled backlog keywords and re-discover fresh native ones.

  • refresh_og_imagesasks firstadmin only

    ADMIN ONLY.

  • reschedule_item

    Move a PLANNED calendar item to a new publish date.

  • research_keywordsasks firstadmin only

    ADMIN ONLY.

  • translate_articleasks first

    Translate an existing article into the site's other enabled languages (background jobs).

  • update_site_profile

    Complete or edit a site's onboarding / brand profile and (admin-only) its publishing schedule.

Before anything changes

Every action asks you first.

The tools that spend money or change your site use a two-call flow. The first call changes nothing — it returns a preview of exactly what would happen, and a note that confirmation is required. Only a second call carrying confirm:true does the work. Your assistant shows you the preview in between, so an agent cannot quietly publish or spend on your behalf.

What the first call returns

{
  "confirm_required": true,
  "message": "This will generate 1 article for example.com …
              Call generate_article again with confirm:true to proceed."
}

A handful of write tools are not confirm-gated because they are cheap and reversible — adding a site, re-crawling one, editing its profile, moving a calendar item. Nothing that publishes or spends is in that group.

Get your token

Generate a token, once.

Every client below authenticates with the same thing: a personal token that scopes access to your account. Here’s where to get it.

1

Sign in to your UPGeoSEO account (or create one — it’s free to start).

2

Open Dashboard → Your profile and find the API access (MCP) card.

3

Click Generate token. Copy it now — it starts with ugs_live_ and is shown only once.

Connect your client

Point your AI coding CLI at the server.

UPGeoSEO speaks standard MCP over Streamable HTTP with bearer auth, so it works with any client that supports a remote HTTP server and a custom header. Pick yours below and swap YOUR_TOKEN for the token you generated.

Claude Code (CLI)

One command adds it — run it from anywhere:

claude mcp add --transport http upgeoseo \
  https://app.upgeoseo.com/api/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

Cursor

Add an entry to ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project:

// ~/.cursor/mcp.json  (or .cursor/mcp.json in your project)
{
  "mcpServers": {
    "upgeoseo": {
      "url": "https://app.upgeoseo.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}

Windsurf

Add it to Windsurf’s mcp_config.json with the same url + headers shape:

// Windsurf → mcp_config.json
{
  "mcpServers": {
    "upgeoseo": {
      "url": "https://app.upgeoseo.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}

Note: some Windsurf versions name the field serverUrl instead of url. If url doesn’t take, rename that one key — everything else stays the same.

Cline & other VS Code MCP extensions

Add a server to your .mcp.json (or the extension’s MCP settings), url + headers as usual:

// .mcp.json (or your MCP extension's settings)
{
  "mcpServers": {
    "upgeoseo": {
      "url": "https://app.upgeoseo.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}

Any other MCP client — the raw facts

If your client supports a remote HTTP MCP server with custom headers, it works. The only three things it needs:

  • Transport: Streamable HTTP
  • Endpoint: https://app.upgeoseo.com/api/mcp
  • Auth: HTTP header Authorization: Bearer <token>

Exact config-file paths and field names vary by client and by version. The constant is always the same: the URL above, plus the Authorization: Bearer header carrying your token.

Try it

Once it’s connected, just ask.

You don’t call the tools by name — you talk to your assistant, and it picks them. A few things to try:

“List my sites.”

“Show the open findings for example.com.”

“Get the fix prompt for h1_missing and apply it to this repo.”

Security

Scoped to you, confirm-gated, revocable.

Your account, and only yours

A token is bound to one account. Every tool takes its site ids from your own account and no tool accepts an account id as an argument, so a client holding your token cannot reach anyone else’s data — including by asking for it.

Writes are gated, not blocked

This is not a read-only integration: 17 of the 39 tools change something. What protects you is the confirm step, your plan’s monthly limits, and the fact that publishing goes through the same checks as the dashboard.

Revoke anytime

Delete a token from the same API access (MCP) card whenever you want. Once revoked, any client still holding it stops working immediately.

Shown once

We show a new token a single time, at generation. If you lose it, you don’t recover it — you generate a fresh one and swap it in.

Fix what the audit finds — without leaving your editor.

Create an account, generate a token, and point your AI coding CLI at UPGeoSEO. Your findings and fix-prompts, right where you write code.