# ChargeDesk MCP connector

Connect ChargeDesk to Elaichi and Claude, ChatGPT, Cursor or any MCP client can look up customers, charges and subscriptions, issue refunds, resend receipts and change plans, each action under the signed-in person's access and logged.

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

## Facts

| | |
| --- | --- |
| Application | ChargeDesk |
| Category | Payment Gateway |
| AI tools | 35 |
| 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 ChargeDesk is connected

- Show me every charge for Acme Ltd this month
- Refund the duplicate charge on Jane Doe's account
- Which subscriptions are set to cancel in the next 30 days?

## Connect ChargeDesk in Elaichi

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

1. Open Connections, choose Add connection, and pick ChargeDesk.
2. Optionally set Share with, then press Connect.
3. Paste a ChargeDesk API key. One person generates a token in ChargeDesk 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 ChargeDesk tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## ChargeDesk 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.

## ChargeDesk 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.

## ChargeDesk 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 ChargeDesk 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 ChargeDesk 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 ChargeDesk through Elaichi

### Find a customer's charges during a chat

Support. Pull up the customer in ChargeDesk, see every charge on their account and answer a billing question before the conversation ends.

### Resend a receipt without switching tabs

Support. When a customer says they never got their receipt, email the charge straight from ChargeDesk while you are still talking to them.

### Refund a duplicate charge and move on

Finance. Refund, void or capture a gateway charge in ChargeDesk from the same place you reviewed it, with the action logged under your name.

### Move a subscriber to a new plan

Billing. Update the plan on a ChargeDesk subscription, or cancel it, when a customer upgrades, downgrades or churns.

### Set up a new customer and first charge

Sales. Create the customer in ChargeDesk, preview the charge so the amount is right, then create it once the deal closes.

### Review subscriptions due to lapse this month

Customer success. List ChargeDesk subscriptions, spot the ones ending soon and reach out before a renewal is missed.

## Elaichi vs Zapier MCP vs Composio for ChargeDesk

All three can connect ChargeDesk to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over ChargeDesk tools | Allow or restrict single ChargeDesk tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per ChargeDesk call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect ChargeDesk to Claude?

Connect ChargeDesk in Elaichi by pasting your ChargeDesk API key, then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. There is no OAuth application to register for ChargeDesk and no client ID or secret to generate. Once both steps are done, Claude can work with your ChargeDesk customers, charges and subscriptions.

### Does ChargeDesk work with ChatGPT and Cursor as well as Claude?

Yes. ChargeDesk is connected once in Elaichi and reached through the same endpoint, https://api.elaichi.ai/mcp, from Claude, ChatGPT, Cursor, any MCP client and the Elaichi Agent. You do not set ChargeDesk up again for each client.

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

An agent connected to ChargeDesk can find a customer, list their charges and subscriptions, email a receipt, preview and create a charge, refund, capture or void a gateway charge, change or cancel a subscription plan and list your products. Short, concrete asks such as "refund the duplicate charge on this account" work better than long instructions. Every action it takes in ChargeDesk is logged.

### Does connecting ChargeDesk give the AI everything in my account?

The connection can only see what the ChargeDesk API key it was connected with can see, and each person using it signs in to Elaichi as themselves. Elaichi can narrow what any person or team can do in ChargeDesk, down to specific actions, and it never widens access beyond the key.

### Can my team share one ChargeDesk connection?

Yes. One person connects ChargeDesk in Elaichi and shares it with a team, and nobody else ever handles the ChargeDesk API key. Each teammate still signs in as themselves, so the audit log names the person behind every refund, plan change or charge.

### Can I stop an agent from deleting or changing things in ChargeDesk?

Yes. Restrictions in Elaichi apply per action, so you can allow looking up ChargeDesk customers and charges while blocking refunds, deletions or plan changes. A restricted action is never advertised to the AI client at all, so no prompt can reach it.

### What happens to a ChargeDesk connection when someone leaves?

Offboarding a person in Elaichi ends their access to ChargeDesk at once, across Claude, ChatGPT, Cursor and every other client. A shared ChargeDesk connection keeps working for everyone else on the team. Disconnecting ChargeDesk once in Elaichi removes it from every client.

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

Yes. ChargeDesk 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.

### Is Elaichi an alternative to Zapier MCP for ChargeDesk?

Yes. Both let Claude, ChatGPT or Cursor use ChargeDesk. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every ChargeDesk call.

### How is Elaichi different from Composio for ChargeDesk?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to ChargeDesk: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 35 ChargeDesk tools

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

