# Envoy MCP connector

Connect Envoy to Claude, ChatGPT, Cursor, or any MCP client and manage visitor invites, sign-in entries, work schedules, and locations from a chat, with every action running inside that person's own Envoy access.

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

## Facts

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

## What you can ask once Envoy is connected

- Which Envoy entries at the London location are still signed in?
- List all Envoy invites expected tomorrow by location.
- How many employees are registered at our Austin Envoy location?

## Connect Envoy in Elaichi

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

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

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

### Pre-register tomorrow's visitors before they arrive

Front desk. Paste a guest list from an email and have the invites created in Envoy for the right location and host, so badges are ready when people walk in.

### See who is in the office right now

Workplace. Ask which visitors have signed in today at a given location, who is hosting them, and which sign-in flow they came through.

### Set up a recurring visitor in one step

Executive assistants. An advisor or contractor who comes every Tuesday gets a single recurring invite in Envoy instead of a new invite each week, and it can be updated when the schedule shifts.

### Confirm whether a visitor was expected

Security. Look up an invite by name, check it against today's entries, and fix the details if the visitor's name or host was entered wrong.

### Plan which days people are on site

People. Create work schedules in Envoy for new hires and team days, remove them when plans change, and see who is scheduled at each location.

### Compare sign-in traffic across locations

Facilities. Pull entries by location and flow to see which offices are busiest on which days, then adjust front desk staffing to match.

## Frequently asked questions

### How do I connect Envoy to Claude?

Connect Envoy in Elaichi first, which means pasting an API key from your Envoy account; there is no OAuth app to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Envoy invites, entries, locations, and work schedules are available in Claude.

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

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

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

With Envoy connected, an agent can create, update, or cancel visitor invites, set up recurring invites for regular guests, look up who signed in at a location and when, record an entry, and create or remove work schedules for employees. It can also list your Envoy companies, locations, employees, and sign-in flows to answer questions like who is hosting the 2pm visitor. Because Envoy exposes many actions, short concrete asks such as invite Dana Lee to the Austin office tomorrow at 10 work better than long paragraphs.

### Does connecting Envoy give the AI access to every location and every visitor?

No. The agent works inside the Envoy access of the person who signed in, so it sees the locations, invites, and entries that person can already see in Envoy. Elaichi can narrow that further, for example to read-only or to specific actions, but it can never grant more than the person's Envoy account allows.

### Can my team share one Envoy connection?

Yes. One person connects Envoy in Elaichi and shares the connection with a team, and nobody else ever handles the Envoy API key. Each teammate still signs in to Elaichi as themselves, so every invite created or entry looked up in Envoy is logged under the person who did it.

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

Yes. Restrictions in Elaichi apply per action, so you can allow reading Envoy invites and entries while blocking deleting invites or removing work schedules. A blocked action is never advertised to Claude, ChatGPT, Cursor, or any other client, so no prompt can reach it.

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

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

## All 44 Envoy tools

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

