Tapcart MCP Server
Connect Claude, Cursor, Codex, or another AI client to your Tapcart app over the Model Context Protocol — query analytics, manage push campaigns and segments, and work with App Studio blocks in plain language.
The Tapcart MCP server connects an AI client to your Tapcart app over the Model Context Protocol. Once connected, you can ask about your app's performance, plan and schedule push campaigns, build customer segments, and manage App Studio blocks — in plain language, authenticated with your own Tapcart account.
It is hosted by Tapcart. There is nothing to install and no API key to create.
Hosted or local?
Tapcart runs two different MCP servers. This page covers the hosted one.
| Tapcart MCP server (this page) | Tapcart CLI MCP server | |
|---|---|---|
| Runs | Hosted by Tapcart | Locally, as a process on your machine |
| For | Merchants and their teams — analytics, campaigns, segments, App Studio | Developers building custom blocks |
| Needs | An MCP client and a Tapcart login | Node.js, the Tapcart CLI, and a project on disk |
| Auth | OAuth, in the browser | Local credentials in ~/.tapcart/auth.json |
Endpoint
https://mcp.tapcart.com/mcp
The transport is Streamable HTTP. You sign in with your Tapcart account through your browser the first time you connect — there is no API key or token to paste.
What you can do
- Analytics — query the metrics and reports enabled for your app: revenue, sessions, campaign performance, and more.
- Push campaigns — review sent and scheduled campaigns, schedule new sends to a segment, edit or cancel upcoming sends, and verify copy on a test device first.
- Segments — explore your saved audiences, see the full filter vocabulary, and size and create new segments.
- App Studio — list, read, publish, and roll back custom blocks and components, and manage the npm dependencies available to them.
- Docs — search this developer documentation from inside a conversation.
Before you start
- A Tapcart account with dashboard access to at least one app
- One of the supported clients below
Your Tapcart login decides what the client can reach, so there is nothing to configure per user beyond signing in.
Set up your client
Choose your client below and follow the matching instructions. Each one points at the same endpoint.
Claude (web and desktop)
-
Go to Settings → Connectors and choose Add custom connector
-
Enter the server URL:
https://mcp.tapcart.com/mcp -
Click Connect, then sign in with your Tapcart account and approve access
The Tapcart tools appear in new conversations once the connector shows as connected.
Claude for Teams and EnterpriseAn organization owner can add the connector once under Organization settings → Connectors. Each member then authenticates with their own Tapcart account, so everyone only sees the apps they already have access to.
Claude Code
-
Add the server:
claude mcp add --transport http tapcart https://mcp.tapcart.com/mcp -
Start a session, run
/mcp, select tapcart, and choose Authenticate -
Sign in with your Tapcart account in the browser window that opens
The server status changes to Connected.
Cursor
Or by hand:
-
Add the server to
~/.cursor/mcp.json(or.cursor/mcp.jsonfor a single project):{ "mcpServers": { "tapcart": { "url": "https://mcp.tapcart.com/mcp" } } } -
Cursor detects the server and opens your browser to sign in with your Tapcart account
The server appears with its tools listed under Settings → MCP.
Cursor's tool limitCursor sends at most 40 tools to the model across all MCP servers combined, and this server provides 25 of them. If you run several servers at once, disable the Tapcart tool groups you are not using under Settings → MCP.
Codex
-
Add the server to
~/.codex/config.toml:[mcp_servers.tapcart] url = "https://mcp.tapcart.com/mcp" -
Sign in:
codex mcp login tapcart
Confirm it worked with codex mcp list.
Other MCP clients
The server speaks Streamable HTTP with OAuth, so most MCP clients can talk to it in principle. In practice we allowlist each client's OAuth redirect address before it can connect — a client we have not added is turned away when it tries to register.
If you want to use a client that is not listed above, email [email protected] with the client name and we will look at adding it.
Verify the connection
Ask your client:
Which Tapcart apps can you see?
A healthy connection answers with your store name and its currency. If it says it has no Tapcart tools, or asks you to authenticate again, see Troubleshooting.
How access works
- Your OAuth sign-in decides which apps the client can reach and whether write actions are allowed. The client never has more access than your own Tapcart account.
- If your account has access to a single app, everything is scoped to it automatically. With multiple apps, the client lists them by store name and currency, and passes the right one per request.
- All money values are reported in each app's own shop currency, and date ranges resolve in the merchant's local timezone. Both are returned with every response.
Safety
Every tool is read-only unless it is marked Write in the tables below. Read-only tools are annotated readOnlyHint in the server's MCP metadata, and every write tool is annotated destructiveHint, so clients that honour those annotations ask you before running one.
Write tools also run in two steps of their own:
- Plan (the default) — the tool previews exactly what would happen: the campaign that would be scheduled, the segment size, the block version that would go live. Nothing is written.
- Apply — only after you have reviewed the plan does the tool make the change.
Campaign sends are realApplying a campaign schedules a real push to real shoppers. Campaigns can only be scheduled for a future time — there is no immediate send — and can be edited or cancelled any time before they fire. Use the test-device tool to verify copy, image, and deep link on one phone before scheduling.
Available tools
Discovery
| Tool | Access | What it does |
|---|---|---|
tapcart_apps_list | Read | List the apps your account can act on and what each is granted (analytics, App Studio, or both) |
tapcart_docs_search | Read | Search this developer documentation and return matching titles, URLs, and excerpts |
Analytics
| Tool | Access | What it does |
|---|---|---|
tapcart_insights_catalog | Read | List the metrics and reports enabled for an app, plus its store name, currency, and timezone |
tapcart_insights_query | Read | Run one metric (relative windows like 30d, or explicit timestamps) or one report |
Push campaigns
| Tool | Access | What it does |
|---|---|---|
tapcart_campaigns_list | Read | List scheduled, sent, or all campaigns, newest first |
tapcart_campaign_schedule | Write | Schedule a push/inbox campaign to one saved segment for a future time |
tapcart_campaign_update | Write | Edit a scheduled campaign — reschedule, or change copy, image, audience, or destination |
tapcart_campaign_cancel | Write | Cancel a scheduled campaign before it sends, or archive a past one |
tapcart_push_test_device | Write | Send the draft push to a single test device immediately, so you can verify it on a real phone |
Segments
| Tool | Access | What it does |
|---|---|---|
tapcart_segments_list | Read | List your saved segments with their filters |
tapcart_segment_filters | Read | The full filter vocabulary — every column, its type, and the operators valid for it |
tapcart_segment_create | Write | Size an audience from filters, then create it as a reusable segment |
App Studio — blocks
| Tool | Access | What it does |
|---|---|---|
tapcart_blocks_list | Read | List the app's custom blocks with live version and version count |
tapcart_block_get | Read | Fetch one block — manifest options, and optionally its source |
tapcart_block_versions_list | Read | List every published version of a block, marking which is live |
tapcart_block_push | Write | Upload block source (JSX/TypeScript, transpiled server-side) as a new version — development by default, live only when requested |
tapcart_block_version_set | Write | Make an already-published version the live one — the rollback / roll-forward tool |
tapcart_block_preview | Read | Mint a short-lived, login-free link that renders one block version at phone width in a browser — use it after a push to see the result |
App Studio — components
| Tool | Access | What it does |
|---|---|---|
tapcart_components_list | Read | List the components available to the app |
tapcart_component_get | Read | Fetch one component, optionally including its source |
tapcart_component_versions_list | Read | List every version of a component, marking which is live |
tapcart_component_push | Write | Upload component source as a new version — development by default |
tapcart_component_version_set | Write | Make an already-published component version the live one |
App Studio — dependencies
| Tool | Access | What it does |
|---|---|---|
tapcart_dependencies_list | Read | List the npm dependencies available to the app's blocks and components |
tapcart_dependencies_set | Write | Replace the app's npm dependency map |
Example usage
Understanding performance
| Prompt | What happens |
|---|---|
| "How did our app do over the last 30 days? Compare revenue and sessions to the 30 days before." | Reads the metrics enabled for your app and returns both windows in your shop currency |
| "Which push campaigns from the last two weeks drove the most revenue?" | Lists sent campaigns and pairs them with their performance |
Building an audience
| Prompt | What happens |
|---|---|
| "How many customers have ordered at least twice but not in the last 45 days?" | Sizes the audience from your segment filters without creating anything |
| "Save that as a segment called 'Lapsing repeat buyers'." | Creates the segment, after showing you the plan |
Running a campaign
| Prompt | What happens |
|---|---|
| "Draft a winback push for lapsing repeat buyers and send me a test on my device." | Writes the copy and sends it to your one test device only |
| "Looks good — schedule it for Tuesday at 10am." | Shows the exact send as a plan, then schedules it once you approve |
| "What do we have scheduled this week? Move the Friday send to Saturday morning." | Lists upcoming campaigns and reschedules the one you name |
Working in App Studio
| Prompt | What happens |
|---|---|
| "List our custom blocks and show me the manifest options for the announcement bar." | Reads the block and its configurable options |
| "The new hero block looks broken — roll it back to the previous version." | Shows which version would go live, then sets it once you approve |
Troubleshooting
The client says it isn't authenticated, or has no Tapcart tools
Re-run the sign-in step for your client: in Claude, Settings → Connectors → Tapcart → Connect; in Claude Code, /mcp → tapcart → Authenticate; in Cursor, reconnect the server under Settings → MCP; in Codex, codex mcp login tapcart.
The client asks which app you mean, or reports availableAppIds
Your account has access to more than one app. Name the store you mean and the client will resolve the right one.
A scheduled time is rejected
Scheduled times must be in the future and carry an explicit UTC offset (for example 2026-09-01T10:00:00-07:00 or a trailing Z). Bare local times are rejected so a send can never fire in the wrong timezone.
A write tool reports it isn't allowed
Write actions are gated by your Tapcart account's own permissions. If your account can't schedule campaigns or publish blocks in the dashboard, it can't do so through an AI client either.
Some tools are missing in Cursor
Cursor caps the model at 40 tools across all MCP servers. Disable tools you are not using under Settings → MCP.
Data handling & privacy
- Every request runs under your OAuth token — the server can only read and write what your Tapcart account already can, and you can disconnect it at any time from your client's settings.
- Write actions preview as a plan by default and only take effect when applied, and campaign sends can only be scheduled for the future, never fired immediately.
- The server responds to tool calls from your client. It does not read your conversations, memory, or files.
- For how Tapcart handles data generally, see the Tapcart Privacy Policy.
Related
- Tapcart CLI MCP server — the local server for building custom blocks
- Questions or feedback: [email protected]
Updated about 23 hours ago
