Vercel MCP Pro

io.github.helbertparanhosPublished by GitHub account helbertparanhosv1.0.0Updated Oct 24, 2026

Complete Vercel MCP: deploys, logs, projects, env, domains, DNS, certs via the full REST API

The publisher's own server: Agent Permissions Index

Overview

AI-generated overview

A local MCP server that gives an assistant broad access to the Vercel REST API: deployments, projects, environment variables, domains, DNS, certificates, logs,

What you can do
Manage deployments: list, inspect, create, cancel, delete, promote, roll back, and read build or runtime logs and deployment files. Manage projects and environment variables: create, update, delete, pause, and bulk-create env vars. Manage domains, DNS records, aliases, and certificates: add, verify, assign, issue, upload, and remove. Manage checks, webhooks, edge configs, log drains, integrations, teams, and user info. Call any Vercel REST endpoint through a raw escape hatch for endpoints not covered by named tools.
When to use it
Useful when you want an assistant to inspect or operate a Vercel account from any MCP client without an OAuth flow, for example diagnosing failed deploys, promoting a preview to production, rolling back, or managing env vars, domains, and DNS. A readonly mode suits audits and exploration.
Requirements
Runs locally via npx (Node.js) or a local build. Requires a Vercel access token in VERCEL_TOKEN. Optional settings: VERCEL_TEAM_ID or VERCEL_TEAM_SLUG for default team scope, VERCEL_READONLY, VERCEL_DISABLE_RAW, VERCEL_TIMEOUT_MS, VERCEL_MAX_RETRIES. Network access to the Vercel API.
Before you install
The token grants the same access as your Vercel account or team, so use a scoped, least-privilege token and keep it out of chats. Many tools write, delete, promote, roll back, or change DNS, certificates, and env vars. Readonly mode blocks mutations but not reads of secrets: env var and edge config tools can return decrypted values. The team ID is only a default scope, not a security boundary; callers can pass another team. The raw escape hatch reaches any Vercel endpoint unless disabled.

Installation

In SourceWeft

  1. Open Vercel MCP Pro in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Vercel MCP Pro ▲

The most complete Vercel MCP server — 70 tools covering the entire Vercel REST API (deployments, projects, env vars, domains, DNS, aliases, certs, logs, checks, webhooks, edge config, teams) plus a vercel_raw escape hatch and a readonly safety mode.

[npm version] [License: MIT] [GitHub Stars] [GitHub Forks] [GitHub Issues] [Glama Quality]

[TypeScript] [Node.js] [MCP] [Claude Code] [Cursor] [Claude Desktop]

[Instagram] [YouTube] [LinkedIn] [Buy Me A Coffee] [Strat Academy]

Works in any MCP client — Claude Code, Claude Desktop, Cursor, ChatGPT — using a Vercel access token (no OAuth flow required). Ships with an optional /vercel skill that drives the Vercel CLI for terminal deploys.

Why this and not the official one?

Official mcp.vercel.comvercel-mcp-pro
AuthOAuth (approved clients only)Token (works everywhere, self-hosted)
CoverageDocs search, manage projects/deployments, analyze logsFull REST API: env, domains, DNS, aliases, certs, webhooks, edge config, checks, log drains…
Escape hatch—vercel_raw → any endpoint, 100% coverage
Safety—VERCEL_READONLY=true blocks all writes

Install

bash
npx -y vercel-mcp-pro

Or clone and build locally:

bash
git clone https://github.com/helbertparanhos/vercel-mcp-procd vercel-mcp-pronpm install && npm run build

Configuration

  1. Create a token at https://vercel.com/account/settings/tokens.
  2. Copy .env.example → .env and fill it in:
VariableRequiredDescription
VERCEL_TOKEN✅Personal or team access token.
VERCEL_TEAM_ID—Default team scope (injected as ?teamId). Leave empty for personal account.
VERCEL_TEAM_SLUG—Scope by team slug (alternative to VERCEL_TEAM_ID).
VERCEL_READONLY—true blocks all write/delete tools (and only allows vercel_raw GETs).
VERCEL_DISABLE_RAW—true removes the vercel_raw escape hatch.
VERCEL_TIMEOUT_MS—Request timeout (default 60000).
VERCEL_MAX_RETRIES—Retries on 429/5xx/network (default 3).

Add to your client

Claude Code

bash
claude mcp add vercel-mcp-pro -- npx -y vercel-mcp-pro

Or in this project's .claude/settings.json → mcpServers:

json
"vercel": {  "command": "node",  "args": ["projects/vercel-mcp-pro/dist/index.js"],  "env": {    "VERCEL_TOKEN": "your_token",    "VERCEL_TEAM_ID": "team_xxx"  }}

