# eDesk MCP connector

Connect eDesk to Claude, ChatGPT, Cursor, and any MCP client through Elaichi, so support tickets, customer contacts, sales orders, and order notes can be found, updated, and tagged by an AI agent working inside each person's own eDesk access.

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

## Facts

| | |
| --- | --- |
| Application | eDesk |
| Category | Helpdesk |
| AI tools | 39 |
| Authentication | Connects with an API key |
| Needs 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. 39 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once eDesk is connected

- Show open eDesk tickets tagged urgent this week.
- Which channels sent the most tickets yesterday?
- Tag ticket 4821 as refund and summarize the thread.

## Connect eDesk in Elaichi

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

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

## Connect eDesk to 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.

## Connect eDesk to 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.

## Connect eDesk to 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 eDesk 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 eDesk 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 eDesk through Elaichi

### Catch a ticket up after a customer reply

Support. Ask for the ticket by number, hear what the customer last said, and have the agent update its status and tags so the queue reflects where things actually stand.

### Tag and sort the morning queue

Support. Pull every open eDesk ticket that came in overnight, group them by channel or complaint, and apply the right tags so the team picks up the urgent ones first.

### Check the order behind a complaint

Operations. Look up the sales order tied to a ticket, confirm what was bought and when, and answer the customer without switching between eDesk and the storefront.

### Leave an order note everyone sees

Fulfillment. After a reship or a refund decision, add a note to the eDesk sales order so the next person who opens the ticket knows what has already been done.

### See what each agent is carrying

Team leads. List eDesk users and the tickets sitting with each of them, spot who is overloaded, and rebalance before response times slip.

### Log a ticket from an outside message

Marketplace. When a buyer reaches out through a channel eDesk does not catch on its own, create the ticket and contact in eDesk so nothing is answered off the record.

## Frequently asked questions

### How do I connect eDesk to Claude?

In Elaichi, choose eDesk from the connector list and paste in an API key from your eDesk account; there is no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude will ask you to sign in to Elaichi, and from then on your eDesk tickets, contacts, and sales orders are available in the conversation.

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

Yes. Once eDesk is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect eDesk once and every client you use picks it up.

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

An agent connected to eDesk can find and read tickets, contacts, channels, sales orders, and order notes, then create or update tickets, add tags, and leave notes on orders. In practice that means asking for the open tickets from one marketplace, checking the order behind a complaint, or tagging a batch of tickets after a product recall. eDesk has a lot of things an agent can do, so short concrete asks such as "tag ticket 4821 as refund" work better than long paragraphs.

### Does connecting eDesk give the AI access to every mailbox and channel?

No. Every request runs as the person who signed in, so an agent only sees the eDesk tickets, channels, and sales orders that person's own eDesk account can already see. Elaichi can narrow that further, for example to read only, but it can never widen it beyond what eDesk itself allows that person.

### Can my team share one eDesk connection?

Yes. One person connects eDesk in Elaichi and shares the connection with a team, and nobody else ever handles the eDesk API key. Each teammate still signs in to Elaichi as themselves, so the audit log records who updated a ticket or added an order note, not just that someone did.

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

Yes. Restrictions in Elaichi apply per action, so you can allow reading eDesk tickets and sales orders while blocking deletion, or block any change at all for a given team. A blocked action is never shown to Claude, ChatGPT, or Cursor in the first place, so no prompt, however worded, can reach it.

### What happens to an eDesk connection when someone leaves?

When you offboard someone in Elaichi, their access to eDesk through every AI client ends at once. If they had shared an eDesk connection with the team, it keeps working for everyone else. If you want eDesk gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 39 eDesk tools

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