- **Create a ChargeDesk charge** (Create). Create a charge record in ChargeDesk. Creates a record of an external charge. NB: this is not a gateway method, so will not create a live charge on your gateway. Use the Create Charge gateway method to create a live charge. This only records an external charge in ChargeDesk; use gateway_charges.create to charge a card through the gateway. Returns the charge with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Required: amount, currency, customer.id. 
- **List all ChargeDesk charges** (List). List charges in ChargeDesk. Get all charges associated with the secret key provided in the request Returns charge records with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Paginate with count and offset (max 500 per page). Required: none. 
- **Get single ChargeDesk charge by ID** (Get). Get a charge in ChargeDesk. Retrieves a charge that has previously been created. Returns the charge with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Required: id. 
- **Update a ChargeDesk charge by ID** (Update). Update a charge in ChargeDesk. Updates an existing charge with new information. Returns the charge with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Required: id, customer.id. 
- **ChargeDesk charges email** (Action). Email a charge notification in ChargeDesk. Send an email notification (such as receipt) to the customer. The type of email sent will depend on the current status of the charge. Paid or Pending charges will send a receipt. Refunded charges will send a refund notification. Authorized charges will send an authorized notification. Voided charges will send a void email. Returns the charge. Required: charge_id. 
- **ChargeDesk charges preview** (Action). Preview charge totals in ChargeDesk. Preview the subtotal, any tax rates and the final total amount for a charge or product. Calculations are based on the country and tax ID provided. Useful for previews in checkout forms. Returns: subtotalAmount, taxRates, totalAmount and their formatted forms. Required: none. 
- **Delete a ChargeDesk charge by ID** (Delete). Delete a charge in ChargeDesk. Deletes a charge record. Returns an empty response on success. Required: id. 
- **Create a ChargeDesk gateway charge** (Create). Create a live charge, subscription or payment request through the connected payment gateway in ChargeDesk. Charge a customer's card on file with using=card, amount, currency and customer.id; add product.interval (and optional product.trial_period_days) to start a subscription instead; or pass contact (an email or phone number) in place of a customer to send a payment request the customer pays through a link. This is a gateway method: the object is created on the gateway as well as in ChargeDesk. Returns the created charge, plus subscription or pay_link when applicable, with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Required: using, amount, currency, and customer.id or contact. 
- **ChargeDesk gateway charges refund** (Action). Refund a charge in ChargeDesk. Process a refund for a charge. Will return a success or failure from the originating payment gateway. This is a gateway method: the change is applied on the originating payment gateway as well as in ChargeDesk, and may not be supported by every gateway. Returns the charge with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Required: charge_id. 
- **ChargeDesk gateway charges capture** (Action). Capture an authorized charge in ChargeDesk. Capture or void an authorized charge. Will return a success or failure from the originating payment gateway. This is a gateway method: the change is applied on the originating payment gateway as well as in ChargeDesk, and may not be supported by every gateway. Returns the charge with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Required: charge_id. 
- **ChargeDesk gateway charges void** (Action). Cancel a payment request in ChargeDesk. Cancel the payment request. The payment page will show that the charge no longer needs to be paid. This is a gateway method: the change is applied on the originating payment gateway as well as in ChargeDesk, and may not be supported by every gateway. Returns the charge with fields such as added_tax, amount, amount_formatted, amount_refunded, amount_refunded_formatted, amount_symbol, charge_id, company, currency, customer_country, customer_email, customer_id, customer_name, customer_phone, … Required: charge_id. 
- **ChargeDesk gateway subscriptions cancel** (Cancel). Cancel a subscription in ChargeDesk. Cancels any future recurring charges through the original payment gateway. May not be supported on all gateways. This is a gateway method: the change is applied on the originating payment gateway as well as in ChargeDesk, and may not be supported by every gateway. Returns the subscription with fields such as amount, amount_formatted, amount_symbol, billing_cycles_current, billing_cycles_total, canceled_at, charges, company, currency, current_period_end, current_period_start, customer_id, ended_at, first_seen, … Required: subscription_id. 
- **ChargeDesk gateway subscriptions update plans** (Update). Edit subscription plans in ChargeDesk. Edits a subscription's plans and recurring details. This is a gateway method: the change is applied on the originating payment gateway as well as in ChargeDesk, and may not be supported by every gateway. Returns the subscription with fields such as amount, amount_formatted, amount_symbol, billing_cycles_current, billing_cycles_total, canceled_at, charges, company, currency, current_period_end, current_period_start, customer_id, ended_at, first_seen, … Required: subscription_id. 
- **Create a ChargeDesk customer** (Create). Create a new customer in ChargeDesk. Returns the full customer record including customer_id, email, name, phone, and metadata. Required: customer_id. Pass duplicate='update' to update an existing customer with the same id instead of creating a new one.
- **List all ChargeDesk customers** (List). List all ChargeDesk customers. Returns customer records including customer_id, email, name, phone, and country. Supports optional filters email, customer_id, and country.
- **Get single ChargeDesk customer by ID** (Get). Get a single ChargeDesk customer by id. Returns the full customer record including customer_id, email, name, phone, metadata, and manage_url. Required: id.
- **Update a ChargeDesk customer by ID** (Update). Update the data stored for an existing ChargeDesk customer. Returns the updated customer record including customer_id, email, name, phone, and metadata. Required: id.
- **Delete a ChargeDesk customer by ID** (Delete). Delete a ChargeDesk customer by id. Deletes all associated data such as charges and tickets by default; pass delete_all=0 to keep it or delete_all=2 to keep anonymised charges and subscriptions. Returns an empty 204 response on success.
- **Create a ChargeDesk subscription** (Create). Create a subscription record in ChargeDesk. Creates a record of an external subscription. NB: this is not a gateway method, so will not create a live subscription on your gateway. Use the Create Subscription gateway method to create a live subscription. This only records an external subscription in ChargeDesk; use gateway_charges.create with product.interval to bill through the gateway. Returns the subscription with fields such as amount, amount_formatted, amount_symbol, billing_cycles_current, billing_cycles_total, canceled_at, charges, company, currency, current_period_end, current_period_start, customer_id, ended_at, first_seen, … Required: subscription_id. 
- **List all ChargeDesk subscriptions** (List). List subscriptions in ChargeDesk. Get all subscriptions associated with the secret key provided in the request Returns subscription records with fields such as amount, amount_formatted, amount_symbol, billing_cycles_current, billing_cycles_total, canceled_at, charges, company, currency, current_period_end, current_period_start, customer_id, ended_at, first_seen, … Paginate with count and offset (max 500 per page). Required: none. 
- **Get single ChargeDesk subscription by ID** (Get). Get a subscription in ChargeDesk. Retrieves a subscription that has previously been created. Returns the subscription with fields such as amount, amount_formatted, amount_symbol, billing_cycles_current, billing_cycles_total, canceled_at, charges, company, currency, current_period_end, current_period_start, customer_id, ended_at, first_seen, … Required: id. 
- **Update a ChargeDesk subscription by ID** (Update). Update a subscription in ChargeDesk. Update the data stored for an existing subscription. Returns the subscription with fields such as amount, amount_formatted, amount_symbol, billing_cycles_current, billing_cycles_total, canceled_at, charges, company, currency, current_period_end, current_period_start, customer_id, ended_at, first_seen, … Required: id. 
- **Create a ChargeDesk product** (Create). Create a product in ChargeDesk with a custom product_id, name, amount, currency, and optional billing interval. Returns the created product object including product_id, name, amount, currency, and status. Required: product_id. Set duplicate to 'update' to update an existing product instead of creating a duplicate.
- **List all ChargeDesk products** (List). List all products in ChargeDesk. Returns product objects including product_id, name, amount, currency, status, and url.
- **Get single ChargeDesk product by ID** (Get). Get a single ChargeDesk product by id. Returns the product object including product_id, name, amount, currency, status, and url. Required: id (product_id).
- **Update a ChargeDesk product by ID** (Update). Update an existing ChargeDesk product by id. Returns the updated product object including product_id, name, amount, currency, and status. Required: id (product_id). Pass name to update the product's name.
- **Create a ChargeDesk webhook** (Create). Create a webhook in ChargeDesk that delivers notifications to a URL endpoint. Returns: webhook_id. Required: url. Specify all to receive every notification type, or notifications to subscribe to specific ones such as charge_new or customer_new.
- **Delete a ChargeDesk webhook by ID** (Delete). Delete a ChargeDesk webhook by id. Returns an empty 204 response on success. Required: id.
- **Create a ChargeDesk agent** (Create). Create a ChargeDesk agent and send them an invite email; if an agent with that email already exists, their role is updated instead. Returns the agent including name, email, and role. Requires name, email, and role.
- **ChargeDesk agents bulk delete** (Delete). Delete an existing ChargeDesk agent identified by their email address. Returns an empty 204 response on success. Required: agent_email.
- **List all ChargeDesk charge items** (List). List the line items and taxes on a ChargeDesk charge. Returns: items, taxes. Required: charge_id.
- **List all ChargeDesk customer groups** (List). List ChargeDesk customers with their charges and subscriptions grouped together. Returns grouped records each containing a charge object plus any related subscription and pay_link.
- **List all ChargeDesk webhook notifications** (List). List all possible webhook notification types in ChargeDesk. Returns: object, webhook_id.g. charge_new, charge_refunded, subscription_canceled, agent_log_new). Takes no parameters.
- **List all ChargeDesk agent activity logs** (List). List ChargeDesk agent activity logs — the actions performed in your account, such as refunds and other agent-driven events. Returns log entries with: action_type, description, event, object_id, object_type, occurred, source, ip, company, and action_reason.
- **List all ChargeDesk subscription cancellations** (List). List ChargeDesk subscription cancellation log entries. Returns log records including charge_id, subscription_id, customer_id, amount, status, and occurred.
