# Vercel MCP connector

The Vercel connector brings your Vercel teams, projects, members and environment variables into Claude, ChatGPT, Cursor and any MCP client, so each person can ask about and manage them inside their own Vercel access.

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

## Facts

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

## What you can ask once Vercel is connected

- List Vercel projects created this week and their owners.
- Which Vercel team members have access to the checkout project?
- Summarize deployment activity across all Vercel projects this month.

## Connect Vercel in Elaichi

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

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

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

### Set up a new project with its variables

Engineering. Create a Vercel project for a new site or service and add the environment variables it needs in one conversation, instead of clicking through the settings pages one field at a time.

### Pause a project that should not be live

Platform. Pause a Vercel project that is no longer needed, is running up usage, or is misbehaving, then confirm which projects on the team are still active.

### Get a new hire onto the right projects

IT. Add a new teammate as a Vercel member and put them on the projects they will work on, using the role you name, without opening each project separately.

### Review who can reach which project

Security. List every Vercel member and every project member across your teams to spot people with more access than their job needs, and remove access that should not be there.

### Check the setup behind the company website

Marketing. Ask which Vercel project runs the marketing site, who is on it, and which environment variables are configured, without waiting for an engineer to look it up.

### Remove a leaver from every project

Operations. When someone leaves, take them off each Vercel project they belonged to and remove them from the team, then confirm nothing was missed.

## Frequently asked questions

### How do I connect Vercel to Claude?

Connecting Vercel to Claude takes two steps. First, in Elaichi, choose Vercel and paste an API key created in your Vercel account settings; there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in to Elaichi as yourself and Vercel is ready to use.

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

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

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

With Vercel connected, an agent can list your Vercel teams and projects, look up a single project, create or update a project, and pause one. It can add and remove team members and project members, and view or add environment variables on a project. Vercel has a lot of actions, so short concrete asks, like "pause the staging project" or "who is on the website project", get better results than long paragraphs.

### Does connecting Vercel give the AI access to every team and project in my account?

No. A Vercel connection carries exactly the access of the account whose API key was used, so the AI sees the teams, projects and environment variables that account can see in Vercel and nothing beyond that. Elaichi can narrow that access further with restrictions, but it can never widen it.

### Can my team share one Vercel connection?

Yes. One person connects Vercel in Elaichi and shares the connection with a team, and nobody else ever handles the Vercel API key. Each teammate still signs in to Elaichi as themselves, so every action taken in Vercel through the shared connection is logged under their own name.

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

Yes. Restrictions in Elaichi work per action, so you can allow reading Vercel projects and members while blocking deleting a project, removing a member, or changing environment variables. A blocked action is never advertised to Claude, ChatGPT or any other client, so no prompt can reach it.

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

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

## All 84 Vercel tools

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

