AI access & API keys

Connect Claude, ChatGPT, or your own tools to Formtoro with the MCP server and scoped API keys.

Formtoro isn't only driven from the admin, it's a fully agentic platform.

You can connect AI clients (like Claude or ChatGPT) and your own scripts to read your analytics and build forms — through the MCP server and API keys. Manage both in Settings → API and MCP Connections.

Both surfaces are part of the AI Insights plan. On other plans the page shows everything in a locked state with an upgrade banner — and if you ever downgrade, existing keys and connections stay visible so you can still revoke them.

Connect an AI client (MCP)

Formtoro runs a hosted MCP (Model Context Protocol) server, so MCP-compatible AI clients can work with your shop on your behalf. The client prompts you to sign in to Formtoro and approve the connection — so you stay in control.

The server speaks the streamable HTTP transport — connect to it as a remote HTTP server, not a local (stdio) one. The server URL is:

https://mcp.formtoro.com/mcp

You'll find the same URL, with a copy button, under Settings → API and MCP Connections → Connect a new client.

Claude Desktop

Formtoro connects as a remote server through Claude's connectors — no config file editing needed:

  1. Open Claude Desktop → Settings → Connectors.
  2. Choose Add custom connector.
  3. Paste the server URL and confirm.

Claude then walks you through the Formtoro sign-in and consent screen.

Claude Code (CLI)

Run this in your terminal — the --transport http flag is required, since without it Claude Code treats the server as a local (stdio) one and the connection fails:

claude mcp add --transport http formtoro https://mcp.formtoro.com/mcp

Then run /mcp inside Claude Code, select the MCP "formtoro", authenticate and approve the connection.

ChatGPT

Open ChatGPT → Settings → Connectors → Add custom MCP server, then paste the server URL.

After connecting

The first time a client connects, Formtoro asks which shop you're connecting — enter your .myshopify.com domain (pasting your admin URL or just the store handle works too). You then sign in through your Shopify account for that shop and land on a consent screen that names the exact client requesting access. Reading analytics is always part of a connection; everything beyond that is a checkbox you tick explicitly:

  • Form editing — create and edit form drafts.
  • Discounts — read your discount definitions.
  • Branding — read your themes and confirmed brand.
  • Branding editing — fork and edit themes and reusable styles.
  • Customer lifetime value — customer-level revenue data.

An unticked box is never granted, and a client can't widen its own access later — to change what a connection can do, disconnect it and connect again.

Once approved, the connection appears under Settings → API and MCP Connections, showing when it was created and last used. Connections are per team member — you only see the ones you authorized — and you can Disconnect any of them at any time, which immediately revokes access. Disconnected clients move to a separate list for reference.

Connecting more than one store

Each connection is tied to exactly one shop — the one you pick during sign-in. If you run multiple stores, connect the server once per store.

In Claude Code, add the server under a different name for each store, then authenticate each one to its own shop:

claude mcp add --transport http formtoro-storea https://mcp.formtoro.com/mcp
claude mcp add --transport http formtoro-storeb https://mcp.formtoro.com/mcp

Naming the entries after your stores also keeps the assistant from mixing them up — both connections expose the same tools, so the server name is what tells it which store you mean.

Claude Desktop and ChatGPT identify a connector by its URL, so they hold one Formtoro connection at a time. To work with a different store there, disconnect the connector and add it again, signing in to the other shop.

What an AI client can do

A connected assistant gets the same tool surface Luigi uses in-app, so it can work with your shop end to end:

  • Learn your building blocks. list_node_types and list_targeting_options teach it Formtoro's form vocabulary; list_themes, get_theme, and get_shop_brand give it your brand and themes so what it builds looks like yours.
  • Author forms — always as drafts. create_form builds a new form from a high-level blueprint (or a full schema), get_form + update_form edit an existing one, and validate_form_schema, get_form_issues, and check_publish_readiness let it check its own work — the same issue checks the builder's issues panel runs. Nothing an AI client writes goes live: you review the draft in the builder and press Save version yourself.
  • Design reusable branding (with Branding editing approved): fork and update themes, create and update shared style classes.
  • Read discounts (list_discounts) so a form it builds can reference a real discount.
  • Answer analytics questions. Over thirty read tools cover funnels, step drop-off, trends, attribution, revenue by UTM, ad spend, discount performance, A/B experiment results, subscriber breakdowns, customer cohorts and lifetime value, and more.

The server also ships ready-made prompts your client can surface — like author_popup, daily_executive_summary, conversion_audit, and experiment_readout — that walk the model through a full task with the right tools.

API keys

For scripts, BI tools, and integrations, mint an API key under Settings → API and MCP Connections:

  1. Choose Generate API key.
  2. Give it a name you'll recognize later (e.g. "BI script" or "Zapier").
  3. Select the permissions (scopes) it should have — at least one is required, and Analytics is pre-selected as the sensible default.
  4. Copy the key. This is the only time the key is shown, so store it somewhere safe (a password manager, not a shared doc).

Keys look like ft_live_… and are sent as a bearer token against the REST API:

curl https://api.formtoro.com/v1/forms \
  -H "Authorization: Bearer ft_live_your_key_here"

Managing keys after minting:

  • Edit permissions changes a key's scopes in place — the key itself never changes, and the new scopes apply from its next request. You can only add scopes your own role holds; scopes already on the key are preserved.
  • Revoke permanently disables a key right away. Revoked keys stay listed in a muted state so you have a record of what existed.
  • Every mint, permission edit, and revoke is written to your shop's audit trail.

Scopes

Each key is least-privilege — it can only do what you grant, and you can only grant scopes your own role already has:

ScopeGrants
AnalyticsRead funnels, step drop-off, engagement, devices, trends, attribution, revenue, discount performance, subscriptions, and A/B results.
Customer lifetime valueRead customer-level lifetime value. Grant only to trusted integrations.
Form editingCreate and edit forms as drafts. Does not publish or change live forms.
DiscountsRead your discount definitions (id, name, status, config). Read-only, no customer data.
BrandingRead your themes and confirmed brand (logo, colors, fonts). Read-only, no customer data.
Branding editingCreate and edit reusable design artifacts — fork/update themes, create/update shop-level styles. Grant only to trusted integrations.

The REST API

Everything the scopes above unlock is served from https://api.formtoro.com — forms and funnels, branding and themes, discounts, revenue and attribution, and shop analytics. The full endpoint-by-endpoint reference, with request and response shapes, lives in the API reference.

Next steps