MCP server

Connect Claude, 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.

1. 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.

2. Connect a client

The endpoint is https://geonimo.com/api/mcp (Streamable HTTP). Every request carries the key as a bearer header. 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":{}}'

Claude.ai's web connectors require OAuth and cannot use an API key yet.

If a client cannot connect

  • "Not acceptable" or a 406: the client is not sending Accept: application/json, text/event-stream.
  • An OAuth or authorization error: usually a wrong, revoked or expired key. Geonimo's MCP server has no OAuth flow, so a client that starts one has been refused with a 401. Create a fresh key and try again.
  • "Server unreachable" from Cursor: check "type": "http" is present. Without it some versions try Server-Sent Events, which this endpoint does not offer.

3. 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

  • Keys are stored hashed; Geonimo cannot recover a lost key.
  • Access is read-only. Nothing an assistant does over MCP changes your workspace.
  • A key reads exactly one workspace. Requests for any other workspace's data are refused as not found.
  • A key inherits the reach of the member who created it, and dies with their membership.
  • Each member can hold ten active keys per workspace. Set an expiry on anything shared.
  • Treat a key like a password: revoke it the moment you suspect it leaked and create a new one.