# Ada MCP connector

The Ada connector links your Ada helpdesk to Claude, ChatGPT, Cursor, and any MCP client, so your team can look up end users, tidy knowledge articles and sources, review audit events, and start email conversations by asking in plain language.

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

## Facts

| | |
| --- | --- |
| Application | Ada |
| Category | Helpdesk |
| AI tools | 47 |
| 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. 47 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Ada is connected

- List Ada knowledge sources with no articles updated recently.
- Which Ada knowledge tags cover the most articles?
- Show Ada end users created in the last seven days.

## Connect Ada in Elaichi

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

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

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

### Look up a customer before replying

Support. Ask for an end user's record in Ada by their ID and get their details back in the chat, then correct a name or contact detail without opening another tab.

### Prune outdated knowledge articles

Knowledge. List the knowledge articles Ada is answering from, spot the ones that are stale, and remove them one at a time or in a batch so the assistant stops quoting old policy.

### Add a new knowledge source

Knowledge. Point Ada at a new help center or document set by creating a knowledge source, or update the details of an existing one when the content moves.

### Clean up knowledge tags in bulk

Knowledge. Review the tags applied across Ada knowledge articles, retire the ones nobody uses, and apply the right tags to a batch of articles in one go.

### Open a new channel for customers

Support operations. See which channels Ada is already serving and create a new one when a team launches on a fresh surface, so conversations start landing in the right place.

### Review what changed in Ada

Security and compliance. Pull the Ada audit log events for a given period to see who changed settings, articles, or connected platforms, and summarize them for a review.

## Frequently asked questions

### How do I connect Ada to Claude?

First connect Ada in Elaichi, which asks you for your Ada API key and nothing else. There is no OAuth application to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste in https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Ada is available in your next conversation.

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

Yes. Once Ada 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 Ada once and every client you use picks it up.

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

With Ada connected, an agent can look up or update an end user, list and remove knowledge articles, create or change knowledge sources, manage knowledge tags in bulk, list and create channels, start an email conversation, and read audit log events. Ada exposes a large set of actions, so the agent searches for the right one as you ask. Short, concrete asks like "list Ada knowledge sources" work better than long paragraphs.

### Does connecting Ada give the AI access to everything in my Ada account?

No. Every call to Ada runs under the API key that the person connected, so the agent can only reach what that key is allowed to see and change in Ada. Elaichi can narrow that further, for example to read-only knowledge work, and it can never grant more than the Ada key itself allows.

### Can my team share one Ada connection?

Yes. One person connects Ada in Elaichi and shares the connection with a team, and nobody else ever sees or handles the Ada API key. Each teammate still signs in to Elaichi as themselves, so every Ada action in the audit log is tied to the person who asked for it.

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

Yes. In Elaichi you can restrict individual Ada actions, such as deleting knowledge articles or updating end users, for a team or for everyone. A restricted action is never shown to Claude, ChatGPT, Cursor, or any other client, so no prompt, however worded, can reach it.

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

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

## All 47 Ada tools

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

