# Loop Subscriptions MCP connector

The Loop Subscriptions connector lets Claude, ChatGPT, Cursor, or any MCP client look up, pause, reschedule, and change a customer's subscription through one governed endpoint, each action tied to the signed-in person and logged.

Source: https://elaichi.ai/connectors/loopsubscriptions/

## Facts

| | |
| --- | --- |
| Application | Loop Subscriptions |
| Category | Ecommerce |
| AI tools | 75 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Loop Subscriptions is connected

- Pause Maria Chen's coffee subscription until the first of next month.
- Which subscriptions are paused right now?
- Swap the medium roast line on subscription 48213 to dark roast.

## Connect Loop Subscriptions in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Loop Subscriptions.
2. Optionally set Share with, then press Connect.
3. Paste a Loop Subscriptions API key. One person generates a token in Loop Subscriptions and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Loop Subscriptions tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Loop Subscriptions MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Loop Subscriptions MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Loop Subscriptions MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Loop Subscriptions to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Loop Subscriptions tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Loop Subscriptions through Elaichi

### Pause a subscription while a customer travels

Support. A customer writes in before a trip. Pull up their Loop Subscriptions subscription, pause it, set the date it resumes, and confirm the next charge date back to them in the same conversation.

### Win back a canceled subscriber

Retention. When a lapsed customer says yes to an offer, reactivate their subscription, move them to the new plan, and add prepaid credits so the first box back is on you.

### Fix an address before the box ships

Fulfillment. Catch a moved customer before the next order goes out. Update the shipping address and switch the shipping method on the subscription without opening the store admin.

### Adjust a charge without touching the calendar

Finance. Apply a charge offset or adjust prepaid credits on a subscription to honor a refund or a promo, and see exactly which subscriptions were changed and by whom.

### Swap a discontinued product for everyone

Merchandising. When a flavor is retired, swap that line to its replacement across every affected subscription in one pass, then add a one-time sample to the next order.

### Shift billing dates for a whole cohort

Operations. Move the billing anchor for a group of subscriptions ahead of a warehouse closure, or reschedule a batch of next charges, and check the result before anything bills.

## Frequently asked questions

### How do I connect Loop Subscriptions to Claude?

Connect Loop Subscriptions in Elaichi first: it asks for the API key from your Loop Subscriptions admin, and there is no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude signs you in through Elaichi and your subscriptions are ready to work with.

### Does Loop Subscriptions work with ChatGPT and Cursor as well as Claude?

Yes. Loop Subscriptions is connected once in Elaichi, and the same endpoint, https://api.elaichi.ai/mcp, goes into Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. There is nothing extra to set up for each one.

### What can an AI agent actually do with my Loop Subscriptions data?

It can look up a customer's Loop Subscriptions subscription, pause or resume it, move the next charge date, change the plan, update the shipping address or shipping method, swap a product on a line or add a one-time item, adjust prepaid credits, and cancel or reactivate. It can also apply one change across many subscriptions at once. Short, specific asks like pause subscription 48213 for two weeks work better than long paragraphs.

### Does connecting Loop Subscriptions give the AI access to every subscription in my store?

Only what the person who signed in can already reach in Loop Subscriptions. An agent acts as that person, inside their access, and Elaichi can narrow that further with roles and restrictions. It can never widen it.

### Can my team share one Loop Subscriptions connection?

Yes. One person connects Loop Subscriptions with the API key and shares the connection with a team, and nobody else ever handles that key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person who paused or canceled a subscription.

### Can I stop an agent from canceling or changing subscriptions in Loop Subscriptions?

Yes. Restrictions in Elaichi work per action, so you can allow looking up and pausing Loop Subscriptions subscriptions while blocking cancel, expire, or deleting a line. A blocked action is never shown to Claude, ChatGPT, or any other client, so no prompt can reach it.

### What happens to a Loop Subscriptions connection when someone leaves?

Offboarding that person in Elaichi ends their access to Loop Subscriptions at once, across every client they used. A shared connection keeps working for everyone else on the team. If you want the connector gone entirely, disconnecting Loop Subscriptions once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client.

### Does the Loop Subscriptions MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Loop Subscriptions is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 75 Loop Subscriptions tools

