EasyStore MCP server

Read EasyStore orders, products and customers; manage stock, fulfillments and customer records. For store operators who manage orders, stock and customers in EasyStore. Hosted by usefulapi — connect from Claude, ChatGPT, Cursor, or any MCP client.

Claude claude.ai · Desktop

  1. Open Customize → Connectors, then click + Add → Add custom connector.
  2. Enter the name EasyStore and this URL, then click Add:
    https://easystore.usefulapi.io/mcp
  3. Claude opens the EasyStore login page: sign in and approve the access.
  4. In a chat, click + → Connectors and turn on EasyStore.

Team and Enterprise: an Owner adds the connector for the organization first.

Claude Code

Run this command, then run /mcp in Claude Code to log in:

claude mcp add --transport http easystore https://easystore.usefulapi.io/mcp

Cursor

Add to Cursor or add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "easystore": {
      "url": "https://easystore.usefulapi.io/mcp"
    }
  }
}

VS Code

Add to VS Code or add this to .vscode/mcp.json:

{
  "servers": {
    "easystore": {
      "type": "http",
      "url": "https://easystore.usefulapi.io/mcp"
    }
  }
}

ChatGPT chatgpt.com

  1. Open Plugins, click +, then Add custom MCP server.
  2. Enter the name EasyStore and this URL, choose OAuth as the authentication, confirm the warning and create it:
    https://easystore.usefulapi.io/mcp
  3. ChatGPT opens the EasyStore login page: sign in and approve the access.
  4. In Plugins, install EasyStore, then choose it in a chat.

No Add custom MCP server option? It depends on your account or workspace settings: see OpenAI's guide.

Codex

Run these commands. The second one opens the login page:

codex mcp add easystore --url https://easystore.usefulapi.io/mcp
codex mcp login easystore

Other MCP clients (Windsurf, Cline, Zed and more): add the URL as a remote MCP server (Streamable HTTP). The client then opens the login page in your browser. Do not add an Authorization header: see Before you connect.

live33 toolsFree 50 tool calls / monthPro $9/mo · $90/yr

What you can do with EasyStore in Claude and ChatGPT

Review paid orders waiting to ship

Find paid, unfulfilled orders and inspect their items and shipment history before planning the next dispatch.

easystore_list_orders easystore_get_order easystore_list_order_fulfillments

Check variant stock across locations

Find a product and its variants, then compare available, committed, incoming and reserved stock at each location.

easystore_list_products easystore_list_product_variants easystore_list_inventory_levels

Reconcile stock after a physical count

Review a variant’s stock at the selected location and set its quantity to the confirmed physical count when requested.

Changes data · easystore_list_inventory_levels easystore_set_inventory_level

Find a customer and review recent orders

Look up a customer by email or phone, then review their orders and shipment details to prepare a support reply.

easystore_search_customers easystore_list_orders easystore_list_order_fulfillments

Before you connect

You sign in with your EasyStore account and approve the access (OAuth). You do not need an API key.

Reads orders, products, variants, inventory, fulfillments, customers, locations and content pages, blogs and articles. When requested, it can adjust stock, update variants/customers, create customers/fulfillments and cancel orders. It does not charge payments or issue refunds. Customer information passes to your chosen AI client and its LLM provider. Reconnecting a store replaces older AI connections because EasyStore rotates the store token. Uninstall UsefulAPI in EasyStore to revoke access and delete its stored grants. A rejected store token closes the connection even if the uninstall notification is missed; disabling the app may require reconnecting. Connections without a successful store API call for 30 days are removed; reconnect to restore access. Billing is per store.

Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: you sign in with your EasyStore account. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.

Example prompts

Turn on the EasyStore connector, then ask in plain words. The AI picks the tools.

Tools 33

