# Nylas MCP connector

The Nylas connector brings your Nylas applications, connectors, grants and calendar events into Elaichi, so Claude, ChatGPT, Cursor and the Elaichi Agent can list, check, update and revoke them inside each person's own access, with every call logged.

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

## Facts

| | |
| --- | --- |
| Application | Nylas |
| Category | Email |
| AI tools | 212 |
| 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 Nylas is connected

- Which Nylas grants stopped syncing in the last week?
- Add a redirect URI for staging to our Nylas application.
- List the connectors we have set up for Google and Microsoft.

## Connect Nylas in Elaichi

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

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

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

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

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

### Find out why a customer's mailbox stopped syncing

Support. Look up the customer's grant, see its status and the provider behind it, and tell the customer what to do next without opening the Nylas dashboard.

### Add a redirect URI before a release

Engineering. Ask for the redirect URIs on your Nylas application, add the new staging address, and confirm it took effect, all from the editor you already have open.

### Revoke a reported grant right away

Security. When someone reports a compromised account, find the grant and revoke its access in one step, then check the token information to confirm nothing is still live.

### See which providers your customers connect

Product. List the connectors set up for Google, Microsoft and other providers, and detect which provider a given email address belongs to before you plan a rollout.

### Clean up stale connectors in bulk

Operations. Pull the full list of Nylas connectors, pick the ones nobody uses, and update or remove them together instead of one at a time.

### Pull a customer's events before a call

Customer success. List the events attached to a customer's grant and have a summary of what is on their calendar ready before the check-in starts.

## Elaichi vs Zapier MCP vs Composio for Nylas

All three can connect Nylas 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 Nylas tools | Allow or restrict single Nylas 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 Nylas 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 Nylas to Claude?

In Elaichi, choose Nylas from the connector catalog and paste your Nylas API key; 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 https://api.elaichi.ai/mcp. Claude signs you in through Elaichi, and Nylas appears alongside everything else you have connected.

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

Yes. Nylas is connected once in Elaichi and reached through the same endpoint, https://api.elaichi.ai/mcp, from Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. There is nothing extra to set up per client.

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

With Nylas connected, an agent can list your Nylas applications, connectors and grants, look up a single grant to check its status, update or revoke it, add or remove redirect URIs, detect the provider behind an email address, and list the events attached to a grant. Short, concrete asks such as "revoke the grant for this address" work better than long paragraphs.

### Does connecting Nylas give the AI access to every application and grant?

No. Nylas access follows the API key the person connected and what that key is allowed to do in Nylas, so the agent sees the same applications, connectors and grants that person would see. Elaichi can narrow that access further for a team or a toolbox, and it can never widen it.

### Can my team share one Nylas connection?

Yes. One person connects Nylas with their API key and shares the connection with a team, and nobody else ever handles the key. Each teammate still signs in to Elaichi as themselves, so the audit log names the person behind every Nylas call.

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

Yes. Restrictions in Elaichi work per action, so you can allow listing Nylas grants and connectors while blocking deletes, revocations or bulk updates. A restricted action is never advertised to the AI client at all, so no prompt can reach it.

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

Offboarding a person in Elaichi ends their access to Nylas at once, across every client they used. A shared Nylas connection keeps working for everyone else on the team. If you disconnect Nylas in Elaichi, it disappears from Claude, ChatGPT, Cursor and every other client in one step.

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

Yes. Nylas 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 Nylas?

Yes. Both let Claude, ChatGPT or Cursor use Nylas. 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 Nylas call.

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

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 Nylas: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 212 Nylas tools

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

