MCP server
Let Claude, ChatGPT, Cursor and other AI assistants read your visibility data, with the same numbers as the dashboard.
YOUR_API_KEY with a key from Settings → API and MCP. Keys are shown once when you create them.Onym runs a hosted Model Context Protocol server. Connect it once and your assistant can answer questions like "Which competitors gained on ChatGPT this month?" or "Show me answers where Northwind was named and we weren't", looking up the real answers itself.
| URL | https://getonym.com/mcp |
| Transport | Streamable HTTP (stateless JSON responses) |
| Auth | An API key as a Bearer token, or OAuth for connector UIs |
| Access | Read-only, except add_prompts with a write key |
Connect with an API key
Create a key in Settings → API and MCP. A read key is enough.
claude mcp add --transport http onym https://getonym.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"// ~/.cursor/mcp.json
{
"mcpServers": {
"onym": {
"url": "https://getonym.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}// .vscode/mcp.json
{
"servers": {
"onym": {
"type": "http",
"url": "https://getonym.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}{
"onym": {
"type": "streamable-http",
"url": "https://getonym.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}Connect with OAuth (Claude.ai, ChatGPT)
Connector UIs that can't send headers sign in with OAuth instead. Add a custom connector with the URL https://getonym.com/mcp and leave the credentials empty:
- Claude.ai: Settings → Connectors → Add custom connector.
- ChatGPT: Settings → Connectors → Create, with developer mode turned on.
You'll be sent to Onym to sign in, pick a workspace and approve read access, or write if you're an editor or above and the client asks for it. Connected apps are listed in Settings, where an admin can disconnect them.
OAuth access tokens last an hour and refresh automatically for 30 days of use. Onym supports dynamic client registration and PKCE, so there's nothing to configure.
Things to ask
- "What's our visibility on each surface this month, and which changes are significant?"
- "Which prompts do we lose to Northwind on Perplexity? Show me two of those answers."
- "Which third-party sites are cited when competitors are named and we aren't?"
- "What changed in the last run?"
- "Add these five questions to our tracked prompts as suggestions."
Tools
| Tool | What it does | Required | Key |
|---|---|---|---|
list_domains | List the domains tracked in this workspace, with last run dates. | — | read |
get_visibility | Headline metrics for a domain: visibility, share of voice, average position and citation rate, each with sample size, 95% range and a significance-tested change vs the previous period. | domain | read |
get_trend | Visibility per run for the brand and its top competitors. | domain | read |
get_competitors | Every tracked competitor's visibility, share of voice, position and change, plus untracked brands the engines name. | domain | read |
get_prompts | The domain's prompts with per-prompt visibility, change and the competitor named most. | domain | read |
get_prompt | Metrics, brands, sources and the latest answer per surface for one prompt. | domain, prompt_id | read |
get_sources | Domains and URLs the AI answers cite. view=gap lists third-party pages cited when competitors are named and the brand isn't. | domain | read |
search_answers | Find the actual AI answers. show=missing returns answers that name a competitor but not the brand. | domain | read |
get_answer | Full text, brands in order, citations and the searches the engine ran. | domain, answer_id | read |
get_changes | Significant run-over-run changes (only those beyond normal noise). | domain | read |
get_opportunities | Ranked opportunities (content to publish, pages to get on) with evidence, and measured impact for shipped ones. | domain | read |
add_prompts | Add questions to track. They arrive as suggestions and cost nothing until activated in the dashboard. Needs a write key. | domain, prompts | write |
Every analytics tool takes the same optional filters as the API: range, surface, topic and branded. domain accepts a host or an ID. Results come back as text and as structured content; very long results are cut at 60,000 characters, so narrow the filters if you see "truncated".
Limits
MCP calls count against the same limit as the API: 600 requests a minute per key. The server's instructions tell assistants that every rate has a sample size and that a change is only real when significant is true, so they tend to report numbers carefully.