- **List all Vercel teams** (List). List Vercel teams. Returns team records including id, slug, name, description, avatar, and emailDomain. Optionally filter by slug, search text, role, or timestamp range.
- **Get single Vercel team by ID** (Get). Get a Vercel team by id. Returns the team record including id, slug, name, description, avatar, and emailDomain. Required: id.
- **Create a Vercel team** (Create). Create a new Vercel team. Returns the id and slug of the newly created team. Required: slug.
- **Update a Vercel team by ID** (Update). Update a Vercel team's settings by id. Returns the updated team record including id, slug, name, description, avatar, and emailDomain. Required: id.
- **Delete a Vercel team by ID** (Delete). Delete a Vercel team by id. Returns an empty 204 response on success. Required: id.
- **List all Vercel members** (List). List members of a Vercel team. Returns: id. Required: team_id.
- **Delete a Vercel member by ID** (Delete). Remove a member from a Vercel team by id. Returns an empty 204 response on success. Required: team_id, id.
- **Update a Vercel member by ID** (Update). Update a member of a Vercel team by id. Returns: id. Required: team_id, id.
- **Create a Vercel member** (Create). Add a new member to a Vercel team. Returns: id. Required: team_id.
- **List all Vercel me** (List). Get the currently authenticated Vercel user. Returns: id, email, username, name, and createdAt.
- **List all Vercel projects** (List). List Vercel projects. Returns: id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, and speedInsights. Optionally scope the request to a specific team via teamId or slug.
- **Get single Vercel project by ID** (Get). Get a single Vercel project by id. Returns the full project object including id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, speedInsights, crons, dataCache, and other configuration fields. Required: id.
- **Create a Vercel project** (Create). Create a new Vercel project with the provided configuration. Returns the created project object including id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, speedInsights, crons, and dataCache. Required: name.
- **Update a Vercel project by ID** (Update). Update a Vercel project by id. Returns the updated project object including id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, speedInsights, crons, and dataCache. Required: id.
- **Delete a Vercel project by ID** (Delete). Delete a Vercel project by id. Returns an empty 204 response on success. Required: id.
- **Vercel projects pause** (Pause). Pause a Vercel project by id. Disables auto-assigning custom production domains and blocks the active Production Deployment. Returns an empty 200 response on success. Required: id.
- **List all Vercel project members** (List). List members of a Vercel project. Returns: id. Required: project_id.
- **Delete a Vercel project member by ID** (Delete). Remove a member from a Vercel project by id. Returns an empty 204 response on success. Required: project_id, id.
- **List all Vercel project members** (List). List members of a vercel project. Returns member objects including uid. Required: project_id.
- **Create a Vercel project member** (Create). Add a member to a vercel project. Returns the added member's uid. Required: project_id.
- **Delete a Vercel project member by ID** (Delete). Remove a member from a vercel project by id. Returns: id of the removed member. Required: project_id, id.
- **List all Vercel project envs** (List). List all environment variables for a Vercel project by project id or name. Returns: id, key, type, value, target, createdAt, updatedAt for each variable. Required: project_id.
- **Get single Vercel project env by ID** (Get). Get a single environment variable from a Vercel project by id. Returns: id, key, type, value, target, createdAt, updatedAt, and additional metadata fields. Required: project_id, id.
- **Create a Vercel project env** (Create). Create a new environment variable for a Vercel project. Returns: id, key, type, value, target, createdAt for the created variable. Required: project_id, key, type, value.
- **Update a Vercel project env by ID** (Update). Update an existing environment variable for a Vercel project by id. Returns: id, key, type, value, target, updatedAt for the updated variable. Required: project_id, id.
- **Delete a Vercel project env by ID** (Delete). Delete an environment variable from a Vercel project by id. Returns an empty 204 response on success. Required: project_id, id.
- **List all Vercel project domains** (List). List all domains associated with a Vercel project. Returns: name, apexName, projectId, verified, createdAt, gitBranch, redirect, and verification details per domain. Required: project_id.
- **Get single Vercel project domain by ID** (Get). Get a single domain from a Vercel project by id. Returns: name, apexName, projectId, verified, createdAt, gitBranch, redirect, redirectStatusCode, and verification challenges. Required: project_id, id.
- **Create a Vercel project domain** (Create). Add a domain to a Vercel project. Returns the added domain object including name, apexName, projectId, verified, createdAt, redirect, and verification challenges. If the domain is not yet verified, verified will be false and a verification challenge will be returned. Required: project_id, name.
- **Update a Vercel project domain by ID** (Update). Update a Vercel project domain's configuration, including its git branch, redirect target, and redirect status code. Returns the updated domain object including name, apexName, projectId, verified, updatedAt, redirect, redirectStatusCode, and verification challenges. Required: project_id, id.
- **Delete a Vercel project domain by ID** (Delete). Remove a domain from a Vercel project by id. Returns an empty 204 response on success. Required: project_id, id.
- **List all Vercel deployments** (List). List Vercel deployments. Returns: id, name, url. Required: idOrUrl.
- **Get single Vercel deployment by ID** (Get). Get a single Vercel deployment by id. Returns: id, name, url. Required: id.
- **Create a Vercel deployment** (Create). Create a new Vercel deployment. For non-git deployments all files must be provided; alternatively a gitSource can be specified. Returns: id, name, url.
- **Delete a Vercel deployment by ID** (Delete). Delete a Vercel deployment by id. Returns an empty 204 response on success. Required: id.
- **Vercel deployments cancel** (Cancel). Cancel a Vercel deployment that is currently in progress. Returns: id, name, url. Required: id.
- **List all Vercel deployment events** (List). List events for a Vercel deployment. Returns: type, created. Required: deployment_id.
- **List all Vercel deployment files** (List). List the file tree structure of a Vercel deployment's source code by deployment ID. Returns an array of file tree items including name, type, uid, and children for each node. Required: deployment_id.
- **List all Vercel deployment aliases** (List). List all Vercel deployment aliases for a given deployment. Returns: uid, alias, created, redirect, and protectionBypass. Required: deployment_id.
- **Create a Vercel deployment alias** (Create). Assign a new alias to a Vercel deployment, automatically transferring it from any prior deployment if it is already in use. Returns: uid, alias, created, oldDeploymentId. Required: deployment_id.
- **List all Vercel aliases** (List). List vercel aliases for the authenticated user or team. Optionally filter by domain or project. Returns: uid, alias, created, createdAt, deploymentId, projectId, creator, deployment, redirect, redirectStatusCode, updatedAt.
- **Get single Vercel alias by ID** (Get). Get a single vercel alias by id. Returns: uid, alias, created, createdAt, deploymentId, projectId, creator, deployment, redirect, redirectStatusCode, updatedAt. Required: id.
- **Delete a Vercel alias by ID** (Delete). Delete a vercel alias by id. Returns: status (always 'SUCCESS' when the alias is successfully removed). Required: id.
- **List all Vercel domains** (List). List vercel domains in an account or team. Returns: id, name, verified, nameservers, intendedNameservers, serviceType, createdAt, expiresAt, boughtAt, creator. Required: domain.
- **Get single Vercel domain by ID** (Get). Get information for a single vercel domain by id. Returns: id, name, verified, nameservers, intendedNameservers, serviceType, createdAt, expiresAt, boughtAt, creator.
- **Create a Vercel domain** (Create). Add an existing apex domain to the vercel platform. Returns: id, name, verified, nameservers, intendedNameservers, serviceType, createdAt, boughtAt, expiresAt, creator. Required: name.
- **Update a Vercel domain by ID** (Update). Update or move an apex vercel domain. Supports an 'update' operation (zone, renew, nameservers) and a 'move-out' operation (transfer to another user or team). Returns: moved, token, renew, customNameservers, zone. Required: id, domain.
- **Delete a Vercel domain by ID** (Delete). Remove a previously registered vercel domain by id; associated aliases are automatically removed. Returns: uid. Required: id, domain.
- **List all Vercel domain records** (List). List DNS records for a vercel domain. Returns: id, name, type, value, creator, createdAt, updatedAt, ttl, comment. Required: domain.
- **Create a Vercel domain record** (Create). Create a DNS record for a vercel domain. Returns: uid, updated. Required: domain, type.
- **Update a Vercel domain record by ID** (Update). Update an existing vercel DNS record by id. Returns: id, name, type, value, creator, createdAt, updatedAt, ttl. Required: id.
- **Delete a Vercel domain record by ID** (Delete). Delete a DNS record from a vercel domain by id. Returns an empty 200 response on success. Required: domain, id.
- **List all Vercel log drains** (List). List all Vercel log drains owned by the authenticated account (deprecated endpoint). Returns: id, name, ownerId, status, createdAt, updatedAt, delivery, source, schemas per drain.
- **Get single Vercel log drain by ID** (Get). Get a single Vercel log drain by id. Returns: id, name, ownerId, status, createdAt, updatedAt, delivery, source, schemas, projectIds. Required: id.
- **Create a Vercel log drain** (Create). Create a new Vercel log drain. Returns: id, name, ownerId, status, createdAt, updatedAt, delivery, source, schemas.
- **Delete a Vercel log drain by ID** (Delete). Delete a Vercel log drain by id. Returns an empty 204 response on success. Required: id.
- **List all Vercel webhooks** (List). List all vercel webhooks for an account or team. Returns: id, url, events, ownerId, createdAt, updatedAt, and projectIds for each webhook. Optionally filter by projectId.
- **Get single Vercel webhook by ID** (Get). Get a single vercel webhook by id. Returns: id, url, events, ownerId, createdAt, updatedAt, and projectIds. Required: id.
- **Create a Vercel webhook** (Create). Create a new vercel webhook to receive event notifications at a target URL. Returns: id, url, events, ownerId, createdAt, updatedAt, and projectIds. Required: url, events.
- **Delete a Vercel webhook by ID** (Delete). Delete a vercel webhook by id. Returns an empty 204 response on success. Required: id.
- **List all Vercel edge configs** (List). List all vercel Edge Configs. Returns: id, slug, ownerId, digest, sizeInBytes, itemCount, createdAt, updatedAt for each config.
- **Get single Vercel edge config by ID** (Get). Get a single vercel Edge Config by id. Returns: id, slug, ownerId, digest, createdAt, updatedAt, sizeInBytes, itemCount. Required: id.
- **Create a Vercel edge config** (Create). Create a new vercel Edge Config. Returns: id, slug, ownerId, digest, createdAt, updatedAt, sizeInBytes, itemCount. Required: slug.
- **Update a Vercel edge config by ID** (Update). Update a vercel Edge Config's slug by id. Returns: id, slug, ownerId, digest, createdAt, updatedAt, sizeInBytes, itemCount. Required: id, slug.
- **Delete a Vercel edge config by ID** (Delete). Delete a vercel Edge Config by id. Returns an empty 204 response on success. Required: id.
- **List all Vercel edge config items** (List). List all items in a Vercel Edge Config. Returns: key, value, description for each item. Required: edge_config_id.
- **Update a Vercel edge config item by ID** (Update). Update multiple Vercel Edge Config items in batch, supporting create, update, upsert, and delete operations per item. Returns: status. Required: edge_config_id, items.
- **List all Vercel edge config tokens** (List). List all tokens of a Vercel Edge Config. Returns: id, token. Required: edge_config_id.
- **Create a Vercel edge config token** (Create). Create a new token for a Vercel Edge Config. Returns: id, token. Required: edge_config_id, label.
- **Delete a Vercel edge config token by ID** (Delete). Delete one or more tokens from a Vercel Edge Config by supplying either an array of token strings or an array of token IDs. Returns an empty 204 response on success. Required: edge_config_id. Supply either tokens or ids in the request body.
- **List all Vercel user tokens** (List). List auth tokens for the current Vercel user. Returns: id, name, expiresAt, createdAt per token.
- **Get single Vercel user token by ID** (Get). Get metadata for a single Vercel auth token. Returns: token (including id, name, expiresAt, createdAt). Required: id. The special value 'current' retrieves metadata for the token used in the current request.
- **Create a Vercel user token** (Create). Create a new Vercel auth token for the current user. Returns: token (id, name, expiresAt, createdAt) and bearerToken — the bearerToken is returned only once and cannot be retrieved again, so save it immediately. Required: name.
- **Delete a Vercel user token by ID** (Delete). Delete a Vercel auth token by id, invalidating it for future requests. Returns: tokenId of the deleted token. Required: id. The special value 'current' invalidates the token used in the current request.
- **Get single Vercel cert by ID** (Get). Get a Vercel cert by id. Returns: id, createdAt, expiresAt, autoRenew, cns. Required: id.
- **Create a Vercel cert** (Create). Issue a new cert in Vercel for one or more common names. Returns: id, createdAt, expiresAt, autoRenew, cns.
- **Update a Vercel cert by ID** (Update). Upload a custom cert to Vercel by providing the certificate, key, and certificate authority. Returns: id, createdAt, expiresAt, autoRenew, cns. Required: ca, key, cert.
- **Delete a Vercel cert by ID** (Delete). Delete a Vercel cert by id. Returns an empty response on success. Required: id.
- **List all Vercel secrets** (List). List Vercel secrets. Returns: id.
- **Get single Vercel secret by ID** (Get). Get a single Vercel secret by id. Returns: id. Required: id.
- **Create a Vercel secret** (Create). Create a new Vercel secret. Returns: id.
- **Update a Vercel secret by ID** (Update). Update a Vercel secret by id. Returns: id. Required: id.
- **Delete a Vercel secret by ID** (Delete). Delete a Vercel secret by id. Returns an empty 204 response on success. Required: id.
- **List all Vercel events** (List). List Vercel user events generated by actions such as logging in, creating a deployment, or joining a team. Returns: id, type, createdAt, userId, payload. Optionally filter results by since, until, types, principalId, projectIds, withPayload, teamId, or slug.