ToolTypeWhat it does
easystore_get_storeread
Get store
The store behind this access token: name, contact emails, easystore domain, plan, locale, country, time zone, currencies and locations. Needs no API access scope. GET /api/3.0/store.json.
easystore_list_locationsread
List locations
The store's stock and pickup locations (warehouses, outlets) with address, phone, is_primary and pickup settings. Use the ids for inventory levels. Needs read_locations. GET /api/3.0/locations.json.
easystore_list_productsread
List products
List products with variants, prices, SKUs, stock, images and collections. Filter by collection, SKU, published status or dates. Needs read_products. GET /api/3.0/products.json.
easystore_get_productread
Get product
One product by id with its variants, options, images and collections. Needs read_products. GET /api/3.0/products/{id}.json.
easystore_list_product_variantsread
List product variants
The variants of one product (price, SKU, barcode, stock, weight, enabled flag). Needs read_products. GET /api/3.0/products/{id}/variants.json.
easystore_list_collectionsread
List collections
List product collections. Needs read_products. GET /api/3.0/collections.json.
easystore_get_collectionread
Get collection
One collection by id. Needs read_products. GET /api/3.0/collections/{id}.json.
easystore_list_inventory_levelsread
List inventory levels
Stock per variant per location: available (inventory_quantity), committed, incoming and reserved. Pass variant_ids or location_ids (at least one is required). Needs read_products. GET /api/4.0/inventory_levels.json.
easystore_list_ordersread
List orders
List orders from every sales channel with customer, items, totals, payment and fulfillment status. Filter by payment or fulfillment status, customer, or dates (store time zone). Needs read_orders. GET /api/3.0/orders.json.
easystore_get_orderread
Get order
One order by id. Ask for extra sections with fields: items, addresses, transactions, fulfillments, refunds, taxes, customer, shipping_fees, discounts, points, cancellation, note_attributes. Needs read_orders. GET /api/3.0/orders/{id}.json.
easystore_list_order_fulfillmentsread
List order fulfillments
The fulfillments (shipments with tracking details and status) of one order. Needs read_fulfillments. GET /api/3.0/orders/{id}/fulfillments.json.
easystore_list_order_transactionsread
List order transactions
The payment transactions of one order (gateway, amount, status). Needs read_orders. GET /api/3.0/orders/{id}/transactions.json.
easystore_list_checkoutsread
List checkouts
List checkouts (carts in progress or abandoned). Cart tokens are not returned. Needs read_orders. GET /api/3.0/checkouts.json.
easystore_list_customersread
List customers
List customers with contact details, order count, total spent, groups and store credit. Search by name or email with query. Needs read_customers. GET /api/3.0/customers.json.
easystore_search_customersread
Search customers
Find customers by exact email, phone number or customer code. Pass at least one. Needs read_customers. GET /api/3.0/customers/search.json.
easystore_get_customerread
Get customer
One customer by id. Add fields=points,membership for loyalty data. Needs read_customers. GET /api/3.0/customers/{id}.json.
easystore_list_customer_addressesread
List customer addresses
The saved addresses of one customer. Needs read_customers. GET /api/3.0/customers/{id}/addresses.json.
easystore_get_customer_pointsread
Get customer points
The loyalty points balance of one customer. Needs read_customers. GET /api/3.0/customers/{id}/points.json.
easystore_list_customer_groupsread
List customer groups
List customer groups (for example VIP). Needs read_customers. GET /api/3.0/groups.json.
easystore_list_pagesread
List pages
List the store's content pages. Needs read_content. GET /api/3.0/pages.json.
easystore_list_blogsread
List blogs
List the store's blogs. Needs read_content. GET /api/3.0/blogs.json.
easystore_list_articlesread
List blog articles
List blog articles. Needs read_content. GET /api/3.0/articles.json.
easystore_set_inventory_levelwrite
Set inventory level
WRITE. Set the stock of one variant at one location to an exact number (quantity 0 or more). Omit location_id for the primary location. Overwrites the current quantity; use easystore_adjust_inventory_level for a relative change. Needs write_products. PUT /api/4.0/inventory_levels/set.json.
easystore_adjust_inventory_levelwrite
Adjust inventory level
WRITE. Add to or remove from the stock of one variant at one location by a relative amount (positive adds, negative removes; 0 is rejected). Not idempotent: repeating it changes the stock again. Omit location_id for the primary location. Needs write_products. PUT /api/4.0/inventory_levels/adjust.json.
easystore_update_variantwrite
Update variant
WRITE. Change one variant's price, compare-at price, cost price, SKU, barcode or enabled flag. Only the fields you pass change. To change stock use the inventory tools. Needs write_products. PUT /api/3.0/products/{product_id}/variants.json.
easystore_cancel_orderwrite
Cancel order
WRITE, hard to undo. Cancel an order, with an optional reason. Confirm the order id and number with the user first. Needs write_orders. POST /api/3.0/orders/{id}/cancel.json.
easystore_create_fulfillmentwrite
Create fulfillment
WRITE. Mark an order (or some of its line items) as shipped, with tracking details. Not idempotent: calling it twice creates two fulfillments. With notify_customer true the customer is emailed. Needs write_fulfillments. POST /api/3.0/orders/{id}/fulfillments.json.
easystore_create_customerwrite
Create customer
WRITE. Create a customer. Pass at least one of first_name, last_name, email or phone. Not idempotent. Needs write_customers. POST /api/3.0/customers.json.
easystore_update_customerwrite
Update customer
WRITE. Change fields of an existing customer; only the fields you pass change. Needs write_customers. PUT /api/3.0/customers/{id}.json.
easystore_usage_statusmeta
Usage status (free-tier meter)
Report the caller's current usage: the plan, calls used this month, the limit of the plan (the free monthly cap or the Pro fair use limit), remaining, and whether the limit is reached. Read-only; does not count against the meter.
easystore_request_featuremeta
Request a missing feature
Tell usefulapi that the user needs something the EasyStore tools cannot do yet (a missing tool, field or filter). Call it only when the user asks for something none of the tools can do, and tell the user that you send the request. Do not call it for errors or for normal requests. Do not include personal data, credentials or customer records. Stored with the product name and the client type (for example Claude or Cursor), without the user's account. At most 5 requests per day. Does not count against the meter.
easystore_upgrademeta
Upgrade to Pro (unlimited*)
Get Pro: unlimited tool calls (fair use limit: 10,000 a month) on EasyStore (the free tier caps monthly usage). Plans: "monthly" — $9/month; "yearly" — $90/year (2 months free). Cancel any time: Pro then runs to the end of the paid period, so it also suits a one-time job. *A fair use limit applies. For heavy use (near Pro's limit): "plus" or "plus_yearly" — Pro+, $39/month or $390/year, unlimited tool calls (fair use limit: 100,000 a month); an existing Pro subscription changes to Pro+ in place (needs confirm: true; the price difference for the rest of the period is charged at once). Otherwise returns a short link to open in your browser (it opens Stripe Checkout); after payment the account upgrades automatically. Does not count against the meter.
easystore_cancel_subscriptionmeta
Cancel the Pro subscription
Cancel the caller's EasyStore Pro subscription at the end of the paid period (no refund for the current period; Pro continues until then, then the free tier applies). Requires confirm: true. Run easystore_upgrade later to undo the cancel before the period ends. Does not count against the meter.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Proper store$9/mo · $90/yrUnlimited*

*Pro fair use limit: 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this EasyStore server only. Subscribe with easystore_upgrade (it returns a Stripe Checkout link). Cancel any time with easystore_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running easystore_upgrade before then undoes the cancel. Or write to [email protected].

FAQ

What can I do with EasyStore in Claude or ChatGPT?

Review paid orders waiting to ship. Check variant stock across locations. Reconcile stock after a physical count. Find a customer and review recent orders. See what you can do for the details.

Is this an official EasyStore product?

No. usefulapi is an independent service. It is not affiliated with or endorsed by EasyStore. The server calls the EasyStore API with your own EasyStore access, so it sees only the data that your account can see.

Can I connect EasyStore to Claude or ChatGPT?

Yes. In Claude, add this server's URL as a custom connector. In ChatGPT, add it as a custom MCP server in Plugins. Then log in once. Cursor, VS Code, Claude Code and Codex work too. See the setup steps.

What do I need to connect?

A EasyStore account. You sign in to EasyStore and approve the access. You do not need an API key.

Do I add an Authorization header to the client config?

No. Add only the URL. Do not add an Authorization header or an API key to the client config. The server signs you in with OAuth: you sign in with your EasyStore account. If the config has such a header, remove it: some clients then send that header instead of the login token, and every call fails with 401.

How do you keep my EasyStore credentials?

The login stores them encrypted in the authorization grant of your connection. The server uses them to call the EasyStore API for you and to derive a private account id for usage metering. usefulapi does not show them on any page or in any reply. You can revoke the access in EasyStore at any time.

Can the AI change my EasyStore data?

Yes, if you approve it. 7 of the 29 EasyStore tools can create or change data. The other 22 are marked read-only. Most MCP clients ask you to approve a tool call before it runs.

What does it cost?

The Free plan gives 50 tool calls / month. Pro costs $9/mo or $90/yr, with unlimited tool calls (fair use limit: 10,000 tool calls a month), for this EasyStore server only. Cancel any time: Pro then runs to the end of the paid period. Run easystore_usage_status to see how many calls you used.

How do I subscribe or cancel?

Ask the AI to run easystore_upgrade: it returns a Stripe Checkout link. To cancel, run easystore_cancel_subscription. Pro continues to the end of the paid period.

What if a EasyStore tool that I need is missing?

Tell the AI what you wanted to do. It can send the request with easystore_request_feature. We store the text with the server name, the type of AI client and the tool you tried, not with your account, and read every request when we plan new tools. You can send up to 5 requests per day.

Which AI clients can I use?

Any client that supports remote MCP servers (Streamable HTTP) with OAuth login: Claude (web and desktop), Claude Code, ChatGPT, Codex, Cursor, VS Code, Windsurf and others.

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.

Need a tool this server does not have, or a connection to another system? We build custom integrations and MCP servers.

More Commerce & Memberships MCP servers

AwtomicBeacon CRMBettermodeBloomerangbol.comBooqableBreeze ChMSBrightpearlCin7 CoreCratejoyCustomCatEcwidElvantoEveniumEventbriteFinale InventoryFinerWorksFitsseyFoxy.ioFunraiseGelatoGift Up!GivingFuelGootenGumroadHello ClubHiboutikHumanitixInventory PlannerKiotVietLearnWorldsLightspeed Retail (R-Series)Lightspeed Retail (X-Series)LinnworksLittle Green LightLooxLoyverseMegaventoryMemberfulNeon CRMOrder DeskOwnerRezPHP Point of SalePlentyONEpretixPrintfulPrintifyProdigiQgivRackbeatRaiselyRechargeREVIEWS.ioSalesBinderSapoSellasistSmaregiSmile.ioSOS InventoryStoreRocketSwellTeamUpTicketsauceTicketSpiceTitoUnleashed SoftwareVeeqoVirtuousWild Apricot

All Commerce & Memberships servers →