Skip to content
EmbPay
MCP server

Your store, in your assistant.

EmbPay runs a remote Model Context Protocol server. Point Claude, Cursor, Copilot or any MCP client at it and ask about sales, create products and payment links, or refund an order — in plain language, against your real account.

Setup

Two minutes, one API key.

The server speaks Streamable HTTP and authenticates with a Bearer token — the same ep_live_ or ep_test_ key the REST API uses.

EmbPay runs a remote MCP server, so an assistant that speaks MCP — Claude, Cursor, Copilot and others — can read your orders, create products and checkout links, issue refunds you confirm, and check that your store is wired up correctly. It authenticates with the same API key the REST API uses.

  1. 1Create an API key in Settings → API keys. Use an ep_test_ key first: the assistant then sees rehearsal data only. Leave “Allow this key to move money” off unless you want refund requests, archiving and live checkout links; refunds still wait for your approval in the dashboard.
  2. 2Add the server to your client, replacing ep_live_YOUR_KEY with your key.
  3. 3Ask: “What did I sell this week?” or “Make a $49 checkout link for my consulting call.”

One command; the key is stored in Claude Code's own config, not in your repo.

claude mcp add --transport http embpay https://www.embpay.com/mcp \
  --header "Authorization: Bearer ep_live_YOUR_KEY"

Endpoint https://www.embpay.com/mcp · Streamable HTTP, stateless, Bearer auth · 100 requests per minute per key · every tool, documented

Tools

Nineteen tools, three levels of care.

Read tools are free to call. Write tools create things. Tools marked “money” exist only on keys created with “Allow this key to move money” — and even then a refund never runs on the assistant's word: it produces a link you open in your dashboard and approve.

ToolLevelWhat it does
get_accountReadBusiness name, plan and limits, Stripe status, key mode, connected channels.
list_productsReadCatalogue with each product's hosted checkout link.
get_productReadOne product plus its completed-order count.
create_productWriteNew product with a shareable checkout link; respects plan limits.
update_productWriteName, price, description, image or tags. Store-synced products are read-only.
archive_productMoney key onlyTake a product off sale (kept for order history). Needs a money-enabled key.
list_ordersReadEmbPay and WooCommerce orders, newest first, filterable by status, email, product, date.
get_orderReadOne order with items, discounts, tax and licence key.
refund_orderMoney key onlyRequests a refund and returns an approval link; the money moves only after you approve it in the dashboard. Needs a money-enabled key.
list_customersReadBuyers grouped by email with order count and lifetime spend.
get_sales_summaryReadRevenue, refunds, failed payments and top products for a window, with the previous period.
create_checkoutMoney key onlyA 24-hour payment link for ad-hoc line items (invoices, quotes). Live links need a money-enabled key; test links always work.
get_checkoutReadWhether a checkout session has been paid.
list_couponsReadDiscount codes with usage and status.
create_couponWritePercentage or fixed-amount code with optional cap and expiry.
deactivate_couponMoney key onlyStop a code being accepted. Needs a money-enabled key.
list_abandoned_cartsReadBuyers who left checkout, with recovery-email history.
list_eventsReadThe event log: checkout.completed, payment_failed, refunded, dispute.
list_webhook_endpointsReadWhere events are pushed and how deliveries are doing.

Money is always an integer in the currency's smallest unit (2500 = $25.00). A test key sees only rehearsal orders; a live key sees and moves real money. The server also publishes a embpay://docs/conventions resource with these rules.

In practice

Things you can just ask.

Questions

The usual ones.

What is MCP?
The Model Context Protocol is an open standard that lets an AI assistant call tools on a server. EmbPay hosts one, so the assistant you already use can work with your store without you pasting data into a chat.
Is it safe to give an assistant my API key?
The key is stored by your MCP client, never in the chat. A key cannot refund, archive or create live payment links unless you ticked “Allow this key to move money” when creating it, and a refund request only produces a link you open in your dashboard and approve yourself. Start with an ep_test_ key, which only ever sees rehearsal data. Every call is rate-limited and logged like any API request.
Does it work with claude.ai on the web?
Web connectors require OAuth, which this server does not offer yet. Claude Code, Claude Desktop (via mcp-remote), Cursor, VS Code and any client that sends a Bearer header work today.
Which plan do I need?
API keys are on the Pro plan ($29/month). The MCP server uses the same key as the REST API.

Prefer webhooks or Zapier-style automation? See receiving webhooks.