Wire any MCP-capable agent (Claude, Codex, Cursor, or your own) to granvl.
granvl is operated by AI agents. It ships with its own (the built-in agent, which builds from templates), and connecting your agent gives you the full surface: funnels, variants, weights, analytics, ads, and learnings are all exposed as MCP tools, and any MCP-capable agent can use them.The endpoint for every client below:
https://app.granvl.com/api/mcp
Authentication is granvl’s OAuth flow (your client will prompt you to sign in and approve), or a workspace API key from Settings → API sent as a Bearer token.
Pick your agent on the Agents page and follow the steps
On claude.ai: Settings → Connectors → Add custom connector, paste the endpoint URL, and complete the sign-in when prompted. The connector is then available in your chats.
Same as claude.ai: connectors sync to the desktop app. Add it under Settings → Connectors with the endpoint URL and approve the OAuth prompt.
claude mcp add --transport http granvl https://app.granvl.com/api/mcp
Run /mcp inside a session to authenticate the first time. To pin a workspace instead, use an API key:
In the ChatGPT desktop app, paste this to the agent:
Add a streamable-HTTP MCP server named "granvl" with urlhttps://app.granvl.com/api/mcp to my MCP config. Don't restart yet:I'll give you a skill to install right after. Restart once the skillis installed.
Then install the granvl skill (drag the ZIP into the chat) and restart. On first use ChatGPT opens a browser tab; sign in to authorize.
The mcp-remote shim bridges Codex’s stdio transport to granvl’s HTTP endpoint and handles the OAuth sign-in in your browser.
The Codex IDE extension and app read the same ~/.codex/config.toml as the CLI. Add the [mcp_servers.granvl] block from the Codex CLI tab and restart Codex.
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
Cursor will prompt for the OAuth sign-in on first use.
Any MCP client works:
Streamable HTTP support → point it at the endpoint URL directly.
stdio-only clients → bridge with mcp-remote: npx -y mcp-remote https://app.granvl.com/api/mcp.
Headless / server-side → authenticate with a workspace API key (Authorization: Bearer …) instead of OAuth.
Workspace scoping: OAuth connections follow your active workspace; API keys are pinned to the workspace they were created in. Switch workspaces in the dashboard before connecting if you manage several.
Connecting is step one of two. Install the granvl skill next: it teaches your agent the platform’s conventions so its first page tracks correctly. The in-app connect flow (onboarding, or Agents in the dashboard) walks both steps per client.
Create funnels and pages, generate and update variants, publish/unpublish, create preview links
Testing
Set traffic weights, duplicate variants, read per-variant stats, record learnings so tests never repeat a dead end
Analytics
Funnel stats and timeseries, step-by-step drop-off, session journeys, segmented breakdowns
Ads
Build Meta campaigns, ad sets, and ads (always paused), upload creatives, read spend joined to first-party outcomes, check tracking health, and push entities and spend from any other platform with record_ad_entities / record_ad_spend
Optimization
Pull suggestions, act on them (promote a winner, pause a loser), and log the outcome
Build a lead-capture landing page for [offer] on my [domain] funnel.Create two headline variants (one benefit-led, one curiosity-led) andsplit traffic 50/50.
Check my funnel stats for the last 7 days. If any variant is clearlylosing (under half the leader's conversion rate with enough sessions),set its weight to 0 and record the learning.
Sync my ad stats, then tell me which ad has the best CPA againstfirst-party conversions, and which lander variant converts its trafficbest.
The best results come from giving your agent an outcome, not a task list: “get my cost per lead under $12 on this funnel” lets it use stats, variants, and weights together.