Every tool below is callable through https://api.elaichi.ai/mcp once Loop Subscriptions is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Get single Loop Subscriptions subscription by ID** (Get). Get a single loopwork subscription by id, including billing, delivery, products, and status details. Returns: id, shopifyId, originOrderShopifyId, createdAt, updatedAt, orderNote, totalLineItemPrice, totalLineItemDiscountedPrice, deliveryPrice, currencyCode, status, cancellationReason, cancellationComment, completedOrdersCount, pausedAt, cancelledAt, expiredAt, attributes, isPrepaid,…
- **List all Loop Subscriptions subscriptions** (List). List all loopwork subscriptions. Returns each subscription with id, status, currencyCode, nextBillingDateEpoch, billingPolicy, deliveryPolicy, lines, and customer. Results are returned in descending order of id.
- **Create a Loop Subscriptions subscription** (Create). Create a loopwork subscription. Returns the created subscription record with fields such as id, shopifyId, status, currencyCode, billingPolicy, deliveryPolicy, shippingAddress, lines, and customer. Required: customerShopifyId, nextBillingDateEpoch, currencyCode, billingPolicy, deliveryPolicy, lines, and shippingAddress. The next billing date must be at least 24 hours in the future.
- **Loop Subscriptions subscriptions reschedule** (Action). Reschedule the next billing date of a loopwork subscription's upcoming order. Returns a success confirmation with no data payload. Required: subscription_id and newBillingDateEpoch.
- **Loop Subscriptions subscriptions pause** (Pause). Pause an active loopwork subscription, halting future billing and deliveries until it is resumed. Returns a success confirmation with no data payload. Required: subscription_id.
- **Loop Subscriptions subscriptions resume** (Resume). Resume a paused loopwork subscription by id, reactivating billing and deliveries based on the original schedule. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **Loop Subscriptions subscriptions cancel** (Cancel). Cancel an active or paused loopwork subscription by id, permanently stopping future billing and deliveries until reactivated. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **Loop Subscriptions subscriptions reactivate** (Reactivate). Reactivate a cancelled loopwork subscription by id, allowing billing and deliveries to resume based on the original subscription schedule. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **Loop Subscriptions subscriptions expire** (Action). Expire a loopwork subscription contract by id. Returns an empty response on success (no subscription data is returned). Required: subscription_id.
- **Loop Subscriptions subscriptions edit charge offset** (Action). Update the charge offset of an existing loopwork subscription contract, shifting the charge a number of days from the scheduled delivery date. Returns no response data on success. Required: subscription_id, chargeOffset.
- **Loop Subscriptions subscriptions update anchor** (Update). Update the billing anchor on an existing subscription contract in loopwork. Returns: success, message, data, code, pageInfo. Required: subscription_id, anchorType, anchorDay, anchorMonth. anchorType must match the subscription's current billing frequency (WEEKDAY, MONTHDAY, or YEARDAY, case-sensitive).
- **Loop Subscriptions subscriptions adjust prepaid credits** (Action). Adjust the prepaid credit balance of a subscription in loopwork by adding, deducting, or setting a final balance. Returns: success, message, data, code, pageInfo. Required: subscription_id, amountType, amount, reason.
- **Loop Subscriptions subscriptions change plan** (Action). Update the subscription plan (selling plan frequency) for a subscription contract in loopwork. Returns: success, message, data, code. Required: subscription_id, sellingPlanShopifyId, nextBillingDateEpoch.
- **Loop Subscriptions subscriptions update address** (Update). Update the shipping address on a subscription contract in loopwork. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, firstName, lastName, address1, city, countryCode.
- **Loop Subscriptions subscriptions update shipping method** (Update). Update the shipping method on a subscription contract in loopwork, including its delivery price, title, and code. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, deliveryPrice. Shipping method cannot be updated when 'Auto update shipping price' is enabled in Loop.
- **Loop Subscriptions subscriptions change payment method** (Action). Change the payment method on a Loop subscription to a different saved payment method. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id and paymentMethodId.
- **Loop Subscriptions subscriptions add backup payment method** (Add). Add a backup payment method to a Loop subscription for use when the primary payment method fails. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id and paymentMethodId.
- **Loop Subscriptions subscriptions remove backup payment method** (Delete). Remove the backup payment method mapped to a Loop subscription. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id.
- **Loop Subscriptions subscriptions bulk update** (Update). Set the contract note on a Loop subscription. Returns a success envelope with success, message, code, and a null data payload. Required: subscription_id and note.
- **Create a Loop Subscriptions subscription line** (Create). Add a new subscription line item to a loopwork subscription contract. Returns: success, message, data, code. Required: subscription_id, variantShopifyId.
- **Loop Subscriptions subscription lines create once** (Create). Add a one-time line item to a loopwork subscription contract that is added only to the next order without affecting future recurring orders. Returns: success, message, data, code, pageInfo. Required: subscription_id, variantShopifyId, quantity, discountType, discountValue.
- **Loop Subscriptions subscription lines swap** (Action). Swap an existing line in a loopwork subscription contract with a new variant. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id, variantShopifyId, quantity, pricingType.
- **Delete a Loop Subscriptions subscription line by ID** (Delete). Remove an existing line from a loopwork subscription contract. Returns: success, message, data, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, id.
- **Loop Subscriptions subscription lines bulk update** (Update). Bulk add, update, and remove line items in a loopwork subscription contract in a single request. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, linesToAdd, linesToUpdate, linesToRemove.
- **Loop Subscriptions subscription lines delete once** (Delete). Remove a line once from a loopwork subscription's upcoming order so it is skipped for a single order. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id. An optional orderId body field targets specific orders and is limited access.
- **Loop Subscriptions subscription lines edit** (Action). Update the quantity, pricing type, selling plan, or custom discount of a subscription line item in loopwork. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id, quantity.
- **Loop Subscriptions subscription lines edit schedule** (Action). Edit the schedule of a subscription line in loopwork, such as its next order id or order interval. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, line_id, nextOrderId; at least one body parameter must be passed.
- **Loop Subscriptions subscription orders list order schedule** (List). List the scheduled (upcoming) orders of a subscription contract in Loopwork. Returns: id, shopifyId, status, billingDate, fulfillmentStatus, financialStatus, note, noteAttributes, shopifyCreatedAt, shopifyProcessedAt, shopifyUpdatedAt, currencyCode, totalPriceUsd, totalDiscount, totalLineItemsPrice, totalShippingPrice, shopifyOrderNumber, lines, shippingAddress. Required: subscription_id.
- **Loop Subscriptions subscription orders list order history** (List). List the past orders of a subscription contract in Loopwork, including line items, totals, and shipping address. Returns: id, shopifyId, status, billingDate, fulfillmentStatus, financialStatus, note, noteAttributes, shopifyCreatedAt, shopifyProcessedAt, shopifyUpdatedAt, currencyCode, totalPriceUsd, totalDiscount, totalLineItemsPrice, totalShippingPrice, shopifyOrderNumber, lines,…
- **Loop Subscriptions subscription orders place** (Action). Place an order for a subscription contract in Loopwork, billing it ahead of its scheduled date. Returns no order payload on success. Gift subscriptions are not supported. Required: subscription_id, preponeFutureOrder.
- **Loop Subscriptions subscription orders skip next** (Action). Skip the next scheduled order of a subscription contract in Loopwork, leaving later scheduled orders unchanged. Returns no order payload on success. Required: subscription_id.
- **Loop Subscriptions subscription orders reschedule future** (Action). Reschedule a future order of a subscription contract in Loopwork to a new billing date. Returns no response body on success. Beta feature, not available on all stores. Required: subscription_id, order_id, newBillingDateEpoch.
- **Loop Subscriptions subscription orders update note** (Update). Update the order note on a specific order of a loopwork subscription. Requires subscription_id, order_id, and the note body field; the store must have the 'Override subscription notes' preference enabled under Loop > Settings > General. Returns an empty 200 response on success.
- **Loop Subscriptions subscription frequencies list available** (List). List the available billing and delivery frequencies for a Loopwork subscription contract. Returns each frequency option with its billingPolicy and deliveryPolicy, including interval and intervalCount. Required: subscription_id (accepts the Loop internal id, loop-{id}, or shopify-{id} format).
- **Loop Subscriptions subscription frequencies bulk update** (Update). Update the billing frequency of a Loopwork subscription contract. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, billingPolicy (interval, intervalCount), and discountType. If nextBillingDateEpoch is not passed, the next order date for the subscription remains the same.
- **Create a Loop Subscriptions subscription discount** (Create). Add a discount code or manual discount to a Loop subscription contract. Returns the applied discount's shopifyId and code. Required: subscription_id.
- **Update a Loop Subscriptions subscription discount by ID** (Update). Update the manual discount on a Loop subscription contract by id (the discount's Shopify ID). Returns: shopifyId, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, id, manualDiscount.
- **Delete a Loop Subscriptions subscription discount by ID** (Delete). Remove a discount code from a Loop subscription contract by id (the discount's Shopify ID). Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, id.
- **Loop Subscriptions subscription discounts delete all** (Delete). Remove all discount codes from a Loop subscription contract. Returns the removed discount codes in code. Required: subscription_id.
- **Create a Loop Subscriptions subscription checkout** (Create). Create a checkout for a loopwork subscription contract so customers can complete payment for prorated charges resulting from subscription changes. Returns success, message, code, and data containing the created checkout's id and status. Required: subscription_id, lines (each item requires variantShopifyId, quantity, price, type), and manualDiscounts.
- **Loop Subscriptions subscription checkouts reactivate** (Reactivate). Trigger the checkout and reactivate operation for a loopwork subscription contract, combining payment for prorated charges with reactivation. Returns success, message, code, and data containing the triggered checkout's id and status. Required: subscription_id and lines (each item requires variantShopifyId, quantity, storePrice, type); manualDiscounts and discounts are optional.
- **List all Loop Subscriptions subscription activity logs** (List). List activity logs for a specific subscription in loopwork. Returns each log's id, subscriptionId, key, entity, source, createdAt, and an event-specific data payload such as emailName or errorMessage. Required: subscription_id. Paginated, 50 logs per page by default.
- **Loop Subscriptions subscription attributes patch attributes** (Action). Patch custom attributes on an existing Loop subscription. Returns: success, message, data, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, customAttributes.
- **Loop Subscriptions subscription attributes bulk update** (Update). Update the custom attributes on an existing Loop subscription. Returns: success, message, data, code, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, customAttributes.
- **Loop Subscriptions subscription upgrades list profiles** (List). List all active upgrade profiles applicable to a subscription contract in loopwork. Returns: id, name, priority, shortDescription, bannerTexts, drawerTexts, existingProductInformation, newProductInformation, newProductsInformation, membershipUpgradeInformation. Required: subscription_id.
- **Loop Subscriptions subscription upgrades apply profile** (Action). Apply an upgrade profile to a subscription contract in loopwork. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, profileId. The subscription_id path parameter accepts the Loop internal id, loop-{id}, or shopify-{id}.
- **Loop Subscriptions subscription upgrades log action** (Action). Log a customer interaction with an upgrade profile in loopwork — banner views, detailed views, or dismissals — for upgrade offer performance tracking. Returns: success, message, data, code, pageInfo, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: subscription_id, profileId, viewType.
- **Get single Loop Subscriptions customer by ID** (Get). Get a Loopwork customer's full details by id (the customer's Shopify Customer ID). Returns: id, customerShopifyId, firstName, lastName, email, activeSubscriptions, pausedSubscriptions, cancelledSubscriptions, expiredSubscriptions, fullName, loyaltyPointsBalance, loyaltyCreditBalance, loyaltyCouponBalance, loyaltyCoupons, milestoneJourney, referralLink, paymentMethods, addresses. Required: id.
- **List all Loop Subscriptions customers** (List). List all Loopwork customers in descending id order, each with its subscription counts. Returns: id, firstName, lastName, email, shopifyId, phone, activeSubscriptionsCount, pausedSubscriptionsCount, cancelledSubscriptionsCount, expiredSubscriptionsCount, allSubscriptionsCount. Filterable by email, type, and update-time range.
- **Loop Subscriptions customers list subscriptions** (List). List all subscriptions associated with a specific Loopwork customer. Returns: id, shopifyId, totalLineItemPrice, totalLineItemDiscountedPrice, deliveryPrice, currencyCode, nextBillingDateEpoch, status, billingAttemptSuccessCount, lastPaymentStatus, paymentMethodId, createdAt, updatedAt, customer, cancellationReason, cancellationComment, isPrepaid, billingPolicy, deliveryPolicy, deliveryMethod,…
- ...and 25 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