- **List all eDesk users** (List). List users in eDesk. Returns id, name, email, active, username, and role for each user.
- **List all eDesk tags** (List). List tags in eDesk. Returns tag fields id, name, active, tag_group_id, color, and icon in the response.
- **Get single eDesk tag by ID** (Get). Get details of a specific tag in eDesk by id. Returns id, name, active, tag_group_id, color, and icon fields in the response.
- **Create a eDesk tag** (Create). Create a new tag in eDesk. Requires name and tag_group_id. Returns id, name, active, tag_group_id, color, and icon fields for the created tag in the response.
- **Update a eDesk tag by ID** (Update). Update a tag in eDesk using id. Returns fields: id (tag identifier), name (tag name), active (status), tag_group_id (group), color, and icon.
- **Delete a eDesk tag by ID** (Delete). Delete a tag in eDesk. Requires id. Returns ok (operation status) and message (confirmation details) fields in the response.
- **List all eDesk tickets** (List). List tickets in eDesk. Returns ticket fields: id, subject, channel_id, status, sales_order_id, external_order_id, created_at, owner_user_id, custom_fields, time_left_to_reply, tags_ids, contact_id, messages_ids, uri, and replies.
- **Get single eDesk ticket by ID** (Get). Get details of a ticket in eDesk. Requires id. Returns fields such as id, subject, status, created_at, owner_user_id, custom_fields, contact_id, and uri in the response.
- **Create a eDesk ticket** (Create). Create a new ticket in eDesk. Requires subject, channel_id, and status. Returns id, subject, channel_id, status, sales_order_id, created_at, owner_user_id, custom_fields, time_left_to_reply, tags_ids, contact_id, messages_ids, uri, and replies in the response.
- **Update a eDesk ticket by ID** (Update). Update a ticket in eDesk. Requires id. Returns id, subject, channel_id, status, sales_order_id, external_order_id, created_at, owner_user_id, custom_fields, time_left_to_reply, tags_ids, contact_id, messages_ids, uri, and replies in the response.
- **Delete a eDesk ticket by ID** (Delete). Delete a ticket in eDesk. Requires id. Returns ok (operation success) and message (confirmation details) in the response.
- **Update a eDesk ticket datum by ID** (Update). Update ticket data for a specific ticket in eDesk. Requires id. Returns fields such as id, subject, channel_id, status, sales_order_id, external_order_id, created_at, owner_user_id, custom_fields, time_left_to_reply, tags_ids, contact_id, messages_ids, uri, and replies in the response.
- **List all eDesk contacts** (List). List contacts in eDesk. Returns id, channel_id, client_id, full_name, phone_number, and email fields for each contact.
- **List all eDesk channels** (List). List channels in eDesk. Returns id, type, country, currency, and name fields for each channel.
- **List all eDesk me** (List). Get information about the identity of the authenticated caller in eDesk. Returns user fields including id, name, email, active status, username, and role.
- **List all eDesk sales orders** (List). List sales orders in eDesk. Returns id, channel_id, seller_order_id, status, order_items, shipping_amount, total_amount, ship_to, bill_to, contact_id, tracking_codes, created_at, ticket_id, order_notes_id, sales_order_delivery_dates, order_created_at, order_shipped_at, and delivery_type in the response.
- **Get single eDesk sales order by ID** (Get). Get details of a specific sales order in eDesk using id. Returns fields including id, channel_id, seller_order_id, status, order_items, shipping_amount, total_amount, ship_to, bill_to, contact_id, tracking_codes, created_at, and more.
- **Create a eDesk sales order** (Create). Create a new sales order in eDesk. Returns fields such as id, channel_id, seller_order_id, status, order_items, shipping_amount, total_amount, ship_to, bill_to, contact_id, tracking_codes, created_at, ticket_id, and other sales order details in the response.
- **Update a eDesk sales order by ID** (Update). Update a sales order in eDesk. Requires id. Returns id, channel_id, seller_order_id, status, order_items, shipping_amount, total_amount, ship_to, bill_to, contact_id, tracking_codes, created_at, ticket_id, order_notes_id, sales_order_delivery_dates, order_created_at, order_shipped_at, and delivery_type in the response.
- **Delete a eDesk sales order by ID** (Delete). Delete a sales order in eDesk. Requires id. Returns ok and message fields in the response indicating the operation status and a confirmation message.
- **List all eDesk order notes** (List). List order notes in eDesk. Returns id, sales_order_id, user (id, name, email, username, role), text, attachments (id, name, link, mime), created_at, and last_updated_at fields for each order note.
- **Get single eDesk order note by ID** (Get). Get details of a specific order note in eDesk using id. Returns id, sales_order_id, user details, text, attachments, created_at, and last_updated_at fields in the response.
- **Create a eDesk order note** (Create). Create an order note in eDesk. Requires sales_order_id and text. Returns id, sales_order_id, user, text, attachments, created_at, and last_updated_at fields for the created order note.
- **Update a eDesk order note by ID** (Update). Update a specific order note in eDesk. Requires id. Returns id, sales_order_id, user details, text, attachments, created_at, and last_updated_at in the response.
- **Delete a eDesk order note by ID** (Delete). Delete an order note in eDesk. Requires id. Returns ok (confirmation status) and message (operation details) in the response.
- **Get single eDesk message by ID** (Get). Get details of a specific message in eDesk using id. Returns id, external_id, subject, created_at, from_consumer_id, from_user, type, attachments, direction, body, errors, and ticket_id in the response.
- **Create a eDesk message** (Create). Create a new message in an existing ticket in eDesk. Requires ticket_id, body, and type. Returns id, external_id, subject, created_at, from_consumer_id, from_user, type, attachments, direction, body, errors, and ticket_id fields in the response.
- **Update a eDesk message by ID** (Update). Update a specific message in eDesk. Requires id. Returns id, external_id, subject, created_at, from_consumer_id, from_user, type, attachments, direction, body, errors, and ticket_id fields in the response.
- **Delete a eDesk message by ID** (Delete). Delete a message in eDesk. Requires id. Returns ok to indicate success and message with details in the response.
- **List all eDesk tags groups** (List). List tag groups in eDesk. Returns id, name, user_id, entity_type, type, and hide fields for each tag group.
- **Get single eDesk sales order tracking link by ID** (Get). Get tracking links for a specific sales order in eDesk. Requires id. Returns tracking_link and tracking_carrier_name for each tracking link in the response.
- **Create a eDesk sales order tracking link** (Create). Create tracking links for a specific sales order in eDesk. Requires id. Returns fields such as id, channel_id, status, tracking_codes, order_items, shipping_amount, total_amount, ship_to, and bill_to in the response.
- **Update a eDesk sales order tracking link by ID** (Update). Update sales order tracking links in eDesk. Requires id. Returns fields such as id, channel_id, seller_order_id, status, order_items, shipping_amount, total_amount, ship_to, bill_to, contact_id, tracking_codes (each with tracking_code, tracking_link, tracking_carrier_name), created_at, ticket_id, order_notes_id, sales_order_delivery_dates, order_created_at, order_shipped_at, delivery_type in the response.
- **Delete a eDesk sales order tracking link by ID** (Delete). Delete sales order tracking links in eDesk. Requires id (salesOrderId). Returns ok (operation success) and message (confirmation details) fields in the response.
- **List all eDesk templates** (List). List templates in eDesk. Returns an array of templates with fields including id, name, subject, body_text, channels, template_usage, template_type, query_type, order_status, delivery_date, active, order_fulfilment, created_at, message_subject, invoice_attached, only_use_if_no_replies_yet, ai_classification, and attachments.
- **Get single eDesk template by ID** (Get). Get details about a template in eDesk. Requires id. Returns fields such as id, name, subject, body_text, channels, template_usage, template_type, query_type, order_status, delivery_date, active, created_at, ai_classification, and attachments.
- **Create a eDesk template** (Create). Create a new template in eDesk. Returns id, name, subject, body_text, channels, template_usage, template_type, query_type, order_status, delivery_date, active, order_fulfilment, created_at, message_subject, invoice_attached, only_use_if_no_replies_yet, ai_classification, and attachments in the response.
- **Update a eDesk template by ID** (Update). Update a template in eDesk using id. Returns fields including id, name, subject, body_text, channels, template_usage, template_type, query_type, order_status, delivery_date, active, order_fulfilment, created_at, message_subject, invoice_attached, only_use_if_no_replies_yet, ai_classification, attachments.
- **Delete a eDesk template by ID** (Delete). Delete a template in eDesk. Requires id. Returns ok (operation success) and message (confirmation details) fields in the response.
