> ## 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: tracking and app handoff

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

Ad pixels, analytics integrations and handing a paying visitor over to your app. Agents call these tools for you; this page lists what each one does and the parameters it takes.

## set\_tracking

**Set tracking.** Changes the draft or settings; live funnels change only after publishing.

Choose where this funnel's Meta/TikTok events go. By default a funnel inherits its project's default connection for each platform (see get\_account\_settings adConnections), so you only call this to deviate: \{"meta":\{"connectionId":"adconn\_..."}} uses another connection (pixel + server token), \{"tiktok":\{"enabled":false}} turns a platform off for this funnel, \{"meta":\{"delivery":\{"purchase":"server"}}} overrides how events travel (off | browser | server | both; layered over the connection mapping), null removes the setting so the funnel inherits again. Mapped events go to the browser pixel and the server API with a shared event id. Takes effect after publish; list\_conversions shows where each platform actually goes (effectiveTracking).

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `meta` | object \| null | no | |
| `tiktok` | object \| null | no | |
| `message` | string | no | Revision history note |

## list\_project\_ad\_connections

**List project ad connections.** Read-only.

List the Meta/TikTok connections and defaults of one project, without tokens or Test Event Codes. Funnels inherit only their own project defaults. Get project ids from list\_projects.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `projectId` | string | yes | |

## update\_ad\_connection

**Update ad connection.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Configure a Meta/TikTok ad connection (ids from list\_project\_ad\_connections): rename it, make it the project default of its platform (funnels without their own setting inherit it; isDefault:false clears it), or replace its delivery mapping: a conversion event (email\_submit, checkout\_open, payment\_info\_complete, purchase, trial\_start) to off | browser | server | both; unlisted events use both. Pixel ids and tokens are entered in the admin UI, never here. testEventCode is the persistent Workspace Test Event Code for server-side CAPI / Events API delivery only; pass null to disable Test Events mode. It applies identically to Meta and TikTok and is never exposed to browser pixels.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `accountId` | string | no | |
| `projectId` | string | no | Owning project; use this for project-scoped configuration |
| `connectionId` | string | yes | |
| `label` | string | no | |
| `isDefault` | boolean | no | |
| `delivery` | object | no | Replaces the whole mapping |
| `testEventCode` | string \| null | no | |

## remove\_ad\_connection

**Remove ad connection.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Remove an ad connection from its project. Explicit draft/published funnel bindings must be changed first; inherited funnels stop sending to this default until another is selected.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `projectId` | string | yes | |
| `connectionId` | string | yes | |

## test\_ad\_connection

**Test ad connection.** Changes the draft or settings; live funnels change only after publishing.

Test a saved Meta/TikTok ad connection. Meta: reads the pixel with the access token (read-only). TikTok has no read-only token check, so it stays pending without a one-off or saved project Test Event Code. Omit testEventCode to reuse the saved code; providing it sends one test without changing the saved setting. Browser Pixel testing is separate in TikTok Events Manager using the funnel URL / QR flow. With testEventCode (the "Test Event Code" from Events Manager > Test Events) a test event is sent to the platform and shows up only on that tab, never as a conversion. Returns status, per-check results, lastCheckedAt and lastError; never the token.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `accountId` | string | no | |
| `projectId` | string | no | Owning project; use this for project-scoped configuration |
| `connectionId` | string | yes | |
| `testEventCode` | string | no | |

## update\_analytics\_connection

**Update analytics connection.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Update non-secret settings of a project's Amplitude, Mixpanel or AppsFlyer connection or pause/resume its delivery. Creating one or rotating its credential is UI-only.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `accountId` | string | no | Workspace/account id; omit for the connected workspace |
| `projectId` | string | no | Omit for the current project |
| `provider` | "amplitude" \| "mixpanel" \| "appsflyer" | yes | |
| `enabled` | boolean | no | |
| `config` | object | no | |

## set\_app\_handoff

**Set app handoff.** Changes the draft or settings; live funnels change only after publishing.

Configure the purchase-backed web-to-app Magic Link for this funnel. RevenueCat/Adapty secrets and app/store URLs are connected by a human in Workspace > App and are never entered through MCP. provider chooses RevenueCat or Adapty; planEntitlements replaces the whole plan mapping and maps each plan to that provider's entitlement/access-level id and duration. passFields is an allowlist of funnel answer keys returned to the app only after token redemption; values never appear in the URL. Changes are draft-only until publish.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `enabled` | boolean | no | |
| `provider` | "revenuecat" \| "adapty" | no | |
| `planEntitlements` | object | no | |
| `passFields` | string\[] | no | |
| `destination` | string \| null | no | |
| `message` | string | no | Revision history note |

## update\_app\_connection

**Update app connection.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Update non-secret settings of an existing RevenueCat/Adapty app-handoff connection or pause/resume it. Configure AppsFlyer OneLink for token-preserving first-install routing. Creating a connection or rotating its secret API key remains UI-only.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `accountId` | string | no | Workspace/account id; omit for the connected workspace |
| `projectId` | string | no | Omit for the current project |
| `provider` | "revenuecat" \| "adapty" | yes | |
| `enabled` | boolean | no | |
| `config` | object | no | |

## remove\_app\_connection

**Remove app connection.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Disconnect an existing RevenueCat/Adapty app-handoff connection without exposing its secret. Funnels configured for that provider stop creating usable handoff links.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `accountId` | string | no | Workspace/account id; omit for the connected workspace |
| `projectId` | string | no | Omit for the current project |
| `provider` | "revenuecat" \| "adapty" | yes | |

## set\_project\_web\_handoff

**Set project web handoff.** Changes what live visitors see or pay, or removes data. Agents confirm with you first.

Set a project's web app: where a verified purchase continues on the web (and its server delivery). Same shape as set\_web\_redirect's webRedirect; null removes it. Funnels with no web redirect of their own inherit it live; confirm first.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `projectId` | string | no | Omit for the current project |
| `webRedirect` | object \| null | yes | |


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