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
| Tools | Data |
|---|---|
get_report_digest, get_overview, get_visibility_trend | Headline visibility with confidence intervals and change, the competitor ranking, daily trend, what moved |
list_prompts, get_prompt | Every tracked prompt with its window metrics; one prompt in depth with its answers |
list_competitors, list_products | Competitors and products on the same answers |
list_source_domains, list_source_urls, get_citation_index, list_pr_opportunities, list_fan_out_queries | The sources engines read and cite, whether they name you, and the sub-queries engines ran |
get_brand_perception | Verbatim quotes, themes (strengths, weaknesses, misconceptions), perceived competitors |
list_recommendations, list_pages, list_placements | Task Center: what to do, page audits, shopping and ad placements |
list_answers, get_answer | The raw AI answers, with the entities named and sources cited |
get_metric_definitions | How 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.