Verified MCP server: Vercel

The Vercel MCP server, enumerated live on a real Mac.

  • Tools enumerated2026-08-03macOS 26.3.1
  • Package@mistertk/vercel-mcp 0.1.1
  • Self-reportedvercel-mcp 1.0.0
  • MCP protocol2025-06-18
  • RuntimeNode v24.18.0

The tool list below is a live capture from the running server; an authenticated tool call is still pending credentials.

The short answer

Last verified 2026-08-03

The Vercel MCP server lets an AI assistant read and change your deployments, projects, domains, environment variables and team settings from a chat window or a scheduled routine. There are two of them, and they are not the same product: Vercel hosts its own remote server at mcp.vercel.com, which your client reaches over the network after an OAuth sign-in and which only accepts clients Vercel has reviewed and approved, and separately there are community packages that run on your own Mac against a personal Vercel Access Token. This page is about the community one, because it is the one a form-based client can start without a browser sign-in. We ran it, spoke the protocol to it, and enumerated all 131 tools it exposes, and the table below is that capture. What we could not do is complete an authenticated call: that needs an Access Token for a real Vercel account, which we do not have, so this page shows you the tools and the exact errors you get without one, and stops there. [1][4][3]

  • Tools

    131, enumerated live

  • Credentials

    Vercel Access Token needed [6]

  • Transport

    stdio, runs on your Mac [1]

  • Maintainer

    MisterTK, community project [1][3]

  • Downloads

    874 last week [2]

  • License

    MIT [1]

Verification

How this MCP server was verified.

Method

We spawned the server with npx over stdio with a placeholder Access Token, completed the MCP initialize handshake, and called tools/list: the 131 tools below are that response, word for word. We then made three real tools/call requests. Two of them reached Vercel and came back 403 Not authorized, and the third was rejected by the server's own argument checking before it left the Mac. Authenticated calls here are pending a Vercel Access Token, which we do not have, so nothing on this page claims a successful Vercel read. Separately we sent an unauthenticated initialize request to Vercel's own hosted endpoint at mcp.vercel.com and it answered 401; that reply is printed in the troubleshooting section.

Startup banner

{"result":{"protocolVersion":"2025-06-18","capabilities":{"resources":{"listChanged":true},"prompts":{"listChanged":true},"tools":{"listChanged":true}},"serverInfo":{"name":"vercel-mcp","version":"1.0.0"}},"jsonrpc":"2.0","id":1}

One real tool call

tools/call getAuthUser {}
Error getting auth user: API error occurred: Status 403 Content-Type "application/json; charset=utf-8". Body: {"error":{"code":"forbidden","message":"Not authorized","invalidToken":true}}

Real lines from the captured result: enough to prove the call answered.

Tools

Every tool, enumerated from the running server.

The server answered tools/list with 131 tools on 2026-08-03. The names, descriptions and parameters below are its own words, copied from that response and never edited.

ToolWhat it does
getDeploymentEventsdeploymentId*directionfollowlimitnamesinceuntilstatusCodedelimiterbuildsteamIdslug

Gets deployment events by deployment ID and build ID

getDeploymentdeploymentId*withGitRepoInfoteamIdslug

Gets a deployment by ID or URL

cancelDeploymentdeploymentId*teamIdslug

Cancels a deployment

listDeploymentFilesdeploymentId*teamIdslug

Lists deployment files

getDeploymentFileContentsdeploymentId*fileId*teamIdslug

Gets deployment file contents

getDeploymentsappfromlimitprojectIdtargettouserssinceuntilstateteamIdslug

Lists deployments

deleteDeploymentdeploymentId*urlteamIdslug

Deletes a deployment

listDnsRecordsdomain*limitsinceuntilteamIdslug

Lists DNS records for a domain

createDnsRecorddomain*name*type*value*ttlcommentmxPrioritysrvPrioritysrvWeightsrvPorthttpsTargethttpsPriorityteamIdslug

Creates a DNS record for a domain

updateDnsRecorddomain*recordId*nametypevaluettlcommentmxPrioritysrvPrioritysrvWeightsrvPorthttpsTargethttpsPriorityteamIdslug

Updates a DNS record

deleteDnsRecorddomain*recordId*teamIdslug

Deletes a DNS record