- **List all Envoy companies** (List). List companies in Envoy. Returns id, name, locationIds, createdAt, updatedAt, and subscriptions for each company.
- **List all Envoy invites** (List). List all invites in Envoy. Returns id, createdAt, updatedAt, expectedArrivalAt, expectedDepartureAt, type, flowId, locationId, approvalStatus, notes, customFields, secretToken, sendEmailToInvitee, invitee, host, and photoUrl in the response.
- **Get single Envoy invite by ID** (Get). Get an invite by id in Envoy. Requires id. Returns fields including id, createdAt, updatedAt, expectedArrivalAt, type, approvalStatus, invitee, host, and locationId providing key details about the invite.
- **Create a Envoy invite** (Create). Create an invite in Envoy. Requires invite data including expectedArrivalAt, invitee, type, and locationId. Returns id, createdAt, updatedAt, expectedArrivalAt, type, invitee, and other key fields confirming creation details. Flow and employee must match the location or invite creation may fail.
- **Update a Envoy invite by ID** (Update). Update an invite in Envoy by id. The flowId and hostEmployeeId must match the locationId, or the update will fail. Returns id, createdAt, updatedAt, expectedArrivalAt, type, invitee, and related fields with updated invite information.
- **Delete a Envoy invite by ID** (Delete). Delete an invite by id in Envoy. Requires id. Returns an empty data object indicating successful deletion.
- **Envoy invites check** (Action). Check in an invite in Envoy using id. Converts an invite into an entry record. Returns id, fullName, email, isDelivery, agreementStatus, notes, signedOutAt, SignedInAt, flowId, locationId, customFields, and host details in the response.
- **Get single Envoy entry by ID** (Get). Get a specific entry in Envoy by id. Returns key details including id, fullName, email, signedInAt, signedOutAt, isDelivery, host, invite, and customFields.
- **List all Envoy entries** (List). List entries in Envoy. Returns id, fullName, email, signedInAt, signedOutAt, host, invite, and other related entry details.
- **Create a Envoy entry** (Create). Create an entry in Envoy by providing locationId, flowId, and fullName. Returns entry details including id, fullName, email, flowId, locationId, signedInAt, signedOutAt, host, and invite.
- **Update a Envoy entry by ID** (Update). Update an entry in Envoy using id. Returns entry details including id, fullName, email, isDelivery, agreementsStatus, host, invite, and timestamps such as signedInAt and signedOutAt.
- **List all Envoy locations** (List). List locations in Envoy for a specific company. Returns each location's id, name, address details, enabled status, companyId, locale, logoUrl, timezone, capacityLimit, createdAt, and updatedAt.
- **Get single Envoy location by ID** (Get). Get a location in Envoy using id. Returns id, name, address, enabled, companyId, locale, logoUrl, timezone, capacityLimit, createdAt, and updatedAt.
- **List all Envoy employees** (List). List employees in Envoy. Returns id, name, email, locationIds, createdAt, and updatedAt for each employee.
- **Get single Envoy employee by ID** (Get). Get an employee in Envoy by id. Returns id, name, email, locationIds, createdAt, and updatedAt fields in the response.
- **List all Envoy flows** (List). List flows in Envoy. Returns id, name, type, enabled, locationId, createdAt, and updatedAt for each flow. Results may be limited based on your company subscription plan.
- **Get single Envoy flow by ID** (Get). Get details for a specific flow in Envoy using id. Returns id, name, type, enabled status, locationId, createdAt, and updatedAt fields describing the flow.
- **Get single Envoy recurring invite by ID** (Get). Get details of a specific recurring invite in Envoy using id. Returns fields such as id, createdAt, updatedAt, startTime, recurrenceRule, invitee, and related inviteIds for the recurring schedule.
- **Create a Envoy recurring invite** (Create). Create a recurring invite in Envoy. Requires startTime, recurrenceRule, locationId, invitee, and flowId. Returns key fields including id, createdAt, updatedAt, startTime, recurrenceRule, invitee, and inviteIds representing generated child invites.
- **Update a Envoy recurring invite by ID** (Update). Update a recurring invite in Envoy using id. The flowId and hostEmployeeId must match the locationId or the update may fail. Returns id, createdAt, updatedAt, startTime, recurrenceRule, invitee, and related fields.
- **List all Envoy work schedules** (List). List WorkSchedules in Envoy. Returns id, expectedArrivalAt, expectedDepartureAt, arrivedAt, departedAt, flowId, locationId, approvalStatus, registrationURL, scheduledFor, createdAt, and updatedAt for each WorkSchedule.
- **Get single Envoy work schedule by ID** (Get). Get a specific work-schedule in Envoy using id. Returns fields including id, expectedArrivalAt, expectedDepartureAt, approvalStatus, locationId, and scheduledFor details such as name and email.
- **Create a Envoy work schedule** (Create). Create a new WorkSchedule for a given employee at a specific location in Envoy. Requires locationId, email, and expectedArrivalAt. Returns id, approvalStatus, registrationURL, scheduledFor, and timestamps in the response.
- **Delete a Envoy work schedule by ID** (Delete). Delete a specific work-schedule in Envoy. Requires id. Returns 204 No Content indicating successful deletion.
- **Envoy work schedules check in** (Action). Check in a WorkSchedule in Envoy using id. Signs the employee in for the day. Returns 204 No Content on success.
- **Envoy work schedules check out** (Action). Check out a WorkSchedule in Envoy using id. This signs out the employee associated with the work schedule for the day. Returns no content upon successful completion.
- **List all Envoy blocklist entries** (List). List blocklist-entries in Envoy. Returns id, emails, fullName, reason, locationId, photoUrl, createdAt, and updatedAt for each entry.
- **Get single Envoy blocklist entry by ID** (Get). Get a specific blocklist entry in Envoy by id. Returns id, emails, fullName, reason, locationId, photoUrl, createdAt, and updatedAt fields describing the blocked person.
- **Create a Envoy blocklist entry** (Create). Create a blocklist entry in Envoy. Requires emails, reason, and locationId. Returns id, emails, reason, locationId, photoUrl, createdAt, and updatedAt fields in the response.
- **Update a Envoy blocklist entry by ID** (Update). Update a blocklist entry in Envoy by id. Returns id, emails, fullName, reason, locationId, photoUrl, createdAt, and updatedAt fields in the response.
- **Delete a Envoy blocklist entry by ID** (Delete). Delete a blocklist entry in Envoy using id. Returns a void object in the response when successful.
- **List all Envoy reservations** (List). List reservations in Envoy limited to a maximum of 30 days' worth of data. Returns fields including id, startTime, endTime, status, checkedInAt, checkedOutAt, space details, and reservedBy information.
- **Get single Envoy reservation by ID** (Get). Get a reservation in Envoy by id. Returns reservation details including startTime, endTime, status, reservedBy, and space information (id, name, type, and availability).
- **Create a Envoy reservation** (Create). Create a reservation in Envoy for a specific user. Requires locationId, spaceType, userEmail, and startTime. Returns id, startTime, endTime, space details, status, and reservedBy in the response.
- **Envoy reservations check in** (Action). Check-in to a reservation in Envoy using id. This action starts the reservation and returns no content in the response.
- **Envoy reservations check out** (Action). End an active reservation in Envoy using id. Completes the reservation, frees the space for others, and removes the event from the user's calendar. The response indicates success with no content.
- **Envoy reservations cancel** (Cancel). Cancel a pending reservation in Envoy using id. This makes the reserved space available for others to book. Returns no response body upon successful cancellation.
- **List all Envoy spaces** (List). List spaces in Envoy such as desks or rooms. Returns id, name, type, createdAt, updatedAt, isAvailable, assignedTo, locationId, floorId, floorName, neighborhoodId, and neighborhoodName for each space.
- **Get single Envoy space by ID** (Get). Get a space in Envoy using id. Returns key fields such as id, name, type, createdAt, updatedAt, locationId, floorId, and floorName to describe the space’s identity, type, creation details, and location mapping.
- **List all Envoy desks** (List). List desks in Envoy. Returns each desk's id, name, createdAt, updatedAt, availability (isAvailable), assignedTo email, and location, floor, and neighborhood details.
- **Get single Envoy desk by ID** (Get). Get a desk in Envoy using id. Returns fields such as id, name, createdAt, updatedAt, isAvailable, assignedTo, locationId, floorId, floorName, neighborhoodId, neighborhoodName, xPos, and yPos.
- **Create a Envoy desk** (Create). Create a desk in Envoy using locationId, floorId, and name. Returns id, name, createdAt, updatedAt, isAvailable, assignedTo, locationId, floorId, floorName, neighborhoodId, neighborhoodName, xPos, and yPos.
- **Update a Envoy desk by ID** (Update). Update a desk in Envoy using id. Returns fields such as id, name, assignedTo, isAvailable, locationId, floorId, neighborhoodId, floorName, neighborhoodName, xPos, yPos, createdAt, and updatedAt.
- **Delete a Envoy desk by ID** (Delete). Delete a desk in Envoy using id. Requires id. The response returns a null object in data indicating deletion success.
