MCP server

Connect Claude, ChatGPT, Cursor or any MCP client to your workspace data, and build reports from it.

Every Geonimo workspace is also an MCP server. Connect the assistant you already use and it can read the same measurements the dashboard shows: visibility, prompts, competitors, sources, perception, recommendations and the collected answers themselves. It is read-only and scoped to one workspace.

The endpoint is the same for everyone:

https://geonimo.com/api/mcp

How you connect depends on the client. Hosted apps — Claude.ai, ChatGPT — sign you in with your Geonimo account and need no key. Desktop and editor clients — Claude Code, Cursor, Claude Desktop — take an API key you create in Geonimo.

Option A: Claude.ai, ChatGPT and other hosted connectors

Add a custom connector with the endpoint above and nothing else.

The app will send you to Geonimo to sign in. You pick which workspace it may read, click Allow access, and you are returned to the app connected. There is no key to copy and nothing to store.

Because the connection is tied to one workspace, connecting a second one means running the same step again from the app and choosing the other workspace.

To end a connection, open MCP Server in Geonimo and press Disconnect next to the app under Connected apps. It loses access immediately, everywhere it is running, and has to sign in again to come back. Your other workspaces are unaffected.

If you have multi-factor authentication enabled, approving a connection requires a session where you have completed it.

Option B: create an API key

Open MCP Server in the sidebar (under Monitoring) and click Create key. Name it after the client or person that will use it, pick an expiry, and copy the key when it appears: it is shown once and never stored.

A key acts as the member who created it. If that member leaves the workspace, every key they created is revoked, and re-inviting them later does not bring it back. You can revoke your own keys at any time; owners can revoke anyone's.

If you have multi-factor authentication enabled, creating and revoking keys requires a session where you have completed it.

Connect a client with the key

Streamable HTTP, with the key as a bearer header on every request. The MCP Server tab shows paste-ready snippets for each client with your new key already filled in.

Claude Code

claude mcp add --transport http geonimo https://geonimo.com/api/mcp \
  --header "Authorization: Bearer YOUR_GEONIMO_API_KEY"

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "geonimo": {
      "type": "http",
      "url": "https://geonimo.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_GEONIMO_API_KEY" }
    }
  }
}

Claude Desktop (claude_desktop_config.json, via the mcp-remote bridge; needs Node.js)

{
  "mcpServers": {
    "geonimo": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://geonimo.com/api/mcp", "--header", "Authorization:${AUTH_HEADER}"],
      "env": { "AUTH_HEADER": "Bearer YOUR_GEONIMO_API_KEY" }
    }
  }
}

Any other MCP-compatible client works the same way: Streamable HTTP transport, the endpoint above, and the Authorization header. Requests must also send Content-Type: application/json and an Accept header naming both types, so a default */* is refused:

curl -sS https://geonimo.com/api/mcp \
  -H "Authorization: Bearer YOUR_GEONIMO_API_KEY" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

If a client cannot connect

  • "Not acceptable" or a 406: the client is not sending Accept: application/json, text/event-stream.
  • A 401 with a key: the key is wrong, revoked or expired. Create a fresh one and try again.
  • A hosted connector fails at sign-in: check the URL is exactly https://geonimo.com/api/mcp, with no trailing path. The connector discovers everything else from there.
  • "Server unreachable" from Cursor: check "type": "http" is present. Without it some versions try Server-Sent Events, which this endpoint does not offer.

Ask

Once connected, ask in plain language. For example:

  • "Write our weekly visibility report: what moved, who gained, and what we should do about it."
  • "Which prompts did we lose visibility on this month, and who took them?"
  • "Which sources cite our competitors but never us? Draft an outreach brief for the top three."
  • "How do ChatGPT and Perplexity describe us differently? Quote them."

Clients that list MCP prompts also show five report recipes, each a complete brief the assistant follows: weekly_visibility_report, competitor_gap_analysis, source_outreach_brief, prompt_loss_investigation and brand_perception_summary.

What the assistant can read

ToolsData
get_report_digest, get_overview, get_visibility_trendHeadline visibility with confidence intervals and change, the competitor ranking, daily trend, what moved
list_prompts, get_promptEvery tracked prompt with its window metrics; one prompt in depth with its answers
list_competitors, list_productsCompetitors and products on the same answers
list_source_domains, list_source_urls, get_citation_index, list_pr_opportunities, list_fan_out_queriesThe sources engines read and cite, whether they name you, and the sub-queries engines ran
get_brand_perceptionVerbatim quotes, themes (strengths, weaknesses, misconceptions), perceived competitors
list_recommendations, list_pages, list_placementsTask Center: what to do, page audits, shopping and ad placements
list_answers, get_answerThe raw AI answers, with the entities named and sources cited
get_metric_definitionsHow every number is defined, so reports use the right words

Every windowed tool takes window_days (and end_date where the underlying read supports it) and reports the window it used. Visibility always comes with its 95% confidence interval, and changes inside the noise floor are flagged so the assistant reports them as no significant change.

Security

  • Access is read-only, whichever way you connect. Nothing an assistant does over MCP changes your workspace.
  • A connection reads exactly one workspace. Requests for any other workspace's data are refused as not found.
  • Keys and connector tokens alike are stored hashed; Geonimo cannot recover a lost key.
  • Both inherit the reach of the member behind them, and both are revoked automatically if that member leaves the workspace — re-inviting them later does not bring the access back.
  • A connector's access expires and renews on its own, and pressing Disconnect ends it immediately. Prefer it where the client offers it.
  • An API key does not expire unless you set an expiry, so treat it like a password: set an expiry on anything shared, revoke it the moment you suspect it leaked, and create a new one. Each member can hold ten active keys per workspace.