Capabilities
You drive the MCP server in natural language — describe what you want and the assistant picks the right action. This page shows example prompts and lists what the server can do today.
The exact set of actions evolves as we add features; once connected, your client always shows the current list. The actions below cover both easycart (your store) and easymail (your email marketing) — a single connection reaches both, see Connecting. The easymail actions additionally need the Manage Easymail API keys permission on the store you are acting on.
Example prompts
easycart
Try asking your assistant:
"Show me this week's revenue compared to last week."
"Find my product called Masterclass and give me its checkout link."
"List the orders from the last 7 days."
"Create a 20% discount code BLACKFRIDAY for my course."
"Add a $99 one-time price to Masterclass that gives buyers access for one year."
"Cancel jane@example.com's subscription at the end of the period."
"Refund the last payment from john@example.com."
easymail
"How many subscribed contacts do I have?"
"Find contacts who haven't opened an email in the last 90 days."
"Add jane@example.com to my Newsletter list."
"Draft a campaign announcing the summer sale, then send me a test copy."
"Schedule the Summer Sale campaign for Friday at 9am."
"What were the open and click rates for my last campaign?"
"Unsubscribe john@example.com from all email."
What you can do — easycart
Store
| Action | Description |
|---|---|
get_store | Read the selected store's details and the currencies it uses |
list_stores | List every store your token can manage |
Products
| Action | Description |
|---|---|
find_products | Look up a product by ID or search by keyword |
create_product | Create a new product |
update_product | Change a product's details as an unpublished draft |
publish_product | Put the current draft on sale, so buyers see it |
unpublish_product | Take a product off sale, saving any pending draft once you confirm |
Variants
| Action | Description |
|---|---|
find_variants | List a product's price variants, or look one up by ID. Each result includes upsells |
create_variant | Add a price variant to a product's draft |
update_variant | Change a variant's details in the product's draft, including replace-all upsells |
archive_variant | Retire a price variant from the unpublished draft. There is no unarchive |
reorder_variants | Set the display order of a product's unpublished-draft variants |
Product and variant edits are saved as an unpublished draft. Buyers keep seeing the
current version until publish_product runs, and the assistant gives you a preview link
after each edit so you can check the result before putting it live.
To change a published price amount, archive the variant and create a new one —
update_variant cannot change amount. Same-product upsells are set on
update_variant, not on create.
unpublish_product is not a simple status flip. If the product has a pending draft —
including one left half-finished in the dashboard — taking it off sale saves that draft as
the live product, so edits nobody remembers making can become real, and a store connected
to Stripe may have products or prices created there as a result. Because of that, the
assistant stops and shows you a preview link first, and only goes ahead once you confirm.
A product with no pending draft is taken off sale straight away.
Checkout appearance
| Action | Description |
|---|---|
update_product_styles | Change checkout colours, rounding, shadow, and dark mode on the unpublished draft |
update_product_settings | Change checkout logos, thank-you copy, confirmation email, and recovery on the unpublished draft |
update_product_media | Replace the checkout gallery on the unpublished draft |
upload_product_media | Host an image, video, or file and return a URL — does not change the gallery by itself |
Styles, settings, and gallery writes land on the unpublished draft and return a
preview link. Host a file with upload_product_media first, then pass the
returned URL into update_product_media or update_product_settings. The matching
HTTP endpoints are documented under
Checkout appearance.
Custom fields
| Action | Description |
|---|---|
manage_product_custom_fields | List, get, create, update, or delete checkout custom fields on a product's unpublished draft |
manage_waitlist_custom_fields | Same actions for waitlist custom fields — they do not appear at checkout |
manage_variant_custom_fields | Same actions for a variant's checkout custom-field override |
Pick the action with action (list, get, create, update, delete). Identity
is the field name, not a UUID. After a write, the assistant returns a preview link
and stops — it does not publish. An empty variant override means the variant inherits
the product checkout fields.
Orders
| Action | Description |
|---|---|
list_orders | Browse and filter orders |
get_order | Read the full details of a single order |
Customers
| Action | Description |
|---|---|
list_customers | Browse and filter customers |
get_customer | Read the full details of a single customer |
Product access
| Action | Description |
|---|---|
grant_product_access | Give a customer free access to a one-time product |
revoke_product_access | Remove a customer's access to a one-time product |
Transactions & refunds
| Action | Description |
|---|---|
list_transactions | Browse and filter transactions |
get_transaction | Read a transaction's details, including what is refundable |
issue_refund | Refund a transaction in full or in part |
Invoices
| Action | Description |
|---|---|
list_invoices | Browse and filter invoices |
get_invoice | Read the full details of a single invoice |
resend_invoice | Email an issued invoice to the customer again |
Promotion codes
| Action | Description |
|---|---|
list_promotion_codes | Browse promotion codes |
get_promotion_code | Read the details of a single promotion code |
create_promotion_code | Create a discount code |
update_promotion_code | Update a code's name, status, or variants |
archive_promotion_code | Permanently retire a promotion code |
Subscriptions
| Action | Description |
|---|---|
list_subscriptions | Browse and filter subscriptions |
get_subscription | Read the full details of a single subscription |
manage_subscription | Cancel, resume, or change the plan of a subscription |
Statistics
| Action | Description |
|---|---|
get_stats | Read a sales or revenue statistic with period-over-period comparison |
Storefronts (Creator pages)
| Action | Description |
|---|---|
find_storefronts | Look up a Creator page by ID, name, slug, or domain, or search the list |
create_storefront | Create a new Creator page as a draft |
update_storefront | Change a draft section — styles, header, or settings |
upload_storefront_media | Host an image or file for a Creator page and return a URL |
manage_storefront_blocks | List, get, create, update, or reorder widgets on a Creator page |
publish_storefront | Put the current draft live as the visitor page |
unpublish_storefront | Take the live Creator page down; the draft stays |
get_storefront_analytics | Read traffic and revenue analytics for one Creator page |
Creator-page edits write the unpublished draft. The assistant returns a preview link after each edit and does not publish until you confirm.
Landing pages
| Action | Description |
|---|---|
list_pages | List Easypages (landing pages) |
get_page_analytics | Read analytics for one landing page |
Easypages are a different surface from Creator pages. Landing pages are authored in the dashboard; these actions only list them and read their analytics.
What you can do — easymail
Contacts
| Action | Description |
|---|---|
find_contacts | Find and filter contacts by email, status, list, segment, custom field, or engagement recency |
count_contacts | Count the contacts matching a filter, without listing them |
create_contact | Add a new contact |
upsert_contact | Create a contact, or update it if the email already exists |
update_contact | Change an existing contact's details |
delete_contact | Permanently delete a contact |
unsubscribe_contact | Withdraw a contact's consent so they stop receiving email |
resubscribe_contact | Restore consent so a contact can receive email again |
list_contact_events | Read a contact's activity timeline — opens, clicks, bounces, purchases |
Lists
| Action | Description |
|---|---|
find_contact_lists | Browse contact lists, optionally with subscriber and mailability stats |
create_contact_list | Create a contact list |
update_contact_list | Rename a contact list or change its description |
delete_contact_list | Delete a contact list |
manage_contact_list_membership | Add or remove contacts from a contact list |
Segments
| Action | Description |
|---|---|
find_contact_segments | Browse contact segments — saved, filter-based audiences |
Custom fields
| Action | Description |
|---|---|
find_contact_custom_fields | Browse contact custom field definitions |
create_contact_custom_field | Define a new contact custom field |
rename_contact_custom_field | Rename a contact custom field |
delete_contact_custom_field | Delete an unused contact custom field and its values from every contact |
set_contact_custom_field | Set a custom field value on a single contact |
clear_contact_custom_field | Clear a custom field value on a single contact |
A custom field that an active automation, a segment, or an unsent campaign still uses cannot be deleted; edit those first. See Delete Custom Field.
Campaigns
| Action | Description |
|---|---|
find_campaigns | Browse campaigns |
get_campaign | Read a campaign's details, optionally with open/click stats and revenue |
create_campaign | Create a draft campaign |
update_campaign | Edit a draft campaign |
delete_campaign | Delete a campaign |
send_campaign | Send a campaign now |
schedule_campaign | Schedule a campaign to send at a future time |
unschedule_campaign | Revert a scheduled campaign back to draft |
cancel_campaign | Stop a campaign that is currently being sent |
send_test_email | Send a test copy of a campaign to specific addresses |
Campaign reporting
| Action | Description |
|---|---|
list_campaign_recipients | See the per-recipient send log for a campaign |
list_campaign_link_clicks | See which tracked links were clicked, and how often |
Sending setup
| Action | Description |
|---|---|
list_sender_identities | List the verified "from" addresses you can send as |
list_timezones | List the timezones available for scheduling |
Actions that change data
Some actions write data, move real money, or contact your customers. The assistant acts as you, with your permissions, so review what it proposes before you confirm.
In easycart: issuing refunds (which move real money), granting or revoking product access, resending invoices, cancelling subscriptions, archiving promotion codes, and archiving a price variant. A full refund also revokes the customer's access to the product and emails them; archiving a promotion code or a variant cannot be undone. Taking a product off sale also saves any pending draft as the live product, which the assistant asks you to confirm first — see Products. Publishing a Creator page overwrites the live visitor page with the current draft.
In easymail: sending or scheduling a campaign and sending a test email deliver real mail; unsubscribing or resubscribing changes a contact's consent; and deleting a contact, list, campaign, or custom field is permanent, and deleting a custom field removes its value from every contact.