Claude Desktop

%APPDATA%\Claude\claude_desktop_config.json (Windows) / ~/Library/Application Support/Claude/claude_desktop_config.json (Mac):

json
{  "mcpServers": {    "vercel": {      "command": "npx",      "args": ["-y", "vercel-mcp-pro"],      "env": { "VERCEL_TOKEN": "your_token", "VERCEL_TEAM_ID": "team_xxx" }    }  }}

Cursor

Paste the same config into .cursor/mcp.json.

Tools (70)

Deployments (11)

list_deployments · get_deployment · create_deployment · cancel_deployment · delete_deployment · get_deployment_events · list_deployment_files · get_deployment_file_contents · promote_deployment · rollback_deployment · get_promote_aliases

Projects (7)

list_projects · get_project · create_project · update_project · delete_project · pause_project · unpause_project

Environment Variables (6)

list_env_vars · get_env_var · create_env_var · bulk_create_env_vars · update_env_var · delete_env_var

Domains (9)

list_domains · get_domain · get_domain_config · add_domain · verify_domain · remove_domain · list_project_domains · add_project_domain · remove_project_domain

DNS (4)

list_dns_records · create_dns_record · update_dns_record · delete_dns_record

Aliases (4)

list_aliases · get_alias · assign_alias · delete_alias

Certificates (4)

get_cert · issue_cert · upload_cert · remove_cert

Logs (2)

get_build_logs · get_runtime_logs

Checks (5)

list_checks · get_check · create_check · update_check · rerequest_check

Webhooks (3)

list_webhooks · create_webhook · delete_webhook

Edge Config (6)

list_edge_configs · get_edge_config · get_edge_config_items · create_edge_config · update_edge_config_items · delete_edge_config

Teams & User (4)

get_user · list_teams · get_team · list_team_members

Integrations & Log Drains (4)

list_integrations · list_log_drains · create_log_drain · delete_log_drain

Escape hatch (1)

vercel_raw — call any Vercel REST endpoint (method + full versioned path + params + body). Guarantees 100% coverage even for niche/new endpoints (marketplace, sandboxes, feature-flags, access-groups, rolling-release…). Auto-injects your team scope; honored by readonly mode for GETs.

Common recipes

Diagnose a failed deploy

list_deployments(projectId:"my-app", state:"ERROR")  →  get_build_logs(idOrUrl:"dpl_...")

Ship a preview to production (no rebuild)

promote_deployment(projectId:"my-app", deploymentId:"dpl_...")

Roll back fast

rollback_deployment(projectId:"my-app", deploymentId:"dpl_previous")

Add an env var to all environments

create_env_var(projectId:"my-app", key:"API_KEY", value:"…", target:["production","preview","development"])

Anything not covered

vercel_raw(method:"GET", path:"/v1/security/firewall/config", params:{ projectId:"my-app" })

The /vercel CLI skill (bundled)

For terminal-driven deploys, this repo also ships a Claude Code skill in skill/ that drives the official Vercel CLI (vercel deploy, vercel logs, vercel env, vercel rollback). The MCP gives full API coverage in any client; the skill gives the smoothest git push → deploy loop in the terminal. They complement each other — see skill/SKILL.md.

Safety

  • VERCEL_READONLY=true blocks every write/delete tool — only reads and vercel_raw GETs run. Ideal for audits and exploration.
  • The vercel_raw path is sanitized (must start with a version segment like /v9/…; no scheme/host/traversal/control chars) and constrained to api.vercel.com.
  • Auth, retries (429 with Retry-After, 5xx, network) and rate-limiting are handled for you. The token only ever travels in the Authorization header — never in a query string or log.

Security model — read this before trusting the guards

  • VERCEL_READONLY blocks mutations, not reads of secrets. Read tools like list_env_vars (with decrypt:true), get_env_var and get_edge_config_items return decrypted values and still run in readonly mode — that's their purpose. If your environment must never surface secrets to the model, don't expose those tools / run against a least-privilege token.
  • VERCEL_TEAM_ID is a convenience scope, not a security boundary. It sets the default team, but a caller can pass a different teamId/slug per call (including via vercel_raw). The real boundary is the token's own scope — use a token limited to the team/projects you intend to automate.
  • Treat the token as production credentials. It grants the same access as your Vercel account/team. Prefer a scoped token, keep it in .env (gitignored) or your client's secret store, and rotate it if it's ever shared or pasted into a chat.

License

MIT © Helbert Paranhos / Strat Academy

Source: README.md at commit 619738e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Vercel integrations