Vercel Mcp Pro — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Vercel Mcp Pro (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.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.
Official mcp.vercel.com | vercel-mcp-pro | |
|---|---|---|
| Auth | OAuth (approved clients only) | Token (works everywhere, self-hosted) |
| Coverage | Docs search, manage projects/deployments, analyze logs | Full 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 |
npx -y vercel-mcp-proOr clone and build locally:
git clone https://github.com/helbertparanhos/vercel-mcp-pro
cd vercel-mcp-pro
npm install && npm run build.env.example → .env and fill it in:| Variable | Required | Description |
|---|---|---|
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). |
claude mcp add vercel-mcp-pro -- npx -y vercel-mcp-proOr in this project's .claude/settings.json → mcpServers:
"vercel": {
"command": "node",
"args": ["projects/vercel-mcp-pro/dist/index.js"],
"env": {
"VERCEL_TOKEN": "your_token",
"VERCEL_TEAM_ID": "team_xxx"
}
}%APPDATA%\Claude\claude_desktop_config.json (Windows) / ~/Library/Application Support/Claude/claude_desktop_config.json (Mac):
{
"mcpServers": {
"vercel": {
"command": "npx",
"args": ["-y", "vercel-mcp-pro"],
"env": { "VERCEL_TOKEN": "your_token", "VERCEL_TEAM_ID": "team_xxx" }
}
}
}Paste the same config into .cursor/mcp.json.
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
list_projects · get_project · create_project · update_project · delete_project · pause_project · unpause_project
list_env_vars · get_env_var · create_env_var · bulk_create_env_vars · update_env_var · delete_env_var
list_domains · get_domain · get_domain_config · add_domain · verify_domain · remove_domain · list_project_domains · add_project_domain · remove_project_domain
list_dns_records · create_dns_record · update_dns_record · delete_dns_record
list_aliases · get_alias · assign_alias · delete_alias
get_cert · issue_cert · upload_cert · remove_cert
get_build_logs · get_runtime_logs
list_checks · get_check · create_check · update_check · rerequest_check
list_webhooks · create_webhook · delete_webhook
list_edge_configs · get_edge_config · get_edge_config_items · create_edge_config · update_edge_config_items · delete_edge_config
get_user · list_teams · get_team · list_team_members
list_integrations · list_log_drains · create_log_drain · delete_log_drain
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.
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" })/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.
VERCEL_READONLY=true blocks every write/delete tool — only reads and vercel_raw GETs run. Ideal for audits and exploration.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.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.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.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..env (gitignored) or your client's secret store, and rotate it if it's ever shared or pasted into a chat.MIT © Helbert Paranhos / Strat Academy
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.