io.usefulapi/ecellar · v1.0.2 · ecommerce
eCellar MCP by usefulapi is healthy: it completed an MCP handshake in 429 ms and exposes 19 tools.
Read orders, customers, club and stock; add tracking, mark shipped and adjust stock in eCellar.
Endpoint: https://ecellar.usefulapi.io/mcp (streamable-http)
Repository · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 19 |
| Latency | 429 ms |
| Last checked (UTC) | 2026-11-05T15:05:42.233Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-11-05T15:05:42.233Z | Healthy | 429 |
ecellar_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 |
ecellar_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. |
ecellar_search_addresses | Customer billing and shipping addresses. POST /addresses. |
ecellar_search_notes | Notes on customer records (type, text, dates). POST /notes. |
ecellar_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. |
ecellar_search_order_lines | Order lines (product, SKU, quantity, price, discount, tax) across orders. POST /orders/lines. |
ecellar_search_order_payments | Order payments (amount, type, billing status, dates, card brand, last digits and expiry; no card numbers). POST /orders/payments. |
ecellar_search_order_trackings | Carrier tracking records of orders (carrier, tracking number, shipped and delivered dates). POST /orders/trackings. |
ecellar_search_products | Products (wines and merchandise): name, SKU, price, vintage-related fields, categories and inventory SKUs. POST /products. |
ecellar_search_product_categories | Product categories (tree: parent_category_id, category_id, name). POST /products/categories. |
ecellar_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. |
ecellar_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. |
ecellar_search_club_tiers | Wine club tiers (id, name, description, brand). POST /club/tiers. |
ecellar_search_club_events | Club events / shipments (name, date, ship group, tier, pickup location, product totals, remix window). POST /club/events. |
ecellar_search_reservations | Tasting-room and experience reservations (party, times, status, host, notes, contact phone and email). POST /reservations. |
ecellar_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 |
ecellar_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. |
ecellar_add_order_tracking | 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. |
ecellar_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 resu |