getDomaindomain*teamIdslug

Gets information about a domain

getDomainConfigdomain*teamIdslug

Gets domain configuration

listDomainslimitsinceuntilteamIdslug

Lists all domains

listProjectsexcludeReposfromgitForkProtectionlimitreporepoIdrepoUrlsearchsinceteamIdslug

Lists all projects

updateProjectprojectId*autoExposeSystemEnvsbuildCommandcommandForIgnoringBuildStepdevCommanddirectoryListingenableAffectedProjectsDeploymentsframeworkgitCommentsgitLFSinstallCommandnamenodeVersionoutputDirectorypublicSourcerootDirectoryserverlessFunctionRegionskewProtectionMaxAgeteamIdslug

Updates a project

listProjectDomainsprojectId*directiongitBranchlimitnameorderproductionredirectredirectssincetargetuntilverifiedteamIdslug

Lists domains for a project

getProjectDomainprojectId*domain*teamIdslug

Gets a project domain

addProjectDomainprojectId*name*gitBranchredirectredirectStatusCodeteamIdslug

Adds a domain to a project

updateProjectDomainprojectId*domain*gitBranchredirectredirectStatusCodeteamIdslug

Updates a project domain

removeProjectDomainprojectId*domain*teamIdslug

Removes a domain from a project

verifyProjectDomainprojectId*domain*teamIdslug

Verifies a project domain

listEnvVarsprojectId*decryptgitBranchlimitsincesourcetargetteamIdslug

Lists environment variables for a project

getEnvVarprojectId*envId*decryptteamIdslug

Gets an environment variable

createEnvVarprojectId*key*value*type*target*gitBranchcommentcustomEnvironmentIdsteamIdslug

Creates an environment variable

editEnvVarprojectId*envId*keyvaluetypetargetgitBranchcommentcustomEnvironmentIdsteamIdslug

Edits an environment variable

removeEnvVarprojectId*envId*teamIdslug

Removes an environment variable

readAccessGroupidOrName*teamIdslug

Read an access group

listAccessGroupsprojectIdmemberIdsearchmembersLimitprojectsLimitlimitnextteamIdslug

List access groups

createAccessGroupname*projectsmembersToAddteamIdslug

Create an access group

getEdgeConfigsteamIdslug

Get all Edge Configs

createEdgeConfigname*itemsteamIdslug

Create an Edge Config

getEdgeConfigedgeConfigId*teamIdslug

Get an Edge Config

updateEdgeConfigedgeConfigId*items*teamIdslug

Update an Edge Config

getCertByIdid*teamIdslug

Get cert by id

removeCertid*teamIdslug

Remove cert

issueCertcns*teamIdslug

Issue a new cert

uploadCertca*cert*key*skipValidationteamIdslug

Upload a cert

getTeamteamId*

Get a team

getTeamslimitsinceuntil

List all teams

createWebhookurl*events*projectIdsteamIdslug

Create a webhook

getWebhooksprojectIdteamIdslug

Get a list of webhooks

deleteWebhookid*teamIdslug

Delete a webhook

createLogDrainname*type*url*deliveryFormatenvironmentsheadersprojectIdssourcessecretsamplingRateteamIdslug

Creates a new Integration Log Drain

getAuthUser

Get the authenticated user

listAuthTokensteamIdslug

List auth tokens

createAuthTokenname*expiresAtteamIdslug

Create an auth token

createCheckdeploymentId*name*pathblockingdetailsUrlexternalIdrerequestableteamIdslug

Creates a new check

getAllChecksdeploymentId*limitnextteamIdslug

Retrieve a list of all checks

getCheckdeploymentId*checkId*teamIdslug

Get a single check

updateCheckdeploymentId*checkId*status*conclusionnamedetailsUrloutputteamIdslug

Update a check

rerequestCheckdeploymentId*checkId*teamIdslug

Rerequest a check

updateAccessGroupidOrName*nameprojectsmembersToAddmembersToRemoveteamIdslug

Update an access group

deleteAccessGroupidOrName*teamIdslug

Delete an access group

listAccessGroupMembersidOrName*limitnextteamIdslug

List members of an access group

listAccessGroupProjectsidOrName*limitnextteamIdslug

List projects in an access group