- **List all Ada audit log events** (List). List ada audit log events, newest first, within a time window. Returns: id, timestamp, entity_type, entity_id, activity, actor_email, actor_name, actor_user_id. The time window (end_date - start_date) may not exceed 30 days; no field filters are exposed. Required: start_date.
- **Get single Ada end user by ID** (Get). Get a specific Ada end user by id. Returns: end_user_id, external_id, profile, created_at, updated_at. Required: id.
- **Update a Ada end user by ID** (Update). Update a specific Ada end user by id. Returns: end_user_id, external_id, profile, created_at, updated_at. A 409 is returned if the requested external_id is already assigned to a different end user. Required: id, profile.
- **List all Ada end users** (List). List Ada end users with cursor pagination, or look up a single end user by external_id. Returns each record with: end_user_id, external_id, profile, created_at, updated_at. external_id is mutually exclusive with pagination and available for custom channel integrations only (V1).
- **Create a Ada end user** (Create). Create a new Ada end user with optional profile data and sensitive metadata. Returns: end_user_id, external_id, profile, created_at, updated_at. Supports idempotent upsert via external_id. End users not associated with a conversation within 24 hours are automatically deleted.
- **List all Ada knowledge sources** (List). List knowledge sources in Ada. Returns each source with id, name, and status.
- **Create a Ada knowledge source** (Create). Create a new knowledge source in Ada. Returns the created source with id, name, and status. Required: id, name.
- **Update a Ada knowledge source by ID** (Update). Update a knowledge source in Ada by id. Returns the updated source with id, name, and status. Required: id.
- **Delete a Ada knowledge source by ID** (Delete). Delete a knowledge source and its related articles in Ada by id. Deletion is asynchronous: a 204 response means the request was accepted and processed in the background. Returns an empty 204 response on success. Required: id.
- **List all Ada knowledge articles** (List). List knowledge articles in Ada with optional filters by id, enabled status, language, knowledge source, or tags. Returns: id, name, content, url, knowledge_source_id, language, tag_ids, created. Max 100 per page.
- **Ada knowledge articles bulk delete** (Delete). Delete multiple Ada knowledge articles matching the provided filters. Deletion is asynchronous; re-query the list endpoint to confirm no matching articles remain. Returns an empty 204 response on success.
- **Get single Ada knowledge article by ID** (Get). Get a single knowledge article in Ada by id. Returns: id, name, content, url, knowledge_source_id, language, tag_ids, created. Required: id.
- **Delete a Ada knowledge article by ID** (Delete). Delete a single knowledge article in Ada by id. Returns an empty 204 response on success. Required: id.
- **List all Ada knowledge tags** (List). List all article tags in Ada. Returns: id, name. These tags can be assigned to knowledge articles for categorization and filtering.
- **Delete a Ada knowledge tag by ID** (Delete). Delete an article tag in Ada by id. Returns an empty 204 response on success. Required: id.
- **Ada knowledges bulk articles** (Action). Upsert multiple articles. Returns: id, success, created.
- **Ada knowledges bulk tags** (Action). Bulk upsert article tags in Ada, creating or updating each tag matched by its unique `id`. Returns an array of upsert results including id.
- **List all Ada platform integrations** (List). List platform integrations owned by your ada account. Returns each integration with id, status, name, description, author, contact, scopes, tags, configuration_fields, created, and updated.
- **Create a Ada platform integration** (Create). Create a new platform integration in ada. Integrations are created in development status by default. Returns the created integration including id, status, name, client_secret, created, and updated. Required: identifier_field_path, name, description, author, contact, uninstallation_url, oauth_callback_url, tags, scopes, configuration_fields.
- **Update a Ada platform integration by ID** (Update). Update a platform integration in ada by id. Only integrations in development status may be updated; integrations submitted for publication cannot be updated. Returns the updated integration including id, status, name, created, and updated. Required: id.
- **Update a Ada platform integration installation by ID** (Update). Update the status of a platform integration installation in ada. An installation can be marked complete or incomplete. Returns: id, platform_integration_id, created, updated, configuration, status. Required: id, platform_integration_id.
- **Create a Ada conversations email** (Create). Create a new email conversation in Ada's native Email channel, providing context for an end user's inquiry. Returns: conversation_id. The text field is limited to 10 KB and metadata to 4 KB. This endpoint is exclusive to the native Email channel and cannot be used for custom channels. Required: name, subject, reply_to.
- **List all Ada channels** (List). List channels in Ada filtered by type and optionally by modality. Returns: name, description, modality, id, type, created_at, metadata. Max 100 channels per page. Required: type.
- **Create a Ada channel** (Create). Create a new channel in Ada. Returns: name, description, modality, id, type, metadata, created_at. A maximum of 100 channels can be created per account per day; maximum request size is 10MB. Required: name, description, modality.
- **Create a Ada conversation** (Create). Create a new conversation in Ada. If end_user_id is not provided, a new end user is created automatically. Returns: id, channel_id, end_user_id, status, created_at, updated_at, metadata. Max request size 10MB, metadata limited to 4KB. Required: channel_id.
- **Update a Ada conversation by ID** (Update). Update a conversation's metadata by id in Ada. Metadata keys are added additively; keys with null values are removed. Returns: id, channel_id, end_user_id, status, created_at, updated_at, metadata. Required: id, metadata.
- **Get single Ada conversation by ID** (Get). Get a single Ada conversation by id. Returns: id, channel_id, end_user_id, status, created_at, updated_at, metadata, method. Required: id.
- **Create a Ada conversation end** (Create). End a conversation in ada by conversation_id. Returns: message. Required: conversation_id.
- **Create a Ada conversation end handoff** (Create). End a handoff for an ada conversation, returning control to the AI Agent without ending the conversation. Also triggers CSAT for the human agent, leftover blocks processing, and agent presence dismissal messages. Returns: message. Required: conversation_id.
- **List all Ada webhooks** (List). List all webhook subscriptions configured for an ada AI Agent. Returns: id, url, description, event_filters, enabled, created_at, updated_at. Max 100 per page.
- **Create a Ada webhook** (Create). Create a new webhook subscription in ada. If this is the first webhook for the AI Agent, the webhook infrastructure is automatically provisioned. Returns: id, url, description, event_filters, enabled, created_at, updated_at. Required: url.
- **Get single Ada webhook by ID** (Get). Get details of a specific ada webhook subscription by id. Returns: id, url, description, event_filters, enabled, created_at, updated_at. Required: id.
- **Update a Ada webhook by ID** (Update). Update an ada webhook subscription by id. Only the fields provided in the request body will be updated. Returns: id, url, description, event_filters, enabled, created_at, updated_at. Required: id.
- **Delete a Ada webhook by ID** (Delete). Delete an ada webhook subscription by id. Returns an empty 204 response on success. Required: id.
- **Get single Ada webhook secret by ID** (Get). Get the signing secret for an ada webhook, used to verify that incoming webhook payloads are authentic. Returns: key, id, url, event_filters, enabled, created_at, updated_at. Required: webhook_id.
- **Create a Ada secret rotate** (Create). Rotate the signing secret for an Ada webhook, optionally providing a custom key. Returns an empty 200 response on success — the new secret is not returned; use the get secret endpoint to retrieve it. Required: webhook_id.
- **List all Ada webhooks event types** (List). List all available webhook event types that webhooks can subscribe to in Ada. Each event type entry includes its identifier and a human-readable description of when it fires. Returns: name, description.
- **List all Ada personas** (List). Get the current persona configuration in ada. Returns: personality, emoji_usage, allowed_emojis, default_timezone, message_length, ask_for_more_help, no_customer_pi, no_competitors.
- **Ada personas bulk update** (Update). Partially update the persona configuration in ada. Only fields provided in the request body are changed; omitted fields retain their existing values. Returns the updated persona including personality, emoji_usage, allowed_emojis, default_timezone, message_length, ask_for_more_help, no_customer_pi, no_competitors, enable_acknowledgment_messages, company_description, community_guidelines_url, and…
- **List all Ada variables** (List). List Variables accessible to the AI Agent in Ada (the Variables shown on the dashboard). Reserved and internal Variables are not included. The VariableSummary schema carries only the Variable's id and name. Returns: id, name.
- **Get single Ada variable by ID** (Get). Get a single Variable in Ada by id. An unknown, malformed, or reserved id returns 404. The VariableSummary schema carries only the Variable's id and name. Returns: id, name. Required: id.
- **List all Ada export conversations** (List). List exported Ada conversations from the Data Export API filtered by creation or update date. Returns: id, created_at, updated_at, name. The created_since and updated_since filters are mutually exclusive; without an explicit to-date, only records within 7 days of the since timestamp are returned.
- **List all Ada export messages** (List). List exported messages in Ada filtered by creation date. Returns: id, conversation_id, author, content, created_at, updated_at. If created_to is omitted, only records within 7 days of created_since are returned; timestamps must be ISO 8601 UTC ending with 'Z'. Required: created_since.
- **Create a Ada data subject request** (Create). Delete all data associated with a chatter's email address in Ada. Returns: email. If the chatter participates in a multi-recipient email thread, the entire transcript is deleted for all participants.
- **List all Ada conversation messages** (List). List messages (paginated) for an Ada conversation by conversation_id. Returns: id, conversation_id, author, content, created_at, updated_at, name. Max 100 messages per page. Required: conversation_id.
- **Create a Ada conversation message** (Create). Create a new message in an Ada conversation. Returns: id, conversation_id, author, content, created_at, updated_at, data. The maximum request size is 10MB. Required: conversation_id, author, content.
- **Create a Ada conversation attachment** (Create). Create a file attachment in an Ada conversation. Returns: url, mime_type, filename, data. Max file size 50MB; attachments can only be uploaded when the conversation is in a handoff state. Required: conversation_id.
