smile_create_ points_ transactionAdd or remove points directly on a customer's balance, for corrections, goodwill credits or moving a balance over.
Look up what a customer has earned, correct a balance, redeem their points for a discount code, reward them for something they did, and see how your points, referral and VIP programs are set up.
PopMCPSmile.io
Every endpoint of Smile's REST API is here, from customers and points transactions to reward fulfillments and activities, with jobs like a full customer overview and a points total for any date range done in one call.
20 tools in the full catalog: 14 read and 6 write. 19 load by default, and the rest are found with tool search.
smile_create_ points_ transactionAdd or remove points directly on a customer's balance, for corrections, goodwill credits or moving a balance over.
smile_get_ points_ productGet one reward customers can spend points on, by points product id from smile_list_points_products: its price in points and the reward it issues.
smile_get_ points_ transactionGet one points balance change by id from smile_list_points_transactions.
smile_list_ points_ productsList the rewards customers can spend points on: id (the points product id for smile_purchase_points_product), exchange_description such as "100 Points = $1 off", exchange_type, the price (points_price when fixed, variable_points_min, _max and _step when variable) and the reward.
smile_list_ points_ transactionsList points balance changes, newest first, both earned and spent: id, customer_id, points_change (positive added, negative deducted), description, internal_note and dates.
smile_purchase_ points_ productSpend a customer's points on a reward.
smile_adjust_ pointsAdd or remove points on a customer's balance by email or customer_id, for corrections and goodwill credits.
smile_customer_ overviewEverything about one loyalty customer in one call, by email or customer_id: points balance, state, referral link, VIP tier by name with progress to the next one, latest points changes and rewards with discount codes.
smile_points_ summaryTotals of points added and removed over a date range, for everyone or one customer: points_added, points_removed, net, how many changes and customers, and the most common reasons.
smile_program_ overviewThe whole loyalty program in one call: what points are called, the referral program and its rewards, the ways to earn, the rewards points can buy and the VIP tiers with their perks.
smile_redeem_ pointsSpend a customer's points on a reward, by email or customer_id, and get the discount code back.
smile_get_ points_ settingsGet what this program calls its points (points_label one and other, such as Coin and Coins), to write balances the way customers see them.
smile_get_ referral_ settingsGet the referral program: status (active or inactive), the reward for the person who refers (sender_reward) and for the friend they refer.
smile_list_ earning_ rulesList the enabled ways to earn: name, what is earned (fixed points, or points per amount spent), any earning limit, and which VIP tiers it is limited to.
smile_list_ vip_ tiersList the VIP tiers, lowest first: id, name and milestone (points or money needed, depending on the program).
smile_get_ customerGet one customer by Smile customer id (from smile_list_customers): points balance, state, referral link, birthday and VIP status (current tier, progress and what is left to the next tier).
smile_list_ customersList loyalty program customers, newest first, or look one up by email.
smile_create_ activityTell Smile a customer did something rewardable, and Smile issues whatever the program's way to earn for it says.
smile_list_ reward_ fulfillmentsList rewards already issued to customers, newest first: name, discount code, customer_id, fulfillment_status, usage_status (used, unused or untracked), expires_at, used_at and terms.
smile_create_ or_ update_ customer_ identityLink a customer record from another system to Smile, creating the Smile customer if the email is new.
Credentials off one Smile.io screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In Smile Admin, open Settings, then Developer tools, and click Generate new API key. Name it PopMCP, tick the scopes and copy the key, which is shown only once. Paste it here. API keys come with Smile's Plus and Enterprise plans, and there is no app to register.
••••••••••••3f7aChanging a balance, spending a customer's points and recording an activity take effect the moment the AI calls them, and customers can see the result. To keep a connection to reading, tick only read scopes on the key or choose read-only access in PopMCP. Each connection reaches one Smile account.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Smile.io 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.
What's jane@example.com's points balance, VIP tier and unused discount codes?
smile_customer_overviewok
Then just ask for the work
“What's jane@example.com's points balance, VIP tier and unused discount codes?”
“How many points went out and were spent last month, and what were they for?”
“Add 500 points to jane@example.com as an apology for her late order”
“Redeem Jane's points for the $5 off reward and give me the code”
“Summarize how our loyalty program works: ways to earn, rewards, referrals and VIP tiers”
“Which customers changed in the loyalty program since Monday?”
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 Smile.io behind an AI client.
One API key, and a Smile Plus or Enterprise plan, because Smile only offers API access on those plans. In Smile Admin open Settings, then Developer tools, click Generate new API key, tick the scopes and copy the key straight away, since Smile shows it only once. Paste it into PopMCP. There is no app to register and nothing to approve.
Tick all of them if the AI should be able to change balances, redeem points and record activities. Tick only the read scopes for a key that can look but not touch. A key's scopes cannot be edited afterwards, so to change them you make a new key and connect again. PopMCP tells you when it connects if the key cannot read something, and a tool that needs a missing scope says which one.
Yes. adjust_points adds or removes points by email or customer id and refuses before sending if the balance would go below zero. If two customers share the email, it asks which one rather than guessing. Each call changes the balance, so asking twice adds twice. Use it for corrections and goodwill credits.
An adjustment changes the balance by the number you give. An activity tells Smile a customer did something, such as subscribing to a newsletter, and Smile works out the points from your program's rules, so your reports count it properly. Activities use a custom activity type you set up in Smile Admin, and points arrive shortly after, not instantly. Giving each one a distinct_id stops the same action being rewarded twice.
Yes. redeem_points spends a customer's points on one of your rewards and returns the discount code. It checks the price and the balance first and explains any problem without spending anything. The points are taken as soon as it succeeds.
No. Smile's API reads those settings but does not change them, so you still edit them in Smile Admin. It also has no endpoint for creating customers on an API key or listing referrals one by one. The AI can read your whole program setup, and every customer's referral link comes with their record.
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 Smile.io 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 Smile.io on the consent screen. The Smile.io tools are then available in that session, and no Smile.io credential is stored on your machine.
Loading 20 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 19-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 20 here. A trigger is something PopMCP watches for you: 6 Smile.io 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 Smile.io.
Launch a hosted MCP endpoint for Smile.io, keep tool access under control, and start testing real workflow prompts right away.