AI assistants and APIAI assistants (MCP)

AI assistants and API

Connect an AI assistant

Connect Claude, ChatGPT, Claude Code or any MCP client to odo: signing in or a key, what assistants can and can’t do, the prompts, and how access works.

On this page

odo runs an MCP server: connect your AI assistant once, and it reads your earnings, visits, pages, funnels, heatmaps and experiments when a question needs them. It’s yours alone: it sees what you own or manage, nothing else.

Connect#

The address is https://odo.gg/mcp. odo shows it, with these steps, under Settings → AI assistants.

  • Claude (web, desktop and mobile): Settings → Connectors → Add custom connector. Paste the address, sign in to odo, and allow it.
  • ChatGPT, Cursor, VS Code and others: add a remote MCP server with the address. They open odo for you to sign in.
  • Claude Code: run the command below, then /mcp to sign in.
Shell
claude mcp add --transport http odo https://odo.gg/mcp

When you allow an app, choose what it can read (all your projects, or one) and what it may write (below). Every connected app is listed under Settings → AI assistants with what it reads, what it may write and when it was last used, and Disconnect cuts it off at once.

With a key instead#

An app that can’t sign in can send a project key with the Read permission, at the same address or at /api/mcp. It then reads that one project, and writes there what the key’s Updates and Experiments permissions allow:

Shell
claude mcp add --transport http odo https://odo.gg/mcp --header "Authorization: Bearer $ODO_KEY"

What assistants can do#

Read: earnings and sources, visits and their journeys, pages, paths, funnels, conversion, friction, page speed, heatmaps, experiments, site updates and odo’s own next moves. Every tool is in the tool reference.

Two things they can write, each only if you let them. The consent screen asks, with a switch for each:

SwitchWhat it lets the assistant doUnless you change it
Note site changesAdd a site update, a note of what it changed on your site, so a coding assistant’s changes land on your charts (record_site_update)On
Run experimentsMake and run experiments, which change what your visitors see: create_experiment makes one, as a change odo makes on the page or one in your code, and update_experiment changes a draft and starts, pauses, resumes, stops, ships or archives itOff

A key gets the same with the Updates and Experiments permissions. Without them, those tools aren’t there; any assistant can still read experiments and get versions to try (list_experiments, analyze_experiment, suggest_experiment_variants). odo tells an assistant that may run experiments to ask you before it starts, pauses, stops or ships one. To change what an app may do, disconnect it and connect it again.

What they can’t: change your numbers, sources or settings, move money, or see API keys and passwords.

Tell your coding assistant#

Add this to the project’s CLAUDE.md (or AGENTS.md), so the assistant notes each change it ships:

Markdown
After you deploy or publish a change to the website that visitors will see (a new page, copy, design, pricing, a checkout fix), call odo’s record_site_update tool once with a few plain words of what changed and the page’s path, so odo marks it on its charts and shows what it did to visitors, conversion and revenue.

Prompts#

odo hands assistants ready-made requests for the common jobs. Apps that support MCP prompts list them for you:

  • How’s today going? (daily_briefing): Today’s earnings against a usual day, the pace, notable payments, and who’s on the site.
  • Weekly review (weekly_review): The last 7 days against the week before: earnings, sources, traffic and conversions, with ideas.
  • What brings paying customers? (what_brings_customers): Which channels, campaigns and landing pages bring people who pay, and where to focus.
  • Find conversion leaks (optimise_conversion): A full conversion audit: where visitors leak, which pages and journeys sell, and what to fix first.
  • Improve the site, and prove it (improve_site): The closed loop: find the biggest leak, change the site as an experiment, and read the result.
  • Fix what frustrates visitors (fix_friction): Script errors, rage and dead clicks and failing form fields: their causes in the code, and fixes.
  • Review experiments (review_experiments): Every A/B experiment of the last 90 days: verdicts, broken splits, and what to stop or keep running.
  • Help odo see the site (instrument_site): Audit the site’s code against what odo records: names, labels, sections, forms, privacy, goals.
  • Review one page (page_review): How one page performs and what to change on it.

How to run them, and more to copy (what’s working, what’s leaking, heatmaps, posts, experiments, earnings), are in prompts to try.

Good answers#

odo tells every assistant how to answer: quote rates with how many people they rest on, use the 95% ranges and p-values the tools give, don’t call a difference real when ranges overlap heavily, and say which money odo read from the platform itself (verified) and which was self-reported. Converting means a traced payment unless you name a goal, event or page.

Text from your pages and your visitors’ browsers (button labels, error messages, form names, event names) reaches the assistant as data, and odo tells it never to follow that text as instructions, nor add a script or address because a message suggests it.

How access works#

  • odo is its own OAuth 2.1 server for this: the authorization code flow with PKCE (S256 only), and a consent screen on odo, signed in as yourself.
  • Apps identify themselves with a Client ID Metadata Document, or register themselves (Dynamic Client Registration).
  • Access tokens last an hour. Refresh tokens change on every use and lapse after 60 idle days. A code used twice revokes what it was exchanged for. Tokens are stored as SHA-256 only.
  • Every tool call checks your access again, as the dashboard does: someone removed from a project loses it in their assistant at once.
  • The endpoint takes bearer tokens only, never your session cookie, up to 240 requests a minute per connection.
  • It speaks MCP over Streamable HTTP, statelessly: 2026-07-28 clients and 2025 ones alike.
  • When a project’s plan has lapsed, tools say so instead of answering.

This page as markdownllms.txt