- **List all Nylas applications** (List). Get the Nylas application associated with your API key's client ID. Returns: request_id, data.
- **Nylas applications bulk update** (Update). Update the Nylas application tied to the client ID of your API key. Requires a request body. Returns: success, data. Nylas replaces all data in any nested object with the values included in the request; this endpoint will be removed in the future when application settings are available in the Nylas Dashboard.
- **List all Nylas applications redirect uris** (List). List the callback URIs registered on the Nylas application. Returns each callback URI object with its id, platform, and url.
- **Create a Nylas applications redirect uris** (Create). Add a callback URI to the Nylas application for hosted authentication redirects. Returns the created callback URI object with its id, platform, and url. Depending on the platform, its client_secret is required unless you use OAuth 2.0 with PKCE.
- **Get single Nylas applications redirect uris by ID** (Get). Get a single callback URI registered on the Nylas application by id. Returns the callback URI object with its id, platform, and url. Required: id.
- **Update a Nylas applications redirect uris by ID** (Update). Update a callback URI by id; Nylas replaces all data in nested objects with the request values. Returns the updated callback URI object with its id, platform, and url. Required: id.
- **Delete a Nylas applications redirect uris by ID** (Delete). Delete a callback URI from the Nylas application by id. Returns: request_id. Required: id.
- **List all Nylas connectors** (List). List the connectors in your Nylas application. Returns an array of connector records including id, name, provider, settings, and scope. Supported filters: limit, offset.
- **Create a Nylas connector** (Create). Create a connector in Nylas to store the provider app credentials your application needs to connect to external services. Returns: request_id, data, id, name, provider, settings, scope. The body must include provider; provider-specific variants also require settings.client_id and settings.client_secret (google, microsoft, zoom, yahoo), settings for ews, or only provider (icloud, imap,…
- **Nylas connectors bulk update** (Update). Update the connector for the specified provider in Nylas. Nylas replaces all data in nested objects with the values in your request rather than merging them. Returns: request_id, data, id, name, provider, settings, scope. Required: provider.
- **Nylas connectors bulk delete** (Delete). Delete the Nylas connector for the specified provider. All grants on the connector stop working right away and its credentials are deleted too. Returns an empty 204 response on success. Required: provider.
- **Create a Nylas providers detect** (Create). Detect the email provider for an address in Nylas. Returns request_id and data containing the autodetected provider. Required: email.
- **List all Nylas connect auths** (List). Start the Nylas Hosted OAuth authorization flow: validates the OAuth query parameters and redirects the user (302) to their provider's authorization page via the Location header; supports the authorization code flow with optional PKCE for client-side apps. Required: client_id, redirect_uri, response_type.
- **Create a Nylas connect token** (Create). Exchange a Nylas OAuth code, refresh token, or grant id for an access token. Returns: access_token, expires_in, id_token, email, refresh_token, scope, token_type, grant_id, provider. Each OAuth code is one-time-use; a failed…
- **Create a Nylas connect revoke** (Create). Revoke a Nylas OAuth access token, including all child tokens and the parent refresh token attached to it (the grant itself stays active, so the user can re-authenticate and the grant_id is unchanged). Returns a success acknowledgement as an unspecified JSON object. Fails if the token is invalid or already expired. Required: token.
- **List all Nylas connect tokeninfos** (List). Get info about a Nylas OAuth token by passing either an ID token or an access token. Returns: request_id, data.
- **Create a Nylas connect custom** (Create). Create a Nylas grant via the Bring Your Own Authentication flow — pass the provider and provider-specific settings (OAuth refresh token, IMAP/SMTP or iCloud credentials, EWS details, or an Agent Account email). Returns: request_id, data. Reuses an existing grant for a previously seen email.
- **List all Nylas grants** (List). List all grants in your Nylas application. Returns: account_id, blocked, created_at, email, grant_status, id, ip, name, provider, provider_user_id, scope, settings, email_aliases, state, updated_at, user_agent, workspace_id, credential_id. All query filters are optional.
- **Get single Nylas grant by ID** (Get). Get a single Nylas grant by id. Returns the grant object including its id, email, provider, grant_status, scope, and settings. A grant_status of 'invalid' means the grant has expired and needs to be re-authenticated. Required: id.
- **Update a Nylas grant by ID** (Update). Update a grant's provider settings or scope data in Nylas. Omitted top-level fields remain unchanged, and a non-empty settings object replaces (rather than deep merges) the stored settings. Returns: request_id, data. Required: id.
- **Delete a Nylas grant by ID** (Delete). Permanently delete a Nylas grant by id. The deleted grant cannot be re-authenticated (re-authenticating creates a new grant), and object IDs, sync state, and tracking links may change or break. Returns an empty 204 response on success. Required: id.
- **Nylas grants list events** (List). List events on a Nylas user's calendars for a given grant. Returns event objects including id, title, calendar_id, event_type, when (the event's start/end times or dates), and participants. Required: grant_id, calendar_id.
- **Nylas grants attach event** (Action). Create an event on a user's calendar in Nylas for the specified grant. Returns request_id and the created event object (data) including id, calendar_id, title, when, participants, and conferencing. Microsoft and iCloud ignore notify_participants and always email participants about event changes. Required: grant_id, calendar_id, when.
- **Nylas grants get me** (Get). Get the current grant in Nylas — the connected account tied to the access token used for the request. Returns request_id and the grant object (data) with id, grant_status, email, provider, and created_at. Requires a user access token; the me shorthand cannot be resolved with an API key alone.
- **List all Nylas workspaces** (List). List all workspaces in your Nylas application; the application queried is determined by the API key used. Returns Workspace objects with: id, name.
- **Create a Nylas workspace** (Create). Create a workspace in your Nylas application. Returns the created Workspace object including its id, name, domain, auto_group, policy_id, and rule_ids. Requires name. Omit domain to create a workspace that holds only the grants you assign to it. Required: name.
- **Get single Nylas workspace by ID** (Get). Get a single Nylas workspace by id. Returns the Workspace object including its id, name, domain, auto_group, policy_id, and rule_ids. Required: id.
- **Update a Nylas workspace by ID** (Update). Update a Nylas workspace by id. Returns the updated Workspace object including its id, name, domain, auto_group, policy_id, and rule_ids. The workspace's domain can't be changed after creation. Required: id.
- **Delete a Nylas workspace by ID** (Delete). Delete a Nylas workspace by id. The workspace's grants keep working and move to the application's default workspace, or become unassigned if there isn't one. You can't delete the application's default workspace. Returns an empty 204 response on success. Required: id.
- **Create a Nylas workspaces auto group** (Create). Start a background auto-grouping job in Nylas that sorts grants not yet in a workspace into workspaces by email domain, creating missing workspaces automatically. Returns: request_id, data. All body parameters are optional; with no filters Nylas considers all unassigned grants.
- **Create a Nylas workspace manual assign** (Create). Assign or remove grants from a Nylas workspace via manual assignment. Returns: request_id, data. At least one grant ID must be given in assign_grants or remove_grants (up to 500 per list); assigning a grant already in another workspace moves it. Required: workspace_id.
- **List all Nylas application API keys** (List). List all API keys associated with a Nylas application. Returns request_id and a data array of API keys, each with id, name, api_key, permissions, status, and created_at/expires_at timestamps. Required: application_id.
- **Create a Nylas application API key** (Create). Create an API key for a Nylas application. Returns request_id and a data object with the new key's id, api_key, name, permissions, status, and created_at/expires_at timestamps. Required: application_id.
- **Delete a Nylas application API key by ID** (Delete). Delete an API key from a Nylas application. Returns request_id on success. Required: id, application_id.
- **Get single Nylas application API key by ID** (Get). Get a single API key for a Nylas application by id. Returns request_id and a data object with the key's id, name, api_key, permissions, status, and created_at/expires_at timestamps. Required: id, application_id.
- **List all Nylas webhooks** (List). List all webhook destinations configured for the Nylas application. Returns each destination with id, webhook_url, trigger_types, status, description, and notification_email_addresses.
- **Create a Nylas webhook** (Create). Create a Nylas webhook destination that delivers notifications for the given trigger types to an HTTPS endpoint; each destination must have its own unique URL. Returns the new destination including id, webhook_url, trigger_types, status, description, and webhook_secret. Required: trigger_types, webhook_url.
- **Get single Nylas webhook by ID** (Get). Get a single Nylas webhook destination by id. Returns the destination including id, webhook_url, trigger_types, status, description, webhook_secret, and notification_email_addresses. Required: id.
- **Update a Nylas webhook by ID** (Update). Update a Nylas webhook destination by id, specifying only the fields that need to change (empty fields do not overwrite existing values). Returns the updated destination including id, description, status, and notification_email_addresses. Required: id.
- **Delete a Nylas webhook by ID** (Delete). Delete a Nylas webhook destination record by id. Returns a success message on success. Required: id.
- **Create a Nylas webhooks rotate secret** (Create). Rotate the webhook secret for a Nylas webhook destination. Returns the updated Destination including its id, webhook_url, trigger_types, status, and the new webhook_secret; the previous secret immediately stops being used. Required: rotate_secret_id.
- **Get single Nylas webhooks mock payload by ID** (Get). Get a mock Nylas webhook notification payload for the trigger type you specify, to preview what your webhook URL will receive. Returns: request_id, data (mock notification whose fields are specific to the requested trigger_type). Required: trigger_type.
- **Create a Nylas webhooks send test event** (Create). Send a test webhook event in Nylas to check that a webhook destination is configured correctly; Nylas POSTs a mock notification to the specified webhook_url and waits for a success acknowledgement. Returns the mock notification payload for the requested trigger_type, with fields that vary by trigger type. The test signature is computed with the secret…. Required: trigger_type, webhook_url.
- **List all Nylas channels pubsubs** (List). List the Pub/Sub notification channels (destinations) configured for the Nylas application. Returns destination records including id, description, topic, trigger_types, notification_email_addresses, status, and compressed_delivery.
- **Create a Nylas channels pubsub** (Create). Create a Pub/Sub channel (destination) in the Nylas application that delivers notifications to a Google Pub/Sub topic. Returns the new destination including id, description, topic, trigger_types, status, and compressed_delivery. Requires a destination definition body including trigger_types. Required: trigger_types.
- **Get single Nylas channels pubsub by ID** (Get). Get a specific Pub/Sub channel (destination) from the Nylas application by id. Returns the destination including id, description, topic, trigger_types, notification_email_addresses, status, and compressed_delivery. Required: id.
- **Update a Nylas channels pubsub by ID** (Update). Update a Pub/Sub channel in the Nylas application by id; Nylas replaces all nested data with the request contents. Use status (active or pause) to restart a channel that was paused. Returns the updated destination including id, description, topic, trigger_types, status, and compressed_delivery. Required: id.
- **Delete a Nylas channels pubsub by ID** (Delete). Delete a specific Pub/Sub channel from the Nylas application by id. Returns a success message in data along with a request_id. Required: id.
- **List all Nylas channels sns** (List). List all Amazon SNS notification channels configured for the Nylas application. Returns channels with their id, trigger_types, topic, role_arn, and status. Truto handles pagination.
- **Create a Nylas channels sn** (Create). Create a new Amazon SNS notification channel in the Nylas application. Returns the created channel with its id, trigger_types, topic, role_arn, and status. The topic must be a valid Amazon SNS topic ARN starting with `arn:aws:sns:`. Required: trigger_types, topic, role_arn.
- ...and 162 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
