> ## 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: funnels

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

Create, read, edit, validate, preview and publish funnels, and work with revisions and versions. Agents call these tools for you; this page lists what each one does and the parameters it takes.

## list\_funnels

**List funnels.** Read-only.

List funnels with status, live version, unpublished-changes flag, step count, provider, live URL and last-30-day visitors/purchases/revenue (revenueCents is in minor units: cents). Returns an array; compact rows by default, format "full" returns the raw API records. Narrow with status/query, cap with limit (the structured result reports total and truncated).

| Parameter | Type | Required | Description |
| - | - | - | - |
| `includeArchived` | boolean | no | Include archived funnels (implied by status "archived") |
| `status` | "draft" \| "published" \| "archived" | no | Only funnels in this status |
| `query` | string | no | Case-insensitive match on name or slug |
| `limit` | integer | no | Return at most this many; omit for all |
| `format` | "compact" \| "full" | no | compact (default) or full raw records |
| `projectId` | string | no | Project to read; omitted = the current project. Does not switch projects |

## get\_funnel

**Get funnel.** Read-only.

Read a funnel draft. format "outline" (default) is a compact step/component map with ids and key text: use it to orient. format "full" returns the complete JSON definition (large). Also returns validation warnings.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `format` | "outline" \| "full" | no | |
| `stepId` | string | no | With format "full", return only this step |

## get\_funnel\_schema

**Get funnel schema.** Read-only.

Full JSON Schema of a funnel definition and of edit ops, plus step kinds and the analytics event taxonomy. Large; only needed for replace\_definition or unusual edits.

No parameters.

## create\_funnel

**Create funnel.** Changes the draft or settings; live funnels change only after publishing.

Create a funnel from a template ("demo" = 19-step Wall Pilates funnel covering most components; "blank") or from a full definition. Starts as an unpublished draft.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | yes | |
| `slug` | string | no | URL slug; derived from name if omitted |
| `projectId` | string | no | Project owner; omit to use the default project |
| `template` | "demo" \| "blank" | no | |
| `definition` | object | no | Full definition (see get\_funnel\_schema); overrides template |

## duplicate\_funnel

**Duplicate funnel.** Changes the draft or settings; live funnels change only after publishing.

Copy a funnel draft into a new unpublished funnel (e.g. for a price or copy test).

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

## rename\_funnel

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

Change the funnel name and/or slug. Changing the slug breaks live ad links.

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

## move\_funnel

**Move funnel.** Changes the draft or settings; live funnels change only after publishing.

Move an unpublished funnel to another project of the organization. Its theme is copied along; old-project payment connection and pixels fall back to the target defaults. Unpublish a live funnel first (confirm with the user).

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

## archive\_funnel

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

Archive (hides it and takes it offline) or unarchive a funnel.

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

## apply\_ops

**Apply ops.** Changes the draft or settings; live funnels change only after publishing.

Apply several edit ops atomically (all or nothing), then validate. Prefer this for multi-part changes. The compact tools/list schema exposes op names only: call get\_funnel\_schema for exact op fields, and get\_component\_schema before using component props you have not already inspected. Ops: add\_step, update\_step, remove\_step, move\_step, duplicate\_step, add\_component, update\_component, remove\_component, move\_component, upsert\_plan, update\_plan, remove\_plan, reorder\_plans, upsert\_offer, remove\_offer, upsert\_computed, remove\_computed, set\_tracking, set\_theme\_ref, set\_settings, set\_payments. Funnel settings, including the browser tab title (pageTitle), are edited with the set\_settings op.

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

## replace\_definition

**Replace definition.** Changes the draft or settings; live funnels change only after publishing.

Replace the whole draft definition (validated). Use only for large rewrites; prefer apply\_ops.

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

## validate\_funnel

**Validate funnel.** Read-only.

Validate the current draft (or a proposed full definition) without saving. Returns errors (block saving/publishing) and warnings.

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

## get\_launch\_readiness

**Get launch readiness.** Read-only.

Read the same server-owned launch readiness snapshot shown in Funeli: publish blockers, recommended setup, optional setup and the action for each item. Use this before publish\_funnel when the user asks what still blocks launch.

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

## diff\_funnel

**Diff funnel.** Read-only.

What changed between two states of a funnel, one line per change (steps, components and props, plans, offers, theme, settings, tracking, computed fields). Default: live -> draft, i.e. exactly what publish\_funnel would ship. Show this to the user before publishing.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `funnel` | string | yes | Funnel id (fn\_...) or slug |
| `from` | string | no | draft \| live \| v\<N> \| rev\<N>; default live |
| `to` | string | no | draft \| live \| v\<N> \| rev\<N>; default draft |

## preview\_url

**Preview url.** Read-only.

URLs to open the draft preview (optionally at a step, with sample answers) and the live funnel.

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

## share\_preview\_link

**Share preview link.** Changes the draft or settings; live funnels change only after publishing.

Share the DRAFT with someone outside the Workspace (a client): a link that opens it until it expires (hours, default 72) or is revoked (revoke = link id). Its url is shown once. Returns the link and all links of the funnel.

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

## publish\_funnel

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

Freeze the draft as a new immutable version and serve it to live traffic. Returns the list of changes shipped and any warnings, including one when checkout runs on mock payments or Paddle Sandbox (publishing is never blocked for that). This affects real ad traffic: run diff\_funnel, show the user the changes and confirm first unless they asked you to publish.

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

## unpublish\_funnel

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

Take a live funnel offline (its links return 404). Versions and draft stay; publish\_funnel brings it back. Affects real ad traffic: confirm with the user first.

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

## list\_revisions

**List revisions.** Read-only.

Draft edit history (newest first) with source (mcp/ui/api) and message. Use restore\_revision to undo.

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

## restore\_revision

**Restore revision.** Changes the draft or settings; live funnels change only after publishing.

Restore the draft to an earlier revision (undo). Creates a new revision; nothing is lost.

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

## list\_versions

**List versions.** Read-only.

Published (immutable) versions with notes.

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


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