createAccessGroupProjectidOrName*projectId*role*teamIdslug

Add a project to an access group

readAccessGroupProjectidOrName*projectId*teamIdslug

Get project details in an access group

updateAccessGroupProjectidOrName*projectId*role*teamIdslug

Update a project's role in an access group

deleteAccessGroupProjectidOrName*projectId*teamIdslug

Remove a project from an access group

deleteEdgeConfigedgeConfigId*teamIdslug

Delete an Edge Config

getEdgeConfigItemsedgeConfigId*teamIdslug

Get all items in an Edge Config

getEdgeConfigItemedgeConfigId*itemKey*teamIdslug

Get a specific item from an Edge Config

getEdgeConfigSchemaedgeConfigId*teamIdslug

Get the schema for an Edge Config

patchEdgeConfigSchemaedgeConfigId*schemateamIdslug

Update the schema for an Edge Config

deleteEdgeConfigSchemaedgeConfigId*teamIdslug

Delete the schema for an Edge Config

getEdgeConfigTokensedgeConfigId*teamIdslug

Get all tokens for an Edge Config

deleteEdgeConfigTokensedgeConfigId*tokens*teamIdslug

Delete tokens for an Edge Config

getEdgeConfigTokenedgeConfigId*token*teamIdslug

Get a specific token for an Edge Config

createEdgeConfigTokenedgeConfigId*label*teamIdslug

Create a token for an Edge Config

getTeamMembersteamId*limitsinceuntilsearchrole

List team members

inviteUserToTeamteamId*email*role*projects

Invite a user to a team

requestAccessToTeamteamId*joinedFrom

Request access to a team

getTeamAccessRequestteamId*userId*

Get team access request status

joinTeamteamId*inviteCode*

Join a team

updateTeamMemberteamId*uid*roleprojects

Update a team member

removeTeamMemberteamId*uid*

Remove a team member

patchTeamteamId*avatardescriptionnameslug

Update team information

createTeamslug*

Create a new team

deleteTeamteamId*

Delete a team

deleteTeamInviteCodeteamId*inviteId*

Delete team invite code

getWebhookid*teamIdslug

Get a webhook

deleteIntegrationLogDrainid*teamIdslug

Delete an integration log drain

deleteConfigurableLogDrainid*teamIdslug

Delete a configurable log drain

getIntegrationLogDrainsintegrationId*teamIdslug

Get integration log drains

listUserEventslimitsinceuntiltypesuserIdwithPayloadteamIdslug

List user events

requestDeletereasons*

Request user account deletion

getAuthTokentokenId*teamIdslug

Get auth token metadata

deleteAuthTokentokenId*teamIdslug

Delete an auth token

listAliasesdomainfromlimitprojectIdsinceuntilrollbackDeploymentIdteamIdslug

List aliases

getAliasidOrAlias*fromprojectIdsinceuntilteamIdslug

Get an alias

deleteAliasaliasId*teamIdslug

Delete an alias

listDeploymentAliasesdeploymentId*teamIdslug

List deployment aliases

assignAliasdeploymentId*alias*redirectteamIdslug

Assign an alias to a deployment

recordArtifactEventsevents*xArtifactClientCixArtifactClientInteractiveteamIdslug

Record artifacts cache usage events

getArtifactStatusteamIdslug

Get status of Remote Caching

getProjectMembersidOrName*limitsinceuntilsearchteamIdslug

List project members

addProjectMemberidOrName*uidemailusernamerole*teamIdslug

Add a new member to a project

removeProjectMemberidOrName*uid*teamIdslug

Remove a member from a project

uploadArtifacthash*data*contentLength*xArtifactDurationxArtifactClientCixArtifactClientInteractivexArtifactTagteamIdslug

Upload a cache artifact

downloadArtifacthash*teamIdslug

Download a cache artifact

artifactExistshash*teamIdslug

Check if an artifact exists

artifactQueryhashes*teamIdslug

Query artifact status

createCustomEnvironmentprojectId*body*teamIdslug

Create a custom environment

getCustomEnvironmentsprojectId*teamIdslug

Get custom environments for a project

getCustomEnvironmentprojectId*envId*teamIdslug

Get a specific custom environment

updateCustomEnvironmentprojectId*envId*body*teamIdslug

Update a custom environment

