# How Elaichi connects to AI clients

> Source: https://elaichi.ai/docs/guides/mcp-servers/how-it-works/

Claude, ChatGPT and Cursor are each set up differently, but what happens behind them is the same. Read this once and the per-client guides are just the setup steps.

**Where to find the endpoint:** in the Elaichi web app, open **Connect your AI client** and copy the endpoint shown there.

## You connect one thing, not many

This is the part worth getting right before you start.

Your AI client makes a **single** connection — to Elaichi. Your apps are connected **inside Elaichi**, not inside the client:

```
Your AI client  ──one connection──►  Elaichi  ──►  Slack
                                              ──►  Jira
                                              ──►  HubSpot
```

You never add Slack, Jira or HubSpot to the client yourself. You connect them in Elaichi, and they arrive through the endpoint you add.

That indirection is the point. Because every call travels through Elaichi:

- **Access follows your role.** Toolboxes, teams and per-user overrides all still apply.
- **Restrictions are enforced.** A tool your organization has blocked is never offered to the client, and never runs.
- **Everything is audited.** Tool calls land in the audit log like any other action.
- **Revoking is one action.** Disconnect an app in Elaichi and it is gone from the client too — no hunting through client settings.

Connect apps directly in the client instead and you lose all four.

**One endpoint, full stop** — not one per toolbox, one per app, or one per organization. The address is the same string for everyone. Which organization a client reaches, and whose access it runs as, come from the OAuth grant you approve when you connect it, not from the URL.

## Approve what the client can do

Signing in brings up a consent screen. It carries more weight here than in most OAuth flows, so it is worth reading rather than clicking through.

Inside Elaichi, a write is approved in the moment — the assistant asks, you confirm. Over MCP there is no trusted prompt to ask through; the model on the other end could claim its own approval. So **the approval moves forward to this screen, and the scopes you grant are the standing approval.**

| Scope | What it allows |
| --- | --- |
| **Read** | Everything you can already see in Elaichi: people, teams, tools, connections, settings, and admin records like the audit log. Never secret values. |
| **Create and change** | Create and change teams, roles, tool sets, connections and organization settings, invite new members, and share things with other people. |
| **Delete** | Permanently delete teams, roles, tool sets and connections, remove people, and take away access. This reaches inside your connected apps too, and cannot be undone. |
| **Run tools** | Run tools from the toolboxes you choose on this screen. Deleting through one also needs the delete permission. |

Only **Read** is granted by default. For most use you want **Read** and **Run tools** — enough to use your connected apps without letting the model reshape your organization. You can re-consent later to widen it.

Each row has a **Details** link with the full list behind it. Open **Read** at least once: it covers more than it sounds like, including SSO connections, directory group mappings, org domains, pending invitations and API token metadata.

## What the client sees

**Your access, not the organization's.** The endpoint is scoped to your account — the same boundary as the web app. You reach the toolboxes and connections you own or that were shared with you, and nothing else. Two people connecting to the same endpoint do not see the same tools.

**Connected tools are found by searching, not by browsing.** They are never listed one by one, however few you have. In their place Elaichi advertises two tools: `search_tools`, which finds a connected tool by name, and `execute_tool`, which runs it. Elaichi's own catalog operations are still listed individually. A short tool list makes a model choose better and faster, and this one stays the same size however many apps you connect.

So the client searches for a tool instead of picking one off a list. `search_tools` ranks **lexically, not semantically**, so concrete tool-ish words ("create deal", "list issues") work where a full sentence ranks badly.

## Set up your client

- [Claude](/guides/mcp-servers/claude) — add a custom connector
- [ChatGPT](/guides/mcp-servers/chatgpt) — developer mode, then create an app
- [Cursor](/guides/mcp-servers/cursor) — an entry in `mcp.json`

## Related

- [Connecting an account](/guides/connections/connecting-an-account)
- [How toolboxes work](/guides/toolboxes/overview)
- [Set restrictions](/guides/governance/set-restrictions)
- [Read the audit log](/guides/governance/read-the-audit-log)
