Agents / MCP server

MCP server

Uplift Funnel runs a hosted MCP server. Point a coding agent at it and it can read your real flows, author and edit screens, and validate its work against the schema before anything is written — without you pasting JSON between two windows.

Connect an agent

The server speaks HTTP MCP at https://api.upliftfunnel.com/mcp. There is nothing to install and no npm package to keep up to date: the tool definitions, the JSON Schemas and the authoring guide live on the server and reach your agent as the body of an authenticated response.

  1. Add the server

    Run this once, in any MCP-capable agent:

    Terminal
    claude mcp add --transport http uplift https://api.upliftfunnel.com/mcp

    Note what is not in that command: a key. Nothing secret is written to your shell history or to a config file on disk.

  2. Get a pairing code

    In the dashboard, open your app and go to Integrate → Connect an agent, then press Get a code. The code is valid for ten minutes and grants access to that one app.

  3. Call connect

    Tell your agent to connect with the code — it calls the connect tool for you. The dashboard flips to connected as soon as the exchange lands, and the six tools appear. You can end the session from the same page at any time.

Clients that read a JSON config rather than a CLI take the same URL:

mcp.json
{
  "mcpServers": {
    "uplift": {
      "url": "https://api.upliftfunnel.com/mcp"
    }
  }
}

What the agent gets

list_flows
Every flow in the app. The place to start.
get_flow
A flow's outline — titles, node types, variables, transitions. Roughly a tenth the size of the full document, so a whole funnel fits in context.
get_screen
One screen's tree, plus the ids, variables and theme tokens needed to edit it correctly.
edit_screen
Validate, render, and — unless dry_run is set — write one screen to the draft. Returns a PNG of the screen it validated, so the agent can look at its own work instead of guessing from JSON.
create_flow
Create a new flow from a full document.
check_flow
Whole-flow check: reachability, dataflow, dead ends, and the App Store paywall policy that gates deploying.

Three resources come with it — funnel://guide/authoring, funnel://schema/node and funnel://schema/flow — so an agent writing a screen from scratch reads the house rules and the schema rather than inferring them from examples.

What a session looks like

Claude Code
> outline the onboarding flow

  list_flows 3 flows
  get_flow("onboarding") → 11 screens, 4 variables, 2 branches

> rewrite the paywall headline to lead with the annual saving, show me

  get_screen("paywall")
  edit_screen(..., dry_run: true) → 0 errors + a PNG of the screen
  edit_screen(...)                → written to the draft

Errors come back as one diagnostic with a JSON pointer, a fix hint and a citation into the authoring guide — not twenty-seven schema violations for a single misspelled screen id.

If the agent edits a flow you deployed meanwhile

The tools report which base they read — draft or published — and the published version number with it. An agent that started from a draft you have since deployed over is told to rebase rather than allowed to write onto a base that no longer exists. See Versions & caching for how drafts and deploys relate.

Limits

  • Agent calls are rate-limited per user, and share one budget across the MCP endpoint and the agent API behind it.
  • A pairing grants access to one app. Pair again for a second app.
  • Sessions can be ended from Integrate → Connect an agent at any time; the agent is told the session ended rather than failing silently.