deleteCustomEnvironmentprojectId*envId*teamIdslug

Delete a custom environment

getConfigurationsteamIdslugview

Get integration configurations

getConfigurationconfigId*teamIdslug

Get a specific integration configuration

deleteConfigurationconfigId*teamIdslug

Delete an integration configuration

gitNamespaceshostteamIdslug

Get available Git namespaces

searchReponamespaceId*hostqueryteamIdslug

Search Git repositories

getAccountInfointegrationId*

Get marketplace account information

getMemberintegrationId*memberId*

Get marketplace member information

createEventintegrationId*body*

Create a marketplace event

submitBillingDataintegrationId*body*

Submit billing data

submitInvoiceintegrationId*body*

Submit an invoice

getInvoiceintegrationConfigurationId*invoiceId*

Get an invoice

updateInvoiceintegrationId*invoiceId*body*

Update an invoice

updateResourceSecretsintegrationId*productIdOrSlug*resourceId*body*

Update resource secrets

updateResourceSecretsByIdintegrationId*body*

Update resource secrets by ID

exchangeSsoTokenintegrationId*body*

Exchange SSO token

updateAttackChallengeModeprojectId*body*teamIdslug

Update attack challenge mode

putFirewallConfigprojectId*body*teamIdslug

Create or replace firewall configuration

updateFirewallConfigprojectId*body*teamIdslug

Update firewall configuration

getFirewallConfigprojectId*teamIdslug

Get firewall configuration

getActiveAttackStatusprojectId*teamIdslug

Get active attack status

getBypassIpprojectId*teamIdslug

Get bypassed IPs for a project

addBypassIpprojectId*body*teamIdslug

Add bypass IP to project

removeBypassIpprojectId*ip*teamIdslug

Remove bypass IP from project

Parameters marked with * are required.

Setup

Working configs, one per app.

Copy the block for the app you use. Each one is the configuration this server was verified with.

Claude Desktop

Open the file ~/Library/Application Support/Claude/claude_desktop_config.json (in Claude Desktop: Settings, then Developer, then Edit Config) and add:

{
  "mcpServers": {
    "vercel": {
      "command": "npx",
      "args": [
        "-y",
        "@mistertk/vercel-mcp"
      ],
      "env": {
        "VERCEL_API_KEY": "your_vercel_access_token"
      }
    }
  }
}

Paste your own token in place of the placeholder, then quit and reopen Claude Desktop. Claude Desktop can also reach Vercel's own hosted server instead, through Settings, then Connectors, then Add custom connector, which Vercel documents as a paid-plan feature; that route needs no JSON and no token, but it does need an OAuth sign-in. [8][4]

Claude Code

One command in your terminal:

claude mcp add vercel -e VERCEL_API_KEY=your_vercel_access_token -- npx -y @mistertk/vercel-mcp

The -e flag sets the environment variable, and everything after the double dash is the exact command Claude Code will run. Your token ends up in your shell history, so paste it in a fresh terminal if that matters to you. Vercel documents a second route for this client, claude mcp add --transport http vercel https://mcp.vercel.com, which points at Vercel's own server and authorises in the browser when you type /mcp. [9][4]

Cursor

Add to ~/.cursor/mcp.json for every project, or to .cursor/mcp.json inside one project:

{
  "mcpServers": {
    "vercel": {
      "command": "npx",
      "args": [
        "-y",
        "@mistertk/vercel-mcp"
      ],
      "env": {
        "VERCEL_API_KEY": "your_vercel_access_token"
      }
    }
  }
}

Cursor picks the file up on restart. A project-level .cursor/mcp.json is worth committing to git only after you have moved the token out of it. Vercel also publishes a Cursor snippet for its own hosted server, which is the same file with a single url line instead of the command and env. [10][4]

Routines

No JSON file and no terminal. In Routines: Settings, then Assistant, then Connections, then Add MCP Server. Switch the form to Command (stdio) and enter:

Name        Vercel
Command     npx
Arguments   -y @mistertk/vercel-mcp

Environment Variables
VERCEL_API_KEY=your_vercel_access_token

The token belongs in the Environment Variables field, on its own line, not in Arguments. Click Test Connection first: a working server answers with its tool count, one hundred and thirty-one for this package. If it answers nothing at all, the variable did not reach the process. [11]

No terminal needed

Set the Vercel MCP server up without the terminal.

If you have never opened Terminal and never want to, this is your path. Routines is a Mac app that runs MCP servers for you: fill in a few fields once, and this server's tools are available to your AI in chat and in scheduled routines.

  1. 01

    Install Routines

    Download the app from getroutines.ai/download, drag it to Applications, and sign in.

  2. 02

    Open the MCP settings

    Click your account at the bottom of the sidebar and choose Settings. Open the Assistant section, then the Connections tab, scroll to MCP Servers, and click Add MCP Server.

  3. 03

    Choose Command (stdio)

    Switch the form to Command (stdio): this server is a command that runs on your Mac, not a web address. Vercel's own hosted server at mcp.vercel.com is a web address, but reaching it needs an OAuth sign-in that this form does not run, which is why the package below is the route that works here.

  4. 04

    Get a Vercel Access Token

    In the Vercel dashboard, open the Account Tokens page at vercel.com/account/tokens and create one. Vercel scopes a token to your user account and optionally to a single project, so pick the narrowest scope that covers what you want the assistant to see. The plaintext value is shown once, so copy it before you close the page.

  5. 05

    Fill in the form, then test

    Name: Vercel. Command: npx. Arguments: -y @mistertk/vercel-mcp. In Environment Variables add one line, VERCEL_API_KEY=your_token. Click Test Connection: Routines starts the server and reports how many tools it found, one hundred and thirty-one for this one. Then click Add Server.

  6. 06

    Use it

    The tools work in chat right away. To let a scheduled routine use them, open the routine, find the Tools & connections card, and tick the server under Apps.

Routine ideas

Routines worth scheduling.

Once the server is connected, a scheduled routine can use its tools while you are away. Copy a prompt, paste it into Routines, and pick a time.

A Monday deployment digest

Prompt

Every Monday at 9:00, list my Vercel deployments from the last seven days, group them by project, call out any that ended in an error state, and save the summary as vercel-week.md in my Documents folder.

A domain and certificate check

Prompt

On the first of every month at 8:00, list the domains on my Vercel account with their configuration status, flag any that are not verified or are close to expiring, and write the list to vercel-domains.md so I can act on it.

An environment variable review

Prompt

Every Friday at 17:00, list the environment variables on my production Vercel project, note which ones changed this week and who changed them, and write a short report to env-review.md. Never print the values themselves.

Troubleshooting

The errors we hit, and what fixed them.

Real errors captured during the verification run, printed exactly as the server returned them.

The server exits the moment it starts

What you see

Configuration error: Missing Vercel API key. Set VERCEL_API_KEY environment variable or pass VERCEL_API_KEY=<key> as argument

Usage:
  Environment variable: export VERCEL_API_KEY=<YOUR_API_KEY>
  Command line: node script.js VERCEL_API_KEY=<YOUR_API_KEY>

Optional environment variables:
  VERCEL_REQUEST_TIMEOUT - Request timeout in ms (default: 30000)
  VERCEL_MAX_RETRIES - Maximum retry attempts (default: 3)
  VERCEL_DEBUG - Enable debug logging (default: false)
  VERCEL_RATE_LIMIT_PER_MINUTE - API calls per minute (default: 60)
  VERCEL_RATE_LIMIT_BURST - Burst limit (default: 10)

The fix

No token reached the process, so it printed this and quit before the MCP handshake began. We reproduced it by launching the package with the variable unset. There is no partial mode here: with no token there is no tools/list either, which is why a client shows a dead connection rather than an empty one. In a form-based client, check that the value went into the Environment Variables field and not into Arguments. The optional variables in the same message are real and useful: VERCEL_DEBUG=true is the quickest way to see what the server is actually sending.

It rejects a token that looks fine

What you see

Configuration error: Invalid Vercel API key format

The fix

The package checks the shape of the token on your own Mac before it ever calls Vercel, and refuses anything too short or containing characters outside letters, digits, underscores and hyphens. We triggered this on purpose with a four-character value. It is a fast offline failure, so it is easy to tell apart from the 403 further down this list: this one happens at startup, the 403 happens on a tool call. A stray space or a quote copied along with the token is the usual cause.

Every tool call comes back Not authorized

What you see

Error getting auth user: API error occurred: Status 403 Content-Type "application/json; charset=utf-8". Body: {"error":{"code":"forbidden","message":"Not authorized","invalidToken":true}}

The fix

The server is running and the tools are there; Vercel is refusing the token. This is the reply we got throughout our own run, because our token was a placeholder rather than a real one, and it is why this page is marked as enumerated rather than fully verified. The same message covers a revoked token, an expired one, and a token scoped to a different account or project than the resource you asked about. Create a fresh token on the Account Tokens page in the Vercel dashboard and restart the server.

A call fails before it reaches Vercel

What you see

MCP error -32602: Input validation error: Invalid arguments for tool getDeployment: Required at deploymentId

The fix

Not a Vercel problem: the server checked the arguments and found a required one missing. We got this by calling getDeployment with no arguments at all. Most tools here take at least one identifier, and many take an optional teamId, which you need when the resource belongs to a team rather than your personal account. Ask the assistant to run a listing tool first, such as getDeployments or listProjects, and let it take the identifier from that result.

Vercel's own hosted endpoint answers 401

What you see

HTTP/2 401
www-authenticate: Bearer error="invalid_token", error_description="No authorization provided", resource_metadata="https://mcp.vercel.com/.well-known/oauth-protected-resource"
{"error":"invalid_token","error_description":"No authorization provided"}

The fix

Expected, and worth knowing before you spend an evening on it. Vercel's hosted server at mcp.vercel.com is a different product from the local package on this page, and it accepts nothing without credentials. We sent an initialize request with no Authorization header and got this back, along with a pointer to the OAuth metadata it publishes. Reaching that server means an OAuth sign-in your MCP client completes for you in a browser, and Vercel only allows clients it has reviewed and approved.

npx starts and then says the command was not found

What you see

sh: vercel-mcp: command not found

The fix

You installed a different package. Several npm packages carry Vercel MCP names and they are not interchangeable: we hit this exact line running npx -y vercel-mcp-server, whose published archive does not contain the file its own manifest points at, so npx downloads it, finds nothing to run, and hands the failure to the shell. The package this page verified is the scoped one, @mistertk/vercel-mcp. Copy the name including the @mistertk/ prefix.

Your MCP client cannot start the server at all

The fix

The npx command belongs to Node.js. If Node is not installed on your Mac, every client on this page fails at the spawn step before the server can say anything. Install Node from nodejs.org, restart your MCP client, and try again.

FAQ

Questions people ask.

What is the Vercel MCP server?

It is how an AI assistant reads and changes things in a Vercel account: deployments, projects, domains, DNS records, environment variables, team members and more. Two different things go by the name. Vercel runs an official hosted server at mcp.vercel.com, reached over the network after an OAuth sign-in and open only to clients Vercel has reviewed and approved. Separately, community packages wrap the same Vercel REST API as a local process on your Mac, authenticated with a personal Access Token. This page verified one of the community packages, because that is the kind a form-based client can start on its own. [4][1]

What tools does the Vercel MCP server include?

The package on this page exposes 131 tools, and the table above is the live tools/list output, word for word. They cover deployments (getDeployments, getDeployment, cancelDeployment, deleteDeployment, getDeploymentEvents), projects and environment variables (listProjects, updateProject, listEnvVars, createEnvVar, removeEnvVar), domains and DNS (listDomains, getDomainConfig, listDnsRecords, createDnsRecord), teams and members (getTeams, getTeamMembers, inviteUserToTeam), Edge Config, certificates, webhooks, log drains, build checks, aliases, and firewall settings. Vercel's own hosted server publishes a different and much smaller set, 32 tools at the time we checked, aimed at documentation search, deployment logs and Web Analytics. [5]

Did you actually complete an authenticated Vercel call?

No, and we are not going to imply otherwise. We started the server, completed the handshake, and got the full tool list back, which is what the enumerated badge on this page means. Every tool call we then made returned a real error, printed above: 403 Not authorized from Vercel for the two that reached the network, and an argument-validation error for the one that did not. Completing a real read needs a Vercel Access Token for a real account, which we do not have. Everything else on this page is a receipt from that run.

What credential does it need, and where do I get one?

One Vercel Access Token, passed as the VERCEL_API_KEY environment variable. You create it on the Account Tokens page in the Vercel dashboard, at vercel.com/account/tokens. Vercel scopes a token to your user account and optionally to a single project, so give it the narrowest scope that covers the work, and treat it like a password: the plaintext value is shown once, and anything holding it can act as you. Worth knowing before you decide the scope: the 131 tools above are not read-only, and include deleteDeployment, removeEnvVar, deleteDnsRecord and deleteTeam. The server also reads a few optional variables for timeouts, retries and rate limits, which its own startup message lists. [6]

Do I need the terminal to set it up?

No. In Routines you fill in three fields plus one environment variable in Settings and click Test Connection; the walkthrough above shows every click. Claude Desktop needs a small JSON file edited once, or a custom connector added through its own settings. Only Claude Code is terminal-first by nature. [11][8]

Why does npm say 0.1.1 but the server reports 1.0.0?

Both numbers are real and we captured both. The npm registry publishes this package as 0.1.1, and that is the version npx resolved and ran. Over MCP, the running server introduces itself as vercel-mcp version 1.0.0, which is a number written inside its own source and never updated to match the release. Same code, two numbers. It is worth knowing which one to quote when you report a bug: the npm one. [1]

Is @vercel/mcp-adapter the same thing?

No, and it is the easiest mix-up here because it is the Vercel-published package with by far the most downloads. @vercel/mcp-adapter is a library for building your own MCP server inside a Next.js or similar app and deploying it to Vercel. It is not a server you can point Claude or Cursor at. If you want your assistant to talk to your existing Vercel account, you want either the hosted endpoint at mcp.vercel.com or a community package like the one on this page. Note also that the source repository behind this package no longer resolves on GitHub, so the published npm archive is the only thing left to audit before you install it. [7][3]

Sources

Every external claim, receipted.

Anything on this page we did not observe in the run is linked here, with the date we read it. The run itself is the receipt for the rest.

  1. [1]

    npm registry: @mistertk/vercel-mcpaccessed 2026-08-03

    Latest version 0.1.1, published 2025-06-27, MIT, bin vercel-mcp. This is the version npx resolved for our run.

  2. [2]

    npm downloads API: last weekaccessed 2026-08-03

    874 downloads for the week ending 2026-08-01.

  3. [3]

    GitHub API: MisterTK/vercel-api-mcpaccessed 2026-08-03

    The repository named in the package manifest returns 404 Not Found, so the source tree cannot be read on GitHub; only the published npm archive can be inspected.

  4. [4]

    Vercel docs: Use Vercel's MCP serveraccessed 2026-08-03

    The hosted endpoint mcp.vercel.com, its OAuth and Streamable HTTP model, the reviewed-client list, and the per-client setup snippets. Page dated 2026-06-26.

  5. [5]

    Vercel docs: Vercel MCP tools referenceaccessed 2026-08-03

    32 documented tools on the hosted server, including a purchase group that charges a real payment method.

  6. [6]

    Vercel docs: vercel tokensaccessed 2026-08-03

    Access tokens authenticate REST API requests, are scoped to your user account and optionally one project, and their plaintext value is shown only once.

  7. [7]

    npm registry: @vercel/mcp-adapteraccessed 2026-08-03

    Version 0.3.2, described as an adapter for Next.js and other frameworks: a library for building a server, not a server to connect to.

  8. [8]

    modelcontextprotocol.io: Connect to local MCP serversaccessed 2026-08-03

    The Claude Desktop config file location and the mcpServers shape.

  9. [9]

    Claude Code docs: MCPaccessed 2026-08-03

    The claude mcp add syntax, including -e for environment variables.

  10. [10]

    Cursor docs: Model Context Protocolaccessed 2026-08-03

    The mcp.json shape and file locations.

  11. [11]

    Routines: Connectorsaccessed 2026-08-03

    How Routines runs one-click OAuth connectors and any MCP server.

This page describes Vercel as it behaved in one dated run on one Mac. Versions move: if something here no longer matches what you see, the capture date at the top says how old the reading is.

Behind this directory

Routines, the app behind this directory, runs MCP servers like this one without a terminal: see how connectors work. Your notes stay markdown files on your Mac, there is no cloud bill, and it works offline. Download Routines