eCellar MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.0.2Updated Nov 5, 2026

Read orders, customers, club and stock; add tracking, mark shipped and adjust stock in eCellar.

The publisher's own server: Ably MCP by usefulapi

Overview

AI-generated overview

Hosted eCellar MCP server that lets an assistant read winery orders, customers, club and inventory data, and make limited shipping and stock changes.

What you can do
  • Look up reference lists such as brands, locations, statuses, tags and carriers
  • Search customers, addresses, notes, orders, order lines, payments and tracking records
  • Search products, product categories and current inventory counts per SKU and location
  • Search wine club subscriptions, tiers, club events and tasting-room reservations
  • Mark one order shipped or delivered, add a carrier tracking record, adjust on-hand stock
  • Check usage, request a feature, upgrade or cancel the subscription
When to use it
Useful for wineries and eCellar users who want an assistant to answer questions about club members, orders, shipping status and stock levels, or to record shipping and inventory updates without opening eCellar directly.
Requirements
Remote endpoint at ecellar.usefulapi.io, added by URL only; sign-in is via OAuth with an eXchange username and password issued by eCellar support, which the server stores per user. No API key or Authorization header in the client config. A free plan allows 50 tool calls per month; paid plans are billed through Stripe.
Before you install
Write tools change eCellar data: marking orders shipped or delivered, adding tracking records and adjusting inventory by a signed delta that repeats on each call. Read tools return customer personal data, including contact details, addresses and card brand with last digits. The eXchange credentials are stored by the hosted service. Paid plans cost money and cancellation gives no refund for the current period.

Installation

In SourceWeft

  1. Open eCellar MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fecellar/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "ecellar-by-usefulapi": {
      "type": "http",
      "url": "https://ecellar.usefulapi.io/mcp"
    }
  }
}

README

eCellar MCP by usefulapi

Use your eCellar account from Claude, Cursor, or any MCP client. Read orders, customers, club subscriptions, products, inventory and reservations, and record tracking, shipping and stock changes. Hosted, no local install: connect with your own credentials.

Live endpoint: https://ecellar.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://ecellar.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http ecellar https://ecellar.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "ecellar": {      "url": "https://ecellar.usefulapi.io/mcp"    }  }}

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, and the login page asks for your eCellar credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/ecellar/

On first connect you provide your eXchange username and eXchange password (API access that eCellar support issues on request). The server validates them and stores them per user. No keys go in config files.

Tools

ToolTypeWhat it does
ecellar_get_reference_datareadGet reference data
ecellar_search_customersreadSearch customers
ecellar_search_addressesreadSearch customer addresses
ecellar_search_notesreadSearch customer notes
ecellar_search_ordersreadSearch orders
ecellar_search_order_linesreadSearch order lines
ecellar_search_order_paymentsreadSearch order payments
ecellar_search_order_trackingsreadSearch order tracking records
ecellar_search_productsreadSearch products
ecellar_search_product_categoriesreadSearch product categories
ecellar_get_inventory_countsreadGet inventory counts
ecellar_search_club_subscriptionsreadSearch club subscriptions
ecellar_search_club_tiersreadSearch club tiers
ecellar_search_club_eventsreadSearch club events
ecellar_search_reservationsreadSearch reservations
ecellar_mark_order_shippedwriteMark order shipped
ecellar_mark_order_deliveredwriteMark order delivered
ecellar_add_order_trackingwriteAdd order tracking record
ecellar_adjust_inventory_countwriteAdjust inventory count
ecellar_usage_statusmetaUsage status (free-tier meter)
ecellar_request_featuremetaRequest a missing feature
ecellar_upgrademetaUpgrade to Pro or Pro+
ecellar_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)Unlimited*

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

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

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/ecellar/README.md at commit 92e9424

Tools

19

ecellar_get_reference_data

Get reference data

Lookup lists of the winery's eCellar account: brands = brands (brand_key + name); locations = locations (location_id, name, timezone); customer_types = customer types; customer_sources = customer sources; customer_tags = customer tags; order_tags = order tags (tag groups and tags); reservation_types = reservation types; terminals = POS terminals; billing_statuses = billing statuses (enum values for the orders filter billing_statuses); purchase_statuses = order statuses (enum values for the orders filter purchase_statuses); purchase_sources = order sources (Web, POS, club, phone...); carriers = carriers (enum values for ecellar_add_order_tracking carrier_enum); payment_types = payment types; card_types = card types; note_types = customer note types; product_availabilities = product availabilities; product_statuses = product statuses; reservation_statuses = reservation statuses; fulfillment_companies = fulfillment companies; state_codes = state codes; country_codes = country codes. Use brands first: the brand_key values filter orders, club tiers, events and reservations. GET /client/* or /types/*.

Parameterskindrequired

ecellar_search_customers

Search customers

Customers (club members and buyers) with contact details, type, source, tags, email consent and default addresses. Personal data: use only what the task needs. POST /customers.

Parameterspagepage_sizecustomer_idssignup_date_endcustomer_type_idsmodified_date_endsignup_date_startmodified_date_start

ecellar_search_addresses

Search customer addresses

Customer billing and shipping addresses. POST /addresses.

Parameterspagepage_sizeaddress_idscustomer_idscreate_date_endcreate_date_startmodified_date_endmodified_date_start

ecellar_search_notes

Search customer notes

Notes on customer records (type, text, dates). POST /notes.

