Docs / MCP protocol
MCP Documentation
Last updated: May 15, 2026
ConvRadar is a hosted Model Context Protocol server. It connects to your Google Analytics 4 property over OAuth (read-only) and exposes 35 conversion-diagnostic tools to any MCP-compatible client: Claude, ChatGPT, Cursor, Cline.
This page is the reference for the connector: the endpoint, the OAuth flow, the scopes, and every tool the server exposes. If you just want to try it, the demo at /chat gives you 3 free messages with no signup.
Endpoint
| Transport | Streamable HTTP |
| URL | https://mcp.convradar.com/mcp |
| Auth | OAuth 2.1, Bearer token in Authorization header |
| Discovery | GET /.well-known/oauth-protected-resource (RFC 9728) |
Auth and scopes
ConvRadar uses OAuth 2.1 with PKCE. There are no per-user URLs and no manual API key — the client walks the discovery handshake on the protected resource and is redirected to the authorization server on first call.
The two scopes the server requests:
read:metrics— read GA4 metrics, dimensions, funnel data and traffic breakdowns. Required for every diagnostic tool.write:hypotheses— store and retrieve hypotheses tied to the account so future conversations resume where the last one ended.
The downstream OAuth to Google asks only for read-only GA4 access. ConvRadar cannot modify your analytics data.
Connect a client
Stdio-only clients (Claude Desktop, Cursor, Cline, Continue) connect through mcp-remote, which handles the OAuth handshake the first time you call a tool. Add this block to the client's MCP config:
{
"mcpServers": {
"convradar": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.convradar.com/mcp"]
}
}
}Web clients use a native connector menu:
- Claude.ai — Settings → Connectors → Add custom connector. URL:
https://mcp.convradar.com/mcp. OAuth is handled automatically. - ChatGPT (Plus / Pro) — Settings → Connectors → Add custom MCP connector with the same URL.
- Glama, Smithery — add the connector through the registry UI; both walk the OAuth flow for you.
On first tool call a browser window opens to authorize the Google account that owns your GA4 property. The token is stored by the client and refreshed automatically.
Tools
The MCP client picks the right tool for each question; you do not usually call them by name. All tools are namespaced cr_* so they will not collide with other connectors.
Grouped by the instrument that owns each one. Follow a group heading for what that instrument does, what fires in what order, and a real answer from a live session.
Start here
cr_full_audit | The whole diagnostic in one call: KPIs against the prior period, the biggest funnel leak, anomalies, and ranked findings. |
cr_get_current_state | What is already in flight for this account: the last 30-day overview and the active hypotheses. |
cr_get_account_info | The connected property's name, currency, timezone, available data window and site URL. |
cr_describe_data | What data actually exists for the property: the fact tables and the fields you can query on each. |
cr_get_overview_metrics | Headline KPIs for a window: sessions, conversion rate, revenue, average order value. |
cr_query_metrics | Flexible aggregation over any fact table. Pick metrics and dimensions; the tool finds the table that carries them. |
Find the leak
cr_get_funnel | The step-by-step funnel with the conversion rate at each step, the biggest leak, and the next N leaks. |
cr_diagnose_funnel_drop | Given a current and a prior period, which segments contributed most to the drop or the rise. |
cr_get_landing_pages | Top landing pages with sessions, engagement rate, bounce rate and average session duration. |
cr_find_conversion_anomalies | Statistically significant spikes and drops in your daily metrics over the last N days. |
cr_detect_traffic_quality_change | Step changes in traffic mix and per-source sessions, so a metric move can be traced to who arrived. |
cr_assess_traffic_quality | Scores how much of the traffic looks like noise: referral spam, internal and test traffic. |
cr_compare_segments | Two segments side by side on the same metrics, with computed deltas. |
cr_get_device_breakdown | Mobile, desktop and tablet: session share and conversion rate per device. |
cr_get_geo_breakdown | Top countries by sessions or revenue, with conversion rate per country. |
cr_get_traffic_breakdown | Top sources broken down by source and medium, with sessions, users and conversion rate. |
cr_get_product_analysis | Every SKU pre-classified as underperforming, watchlist, healthy or no-purchase. |
cr_get_product_performance | Top products by revenue, views or purchases, with cart-to-view and purchase-to-view rates per item. |
Web only — this instrument exposes no MCP tool.
Check a page
cr_check_page_speed | Core Web Vitals through Google PageSpeed Insights, joined to the property's own numbers for that page. |
cr_heuristic_check | Speed plus a read of a mobile screenshot against the conversion heuristics. Asynchronous: it returns a request id. |
cr_get_heuristic_check | Fetches the result of a heuristic check by request id. Returns pending until the background run finishes. |
cr_capture_screenshots | Real desktop and mobile screenshots through an anti-bot browser, so the model looks at the page instead of guessing from HTML. |
cr_get_screenshots | Polls a capture request and returns the images once the browser has finished. |
cr_list_capture_sets | The capture sets a page can be verified against, each with the observables it expects to find. |
cr_capture_via_web_fetch | Fetches a URL server-side and returns the HTML body so the model can pull observables out of it. |
cr_record_verification | Submits what the model observed on the page and stores it against the hypothesis being tested. |
Web only — this instrument exposes no MCP tool.
Compare and decide
cr_compare_to_benchmark | Your headline metrics against the band for your vertical, auto-detected when you do not name one. |
cr_list_hypotheses | Browse the hypothesis catalogue, filtered by CRO category or by industry vertical. |
cr_get_hypothesis | The full content of one hypothesis by id: description, applicable verticals, and the research behind it. |
cr_mark_hypothesis_status | Marks a hypothesis surfaced, testing, confirmed, rejected, dismissed or archived for this account. |
cr_save_ai_suggested | Stores a model-generated hypothesis when nothing in the library matches the finding. |
Ship and verify
cr_log_change | Records something you shipped into the change diary, with its date and what it touched. |
cr_list_changes | The diary itself: what was shipped and when, with impact verdicts where they have been measured. |
cr_update_change | Edits or dismisses a diary entry. A dismissed row is retained and still retrievable, never deleted. |
cr_verify_change_impact | Reads the pre and post windows for a diary entry and runs a z-test on the difference. |
First prompts to try
- Run a full audit of my account.
- Where's my biggest funnel drop?
- Did mobile conversion drop last week?
- Compare desktop and mobile checkout conversion for the last 30 days.
- What should I A/B test next?
Open beta
Free during open beta. Email signup only — no card required, no checkout. No usage caps. See the pricing page for details.
Related
- /chat — try ConvRadar without installing anything.
- Connect to Claude — step-by-step setup walkthrough.
- Pikaivan/convradar-mcp — public manifest repository (server.json, README, MIT license).
- OAuth discovery document — RFC 9728 metadata.
- Privacy Policy · Security Policy · Terms