privy_create_ contactAdd a new contact.
Ask which popups and flows are earning, look up why someone got a message, tidy tags and consent, and send your own orders and events into Privy, from chat.
PopMCPPrivy
Every operation in the Privy API, with the everyday contact and reporting tools loaded by default and the rest, from contact imports to store collections, one search away. This is Privy for online stores, the popups, email and SMS platform.
45 tools in the full catalog: 38 read and 7 write. 35 load by default, and the rest are found with tool search.
privy_create_ contactAdd a new contact.
privy_delete_ contactAsk the person first.
privy_find_ contactFind one person by cus_ id, email or phone number, with their consent, tags, custom fields and which displays they signed up on.
privy_get_ campaign_ performanceGet campaign performance.
privy_get_ contactGet a contact.
privy_get_ display_ performanceGet display performance.
privy_get_ flow_ performanceGet flow performance.
privy_get_ report_ summaryGet business report summary.
privy_list_ campaign_ performanceList campaign performance.
privy_list_ contact_ activityList a contact's activity.
privy_list_ contactsList contacts, newest first.
privy_list_ display_ performanceList display performance.
privy_list_ flow_ performanceList flow performance.
privy_list_ top_ productsList top products.
privy_performance_ overviewHow is Privy doing? The period's signups, subscribers, attributed revenue and orders, compared with the period before, with the top campaigns, flows and displays.
privy_update_ contactChange a contact.
privy_update_ contact_ tagsAdd or remove a contact's tags without touching the others.
privy_upsert_ contactAdd a contact, or update them if they already exist, keeping their other tags and custom fields.
privy_list_ productsList products.
privy_check_ accessCheck which read permissions this token really has, since Privy does not list them.
privy_check_ coupon_ codeCheck a coupon code.
privy_get_ accountThe Privy account this connection is pinned to: id, name and website.
privy_get_ account_ setupGet account setup.
privy_list_ couponsList coupons.
privy_list_ ordersList orders.
privy_list_ segment_ contactsList the people in a segment.
privy_list_ segmentsList segments.
privy_report_ orderAdd or update an order that happened outside a connected store.
privy_get_ campaignGet a campaign.
privy_get_ displayGet a display.
privy_get_ flowGet a flow.
privy_list_ campaignsList campaigns.
privy_list_ displaysList displays.
privy_list_ flowsList flows.
privy_send_ eventSend a custom event about one contact.
privy_get_ collectionGet a product collection.
privy_get_ productGet a product.
privy_list_ collection_ productsList a collection's products.
privy_list_ collectionsList product collections.
privy_list_ product_ collectionsList a product's collections.
privy_get_ couponGet a coupon.
privy_get_ orderGet an order.
privy_get_ segmentGet a segment.
privy_get_ importGet a contact import.
privy_list_ importsList contact imports.
Credentials off one Privy screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In the Privy dashboard open Settings, then API Tokens, click Create Token, name it, tick the permissions, choose how long it lasts and paste the token into PopMCP. API access comes with a paid Privy plan, and needs no app or approval. PopMCP lists your account and any subaccounts the token reaches, and locks the connection to the one you choose.
••••••••••••3f7aAdding, changing and deleting contacts, reporting orders and sending events are writes and wait until an owner or admin allows write actions; new connections start read-only. The permissions ticked on the token apply as well, and Privy refuses anything outside them.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Privy credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
How did my store do in Privy over the last 30 days, compared with the month before?
privy_performance_overviewok
Then just ask for the work
“How did my store do in Privy over the last 30 days, compared with the month before?”
“Which of my popups brings in the most signups, and which one is not working?”
“Why did jane@example.com get that email yesterday?”
“Add the vip tag to jane@example.com without touching her other tags”
“How is my abandoned cart flow doing, step by step?”
“Is my discount code wired to the right popups, and has this code been used?”
“Send a quiz_finished event for this customer so my flow picks them up”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Privy behind an AI client.
Privy at privy.com, the popups, email and SMS platform for online stores. It is not the crypto wallet company at privy.io, which is a separate business with its own keys. If you paste a key from there, PopMCP tells you so.
One API token. In the Privy dashboard open Settings, then API Tokens, click Create Token, name it, tick the permissions and choose how long it lasts. Privy shows the token only once, so copy it and paste it into PopMCP, which stores it encrypted. The token never reaches your AI client.
Yes. Privy only offers API access on paid accounts and answers api_access_required otherwise. If you are on a paid plan and still see that, Privy's support team can turn it on.
All of them if you want everything to work, or only the ones ending in _read for a read-only token. Reports need reports_read on its own, even when the token can read the campaigns and flows being reported on. Privy does not list what a token holds, so privy_check_access tests the read permissions, and a refused call names the one that is missing. To add one, create a new token.
When you create the token, choose which subaccounts it can reach. Privy fixes that when the token is made. PopMCP lists your main account and those subaccounts, and each connection is for one of them. A request for another account is refused, not answered with the wrong store's numbers. To work with several, connect each one.
No. Privy's API reads displays, campaigns, flows, segments and coupons but does not create or send them, so those stay in the Privy dashboard. Through the API you can add and change contacts, report orders and send custom events. An event or an order can start a flow you already built, which can message real customers, so the AI should ask first.
Setting SMS consent to subscribed sends a real welcome text unless send_welcome_sms is false. Only record consent the person really gave. Reporting an order or sending an event can start flows, while initial_sync on an order loads past orders without starting anything.
No. Contact tools take a Privy contact id, an email address or a phone number with its country code, and look up the id for you. Numbers from a dashboard URL are not API ids, and the tool says where to find the right one. A plain update replaces every tag, so update_contact_tags and upsert_contact are there to add or remove one and keep the rest.
Yes. Every connection starts read-only, which keeps contacts, results and everything set up readable and blocks every change. An owner or admin can allow write actions later. A token with only read permissions is a second lock, on Privy's side.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Privy in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Privy on the consent screen. The Privy tools are then available in that session, and no Privy credential is stored on your machine.
Loading 45 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 35-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 45 here. A trigger is something PopMCP watches for you: 13 Privy events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Privy.
Launch a hosted MCP endpoint for Privy, keep tool access under control, and start testing real workflow prompts right away.