Parameterspagepage_sizecustomer_idscreate_date_endcreate_date_startmodified_date_endmodified_date_start

ecellar_search_orders

Search orders

Orders (web, POS, club and phone) with totals, status, billing and shipping details, and their lines, payments, tracking records and tags. Statuses are the enum values from ecellar_get_reference_data purchase_statuses / billing_statuses. Contains customer personal data. POST /orders.

Parameterspagepage_sizebrand_keyscustomer_idspurchase_idsclose_date_endcreate_date_endbilling_statusesclose_date_startcreate_date_startmodified_date_endpurchase_statuses+3 more

ecellar_search_order_lines

Search order lines

Order lines (product, SKU, quantity, price, discount, tax) across orders. POST /orders/lines.

Parameterspagepage_sizepurchase_idscreate_date_endcreate_date_startmodified_date_endmodified_date_start

ecellar_search_order_payments

Search order payments

Order payments (amount, type, billing status, dates, card brand, last digits and expiry; no card numbers). POST /orders/payments.

Parameterspagepage_sizepurchase_idscreate_date_endbilling_statusescreate_date_startmodified_date_endmodified_date_startfunds_captured_date_endfunds_captured_date_start

ecellar_search_order_trackings

Search order tracking records

Carrier tracking records of orders (carrier, tracking number, shipped and delivered dates). POST /orders/trackings.

Parameterspagepage_sizepurchase_idscreate_date_endcreate_date_startmodified_date_endmodified_date_start

ecellar_search_products

Search products

Products (wines and merchandise): name, SKU, price, vintage-related fields, categories and inventory SKUs. POST /products.

Parameterspagepage_sizecreate_date_endcreate_date_startmodified_date_endmodified_date_start

ecellar_search_product_categories

Search product categories

Product categories (tree: parent_category_id, category_id, name). POST /products/categories.

Parameterspagepage_sizecreate_date_endcreate_date_startmodified_date_endmodified_date_start

ecellar_get_inventory_counts

Get inventory counts

Current inventory per SKU and location: on_hand, on_hold, invoiced and available. Filter by SKUs and/or locations (ids or names from ecellar_get_reference_data locations); with no filter every SKU and location is returned. POST /inventory/counts.

Parametersskuslocation_idslocation_names

ecellar_search_club_subscriptions

Search club subscriptions

Wine club subscriptions of customers: tier, signup/cancel/hold dates, billing and shipping address, card brand, last digits and expiry (no card numbers). POST /subscriptions.

Parameterspagepage_sizecustomer_idsclub_tier_idscancel_date_endsignup_date_endcancel_date_startmodified_date_endsignup_date_startmodified_date_startcc_expiration_date_endcc_expiration_date_start

ecellar_search_club_tiers

Search club tiers

Wine club tiers (id, name, description, brand). POST /club/tiers.

Parameterspagepage_sizebrand_keyscreate_date_endcreate_date_startmodified_date_endmodified_date_start

ecellar_search_club_events

Search club events

Club events / shipments (name, date, ship group, tier, pickup location, product totals, remix window). POST /club/events.

Parameterspagepage_sizebrand_keyscreate_date_endcreate_date_startmodified_date_endclub_event_date_endmodified_date_startclub_event_date_start

ecellar_search_reservations

Search reservations

Tasting-room and experience reservations (party, times, status, host, notes, contact phone and email). POST /reservations.

Parameterspagepage_sizecreate_date_endreservation_idscreate_date_startmodified_date_endmodified_date_start

ecellar_mark_order_shipped

Mark order shipped

WRITE: set the shipped date and status of ONE order, to be used when ALL its packages have shipped. eCellar refuses it unless the order status is EXPORTED, HOLD_SHIP, SHIPPED, TO_PICKUP or UNSHIPPED, the date is not before the order date, and the date matches the latest tracking ship date. Check the order and its tracking records first. PATCH /order/{order_id}/shipped.

Parametersorder_idrequireddate_shippedrequired

ecellar_mark_order_delivered

Mark order delivered

WRITE: set the delivered date and status of ONE order, to be used when ALL its packages were delivered. eCellar refuses it unless the order status is DELIVERED or SHIPPED and the date matches the latest tracking delivered date. PATCH /order/{order_id}/delivered.

Parametersorder_idrequireddate_deliveredrequired

ecellar_add_order_tracking

Add order tracking record

WRITE: add a carrier tracking record (carrier + tracking number, optional shipped/delivered dates) to ONE order. Adds a record each call; a duplicate tracking number on the same order is refused by eCellar. Get carrier_enum from ecellar_get_reference_data carriers. POST /order/{order_id}/tracking.

Parametersorder_idrequiredcarrier_enumrequireddate_shippeddate_deliveredcarrier_tracking_numberrequired

ecellar_adjust_inventory_count

Adjust inventory count

WRITE: change the on-hand count of ONE SKU at ONE location by a signed amount (+12 adds, -3 removes; it is a delta, not a new total, so repeating it repeats the change). Pass location_id or location_name; eCellar refuses an unknown or ambiguous location, a SKU that is not at that location, or a result below zero. Check ecellar_get_inventory_counts first. PATCH /inventory/counts/{SKU}.

Parametersskurequiredlocation_idlocation_nameon_hand_adjustmentrequired

Version history

2
  1. v1.0.2LatestNov 5, 2026
  2. v1.0.1Nov 5, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations