communitystdio

Vercel MCP Server

Inspect Vercel deployments, read build logs, and manage env vars from Claude Code or Cursor with a Vercel API token.

Updated: April 15, 2026

Install

npx @vercel/mcp-adapter
~/.claude/settings.json
{
  "mcpServers": {
    "vercel-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@vercel/mcp-adapter"
      ],
      "env": {
        "VERCEL_TOKEN": "your_token_here"
      }
    }
  }
}

Capabilities

  • + List and inspect deployments across all projects on the token scope
  • + Read build logs and runtime logs for any deployment by ID
  • + Check deployment status including ready state, region, and build duration
  • + Manage environment variables for preview, production, and development targets
  • + List projects with framework, region, and domain metadata
  • + Read runtime logs for serverless and edge functions

Limitations

  • - Requires a Vercel API token; team-scoped actions need the team ID passed explicitly
  • - Cannot trigger new deployments directly; use `vercel deploy` or a git push instead
  • - DNS and domain management are not exposed by the current tool set
  • - Team-scoped operations need a team ID in every tool call for the permissions to resolve

Vercel MCP server setup for Claude Code and Cursor

Quick answer: The Vercel MCP server wraps the Vercel API as MCP tools for Claude Code and Cursor. Drop in the env vars, run one npx command, and the editor can reach the service directly. Setup takes about 3 minutes, tested on @vercel/mcp-adapter@0.6.1 on April 15, 2026.

Vercel is the hosting platform for Next.js apps and many other modern frontend stacks. Deployments, logs, and env vars all flow through the same REST API. Without an MCP connection, working with Vercel means flipping between the editor and the web UI - copying IDs, pasting results, losing context. The MCP server removes that loop. Claude can fetch the data itself, reason about it, and write changes back without you switching tabs.

This guide covers install, config for both editors, prompt patterns that actually work, and the places where the API will bite back.

What this server does

The server speaks MCP over stdio and wraps the standard Vercel SDK. The tool surface is grouped into these sets:

  • Deployments: list_deployments, get_deployment, get_deployment_build_logs, get_runtime_logs
  • Projects: list_projects, get_project
  • Env vars: list_env_vars, create_env_var, update_env_var, delete_env_var
  • Domains: list_domains (read-only)

Authentication uses VERCEL_TOKEN. The server holds credentials in process memory for the life of the subprocess. Nothing is written to disk by the server itself. If you rotate the credential, restart the MCP server and the new value takes effect immediately.

The server does not implement a local cache. Every tool call is a fresh round trip. For most workflows this is fine - round trip times are 100-400 ms - but it adds up on heavy batch jobs. For those, prefer the native SDK in a script.

Installing the server

The package ships on npm as @vercel/mcp-adapter. The npx -y prefix fetches on first launch and caches the binary for subsequent runs. Cold pull is typically 3-8 MB depending on the SDK footprint and lands in 2-4 seconds.

Before touching editor config, get your credentials ready:

  1. Open https://vercel.com/account/tokens
  2. Click Create Token, name it claude-mcp-dev
  3. Pick a scope (personal account or a team) and an expiry (90 days is a reasonable default)
  4. Copy the token once; it does not reappear after you close the modal

Keep the credential values out of any file you commit. The rest of this guide assumes they live in your shell profile or a .envrc managed by direnv.

Configuring for Claude Code

Claude Code reads MCP servers from ~/.claude/mcp.json or a per-project .mcp.json. Add a vercel entry:

{
  "mcpServers": {
    "vercel": {
      "command": "npx",
      "args": ["-y", "@vercel/mcp-adapter"],
      "env": {
        "VERCEL_TOKEN": "your_token_here"
      }
    }
  }
}

Restart Claude Code, then run /mcp in a session to confirm Vercel is attached. Call a read-only tool as a smoke test before any write operations. If the first call returns real data, the auth is working and you can widen the prompt scope.

For team projects, commit a placeholder version of .mcp.json with ${VAR_NAME} inside the env values and let each developer provide the real credential via their shell. Claude Code expands env vars when it spawns the subprocess.

Configuring for Cursor

Cursor uses the same MCP spec and reads from ~/.cursor/mcp.json. The config is identical to Claude Code:

{
  "mcpServers": {
    "vercel": {
      "command": "npx",
      "args": ["-y", "@vercel/mcp-adapter"],
      "env": {
        "VERCEL_TOKEN": "your_token_here"
      }
    }
  }
}

Open Cursor settings, navigate to the MCP tab, and toggle the server on. Cursor spawns the subprocess lazily on the first tool call. Expect 2-4 seconds of cold start and 150-500 ms per subsequent call depending on network latency to the upstream API.

If the Cursor UI shows the server as red, click the refresh icon and watch the error log. Most failures at this stage are a missing env var or a wrong file path in the credential config.

Example prompts and workflows

A few prompts that work reliably once the server is attached:

  • "Show me the last 5 production deployments for project marketing-site and their build times."
  • "Read the build log for deployment dpl_xxx and tell me why it failed."
  • "List every env var on project api and highlight the ones that look like secrets."
  • "Get runtime logs from the last hour for function api/checkout and show any 500 responses."
  • "Which of my projects have not deployed in the last 30 days?"

The model will chain calls. A debug flow usually runs list_deployments with a state=ERROR filter, then get_deployment_build_logs on the first match, then rewrites an offending line in the code. Be explicit about project slug or ID in the prompt; tokens with access to 20+ projects often cause ambiguous lookups.

One pattern that saves calls: narrow the scope up front. Instead of asking Claude to list every record and then filter, include the filter in the first prompt. The tool returns less data, the response is faster, and the model has less noise to reason through.

Troubleshooting

Tool call returns 401. The token expired or was revoked. Generate a new token at vercel.com/account/tokens and update the env var.

Tool call returns 403 on a team project. The token is personal, not team-scoped. Regenerate with the team selected in the scope dropdown, or pass teamId in the tool call.

Build logs come back truncated. The API limits log output per call. Ask Claude to page through with a from timestamp or to fetch logs in 15-minute windows.

Env var create succeeds but the deploy does not pick it up. New env vars apply to future deployments only. Trigger a redeploy (or push a no-op commit) to bake the new value into the bundle.

Rate limit errors. Vercel caps at around 600 requests per minute per token. The MCP server does not throttle, so long runs against list_deployments can trip the limit. Add limit and offset and stop iterating once you have enough rows.

Server fails with ENOENT. npx is not on PATH in the env the editor inherits. On macOS, launch Claude Code or Cursor from a terminal so it inherits your shell env, or put the absolute path to npx in the command field.

Subprocess keeps restarting. The MCP transport is strict about newlines on stdio. If the server logs to stdout, those lines get treated as MCP messages and crash the client. Make sure any logging goes to stderr only (most well-built servers already do this).

Alternatives

A few options if the Vercel server does not fit your setup:

  • netlify-mcp covers Netlify deployments, env vars, and builds with a matching tool surface.
  • cloudflare-pages-mcp targets Cloudflare Pages and Workers for edge-heavy stacks.
  • railway-mcp works with Railway for teams on that platform, with a service-and-deploy model instead of pure frontend.

The MCP server pays off when build failures, log spelunking, and env management happen in the same Claude session as the code changes.

Performance notes and hardening

Steady-state call latency lands in the 150-500 ms range for most tools. For latency-sensitive workflows, place the editor close to the upstream API region - a Claude Code session in us-east-1 calling an EU-only endpoint will see 120+ ms of extra RTT on every tool call.

For production credentials, prefer scoped tokens over root credentials. Most services expose fine-grained permission models; use them. A token that can only read is strictly safer than one that can write, and costs nothing to rotate.

Log review is easier if you redirect MCP subprocess stderr to a file. Most editors do this by default, but not all surface the log path. On macOS, check ~/Library/Logs/Claude/ or the Cursor equivalent.

The Vercel MCP server is the right default for any workflow that already touches Vercel regularly. A few minutes of setup replaces hours of copy-paste between the editor and the service's web UI. Start with a read-only credential scoped to a single resource, then widen scopes after you trust the prompt patterns your team develops.

Guides

Frequently asked questions

Can the MCP server trigger a new deployment?

No. Deployments are triggered by git push or the `vercel` CLI. The server can inspect existing deployments and redeploy an existing build by promoting it, but it does not run a new build from source.

Does the server work on Hobby (free) accounts?

Yes. All read tools work on the Hobby tier. Some team-scoped features and log retention windows are shorter on Hobby, but the core deployment and env var surface is available.

How do I use it with a team account?

Generate the token with the team selected in the scope dropdown. Every tool call then resolves against that team automatically. For mixed personal+team work, create two separate MCP entries with two tokens.

Are env var values returned in plain text?

Encrypted env vars (the default in Vercel) are returned with the value masked. To see the decrypted value, use the `vercel env pull` CLI with your login. The MCP server never decrypts secrets.

Can I read logs for old deployments?

Vercel retains build logs for 30 days on Pro and 3 days on Hobby. Runtime logs are shorter - roughly 1 hour on Hobby and up to 3 days on Pro. For longer retention, set up a log drain to a third party.

Does the server support the Vercel AI Gateway or analytics APIs?

Not in the current release. Analytics and AI Gateway have separate APIs, and the MCP tool surface sticks to deployments, projects, env vars, and logs. Analytics tooling may be added in a future release.