> ## Documentation Index
> Fetch the complete documentation index at: https://docs.funeli.top/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP tools: analytics and experiments

> Reference for the Funeli MCP tools for analytics and experiments: what each tool does, its parameters and whether it changes live funnels.

Funnel performance, events, visitor answers, conversions and A/B experiments. Agents call these tools for you; this page lists what each one does and the parameters it takes.

## get\_analytics\_overview

**Get analytics overview.** Read-only.

Organization-wide analytics for every non-archived funnel over one time window: per-funnel visitors, purchases and revenue plus aggregate conversion, revenue per visitor and funnels with traffic. Use this before drilling into one funnel with get\_analytics.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `days` | integer | no | Window ending now; default 30 |
| `from` | string | no | ISO date/time; overrides days |
| `to` | string | no | ISO date/time |
| `projectId` | string | no | Project to read; omitted = the current project. Does not switch projects |

## get\_analytics

**Get analytics.** Read-only.

Funnel performance report (unique visitors): totals (visitors, paywall views, purchases, revenue, conversion, revenue per visitor), steps (reach, exits = visits that ended there, exitRate = the real drop-off, median time), checkout funnel (paywall -> checkout open -> form loaded -> details entered -> submit -> success), paywalls (each paywall incl. exit-offer paywalls), plans, payment methods, decline reasons, sources/acquisition breakdowns (UTM, referrer, landing URL, country, device, browser, OS, language or variant via groupBy), component-level interactions (stable component id/type, event counts, safe choice distribution and plan selections), daily series, upsells (with charged revenue), conversions (ad-platform events by delivery status). Revenue is in minor units (cents).

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `days` | integer | no | Window ending now; default 30 |
| `from` | string | no | ISO date; overrides days |
| `to` | string | no | ISO date |
| `version` | integer | no | Only sessions that saw this published version. Omit for all versions merged: steps are lined up across versions (removed steps stay, marked status "removed"; firstVersion/lastVersion say when each existed) and each step's rate is over the visitors who had it (eligibleVisitors) |
| `utmSource` | string | no | Only this utm\_source ("(none)" = no utm) |
| `utmCampaign` | string | no | Only this utm\_campaign |
| `groupBy` | "utm\_source" \| "utm\_medium" \| "utm\_campaign" \| "utm\_content" \| "utm\_term" \| "referrer" \| "landing\_url" \| "country" \| "device" \| "browser" \| "os" \| "language" \| "variant" | no | Grouping of the sources section: UTM fields, referrer, landing\_url, country, device, browser, os, language or variant (A/B) |
| `payments` | "live" \| "test" | no | live (default): real revenue only. test: only purchases made in a provider sandbox or the mock checkout, which never count as revenue otherwise |
| `sections` | "totals" \| "steps" \| "checkout" \| "paywalls" \| "plans" \| "paymentMethods" \| "failures" \| "sources" \| "components" \| "daily" \| "upsells" \| "conversions"\[] | no | Return only these sections (saves tokens); default all except daily |

## list\_analytics\_events

**List analytics events.** Read-only.

Recent canonical analytics events for debugging, bounded to at most 100 rows and PII-redacted. Returns event/version/step/component/source metadata plus an allowlisted subset of safe props. It never returns session or visitor ids, email/IP, raw answers, free text, or provider payment/customer identifiers; this is deliberately not a raw event dump.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `limit` | integer | no | Newest events to return; default 30, maximum 100 |
| `name` | "session\_start" \| "step\_view" \| "step\_complete" \| "answer" \| "email\_submit" \| "paywall\_view" \| "milestone\_view" \| "plan\_select" \| "checkout\_open" \| "checkout\_ready" \| "payment\_method\_select" \| "payment\_info\_complete" \| "payment\_submit" \| "payment\_success" \| "payment\_fail" \| "checkout\_close" \| "checkout\_event" \| "upsell\_view" \| "upsell\_accept" \| "upsell\_decline" \| "upsell\_fail" \| "file\_upload" \| "step\_hook" \| "exit\_offer\_view" \| "popup\_view" \| "funnel\_complete" \| "purchase" \| "upsell\_purchase" \| "trial\_start" \| "renewal" \| "payment\_fail\_server" \| "refund" \| "subscription\_cancel" \| "app\_handoff\_created" \| "app\_handoff\_opened" \| "app\_handoff\_redeemed" \| "app\_entitlement\_granted" \| "app\_entitlement\_revoked" \| "app\_handoff\_failed" | no | Only this canonical event type |
| `source` | "client" \| "server" | no | Only browser/client or server-authoritative events |
| `version` | integer | no | Only events recorded against this funnel version |

## list\_visitor\_answers

**List visitor answers.** Read-only.

What visitors typed into free inputs (name, text, numbers, dates) per session, newest first, with the email they gave. Personal data: show it only to the funnel owner.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `limit` | integer | no | Sessions; default 30 |
| `sessionId` | string | no | |

## list\_conversions

**List conversions.** Read-only.

Recent ad-platform conversion events (Meta CAPI / TikTok Events API) for a funnel with the event payload, delivery status (pending, sending, sent, failed, dead, dry\_run, skipped) and last error. Use it to check that purchases reach the ad platforms. In the payload, visitor identifiers (email, IP, user agent, cookies, click ids, hashed ids) are shown only as `hashed` or `sent` markers, never as values, and URLs lose their query string.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `limit` | integer | no | |

## list\_experiments

**List experiments.** Read-only.

A/B experiments (running and stopped), optionally for one host funnel.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | no | Funnel id (fn\_...) or slug |
| `projectId` | string | no | Project to read; omitted = the current project. Does not switch projects |

## get\_experiment\_report

**Get experiment report.** Read-only.

Per-variant visitors, paywall views, checkouts, purchases, conversion, revenue and revenue per visitor, each challenger vs control with uplift, p-value and probability to be better (Bonferroni-corrected alpha), plus a plain-language verdict and how many more visitors are needed. Judge price tests on revenue per visitor, not conversion alone.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `experimentId` | string | yes | |
| `from` | string | no | ISO date; default experiment start |
| `to` | string | no | |

## create\_experiment

**Create experiment.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Start an A/B test on a published host funnel: its live traffic (same ad link) is split across variant funnels by weight, sticky per visitor. Variants are published funnels, usually made with duplicate\_funnel + edits + publish; one variant must be the host itself (control). Variants and weights are frozen while it runs. This changes what real traffic sees: confirm with the user first.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | yes | |
| `hypothesis` | string | no | What you expect and why, e.g. "A \$0.99 trial lifts paid conversion enough to raise revenue per visitor" |
| `variants` | object\[] | yes | |
| `funnel` | string | yes | Host funnel (whose slug is the ad link) |

## stop\_experiment

**Stop experiment.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Stop an experiment: the host serves only its own published version again. With winnerVariantId and promote=true, the winner's live definition is copied into the host DRAFT (publish separately, after confirming with the user).

| Parameter | Type | Required | Description |
| - | - | - | - |
| `experimentId` | string | yes | |
| `winnerVariantId` | string | no | |
| `promote` | boolean | no | |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.