Vercel plugin

The Vercel plugin lets a Vaubaan Gateway mission use Vercel without handing the agent a credential. Runtime hosting plane — projects, deployments, logs, env vars, custom domains, firewall, preview comments.

One account is one Vercel access token pinned to a team; one resource is one project of that team. The environment is not a label you set: Vercel's own production, preview and development environments are read from each call, so the same project can run freely on preview and ask first on production.

Permissions

Each permission is a named risk of the plugin's catalog: a mission holds an explicit list of them, never "all". The severity is computed from the permission's six axes (undo, blast radius, data, cost, visible to, lasts); nothing is decided from it.

PermissionWhat it allowsSeverityWhy it is a risk
vercel.read-accountRead account / team / project metadatalowInventory of teams, projects, deployments, build/runtime logs, env-var keys (encrypted), domains, toolbar threads. Surface of attack is negligible : metadata only, no plaintext secret leaks. This permission is the always-on baseline that every other read assumes.
vercel.read-deploymentRead deployments + build/runtime logslowRuntime logs can carry app data (PII if the app logs by accident, OWASP LLM01 surface via tokens injected into logs). Standard posture for a coding agent in debug mode but still distinct from pure metadata read.
vercel.read-env-varRead env vars (encrypted values only)lowListing of env-var keys with values returned encrypted by Vercel. No direct secret exfiltration possible. Discriminates from the plaintext variant which is the higher-severity write.
vercel.read-env-var-plaintextRead env vars in plaintext (`decrypt=true`)medium`list_env_vars` with `decrypt=true` returns Stripe keys, DB URLs, JWT signing secrets etc. in the clear. Equivalent to a full credentials compromise on the project. Distinct risk class from the encrypted read.
vercel.fetch-deployment-urlHTTP fetch to a Vercel deployment URLlow`web_fetch_vercel_url` makes an outbound HTTP request against a deployment URL. Logs an access on the target side, may consume bandwidth. Not a major security risk but worth a dedicated permission for audit-log granularity.
vercel.mint-bypass-tokenMint a deployment-protection bypass tokenlowCredential creation. The token bypasses SSO / Password Gate on a single deployment URL with a short TTL. Exposing the URL out-of-band bypasses the project deployment-protection.
vercel.deployTrigger a deploymentmedium (high on prod; only for preview, development, prod)Preview / development builds have no prod impact and are reversible. Production deploys are public and costly to roll back (prod alias re-pointed, CDN cache invalidated). The vector_overrides for prod reflect the higher blast and visibility.
vercel.toolbar-writeWrite / edit / react on toolbar threadslowUI comment surface on deployment previews. Visible to the team only, reversible via delete/edit, zero effect on build / runtime / routing. Semantically a mutate but the risk is minimal.
vercel.env-var-writeWrite / update / delete env varsmedium (high on prod; only for preview, development, prod)Affects future builds on the targeted env. The stored value is a secret on the Vercel side. On prod a bad value breaks the service at the next deploy ; an attacker-injected value exfiltrates traffic or takes over the app. The vector_overrides for prod reflect the costly reversibility.
vercel.env-var-fan-outWrite env var on every env in one call (prod included)high`upsert_env_var target=['production','preview','development']` (or target omitted = all 3 by Vercel default), and `delete_env_var` (whose upstream API removes the var from every env it lives in regardless of the Vaubaan hint), touch all 3 envs in a single tool call. Treated as its own permission so the agent who only holds `env-var-write` on preview does NOT silently escalate to prod.
vercel.project-settings-writeUpdate project settings (framework, build cmd, node version, root dir)mediumModifies the build pipeline for *every* future deployment of all 3 envs. A bad install / build command breaks preview AND prod at the next push. Posture-shift on the CI chain.
vercel.firewall-readRead firewall / WAF configurationlowExposes the full WAF posture of a project : custom rules, IP blocking entries, managed rulesets, OWASP CRS settings, and the firewallEnabled toggle. Metadata-only (no mutations), but reveals the security policy surface — an attacker who sees the rules can craft bypasses.
vercel.firewall-writeToggle the project firewall on/offmediumFlipping the WAF off exposes the project to all unfiltered traffic. Flipping it on may block legitimate visitors if rules are misconfigured. Posture-shift affecting production traffic immediately.
vercel.firewall-rule-writeCreate / update / remove a custom firewall rulemediumA bad rule can silently expose production to attacks (too permissive) or block legitimate traffic (too restrictive). Each rule is project-scoped and applies to all deployments. Posture-shift with public-facing impact on every request.
vercel.ip-rule-writeAdd / remove an IP blocking rulemediumIP rules directly control which source IPs can reach the project. A wrong deny blocks paying customers ; a wrong bypass lets an attacker in. Immediate public-facing posture-shift.
vercel.domain-writeAttach / verify / detach a custom domainhighExternal DNS coupling. Attach → public routing (can hijack traffic from a domain the org controls). Detach → breaks the public service if the domain is prod. Verify is idempotent but folded into the same risk for UX simplicity.
vercel.uncategorized-writeUncategorized Vercel writemedium (the catch-all: touched only by a call no other permission covers)Catch-all for writes that have not been explicitly categorised. If observed in production, signals that a tool was added without a matching catalog entry — the mission creator must opt in explicitly (no implicit accept).

Presets

A preset pre-fills the permissions of a mission for one account, with a limit per period, a rate and whether each permission runs freely or asks the mission creator first. The person creating the mission adjusts it; the mission stores the explicit list.

Read-only

read-only — Inspect projects, deployments, logs, env-var keys and the firewall; no write.

PermissionWhat it allowsLimit per periodRateRuns
vercel.read-accountRead account / team / project metadata2000120 per minuteruns freely
vercel.read-deploymentRead deployments + build/runtime logs2000120 per minuteruns freely
vercel.read-env-varRead env vars (encrypted values only)50030 per minuteruns freely
vercel.fetch-deployment-urlHTTP fetch to a Vercel deployment URL30030 per minuteruns freely
vercel.firewall-readRead firewall / WAF configuration20030 per minuteruns freely

Developer

developer — One mission per code project — preview and development deploys, logs, preview env vars, toolbar comments; nothing that touches production configuration.

PermissionWhat it allowsLimit per periodRateRuns
vercel.read-accountRead account / team / project metadata5000120 per minuteruns freely
vercel.read-deploymentRead deployments + build/runtime logs5000120 per minuteruns freely
vercel.read-env-varRead env vars (encrypted values only)100060 per minuteruns freely
vercel.fetch-deployment-urlHTTP fetch to a Vercel deployment URL100060 per minuteruns freely
vercel[preview].deploy20010 per minuteruns freely
vercel[development].deploy20010 per minuteruns freely
vercel[preview].env-var-write20020 per minuteruns freely
vercel[development].env-var-write20020 per minuteruns freely
vercel.toolbar-writeWrite / edit / react on toolbar threads50030 per minuteruns freely
vercel.mint-bypass-tokenMint a deployment-protection bypass token505 per minuteruns freely

Operator

operator — Everything a developer can do, plus production deploys, production env vars, project settings, domains and firewall — production-affecting changes asking first.

PermissionWhat it allowsLimit per periodRateRuns
vercel.read-accountRead account / team / project metadata5000120 per minuteruns freely
vercel.read-deploymentRead deployments + build/runtime logs5000120 per minuteruns freely
vercel.read-env-varRead env vars (encrypted values only)100060 per minuteruns freely
vercel.read-env-var-plaintextRead env vars in plaintext (`decrypt=true`)205 per minuteask me first
vercel.fetch-deployment-urlHTTP fetch to a Vercel deployment URL100060 per minuteruns freely
vercel[preview].deploy20010 per minuteruns freely
vercel[development].deploy20010 per minuteruns freely
vercel[prod].deploy505 per minuteask me first
vercel[preview].env-var-write20020 per minuteruns freely
vercel[development].env-var-write20020 per minuteruns freely
vercel[prod].env-var-write505 per minuteask me first
vercel.env-var-fan-outWrite env var on every env in one call (prod included)505 per minuteask me first
vercel.project-settings-writeUpdate project settings (framework, build cmd, node version, root dir)505 per minuteask me first
vercel.domain-writeAttach / verify / detach a custom domain205 per minuteask me first
vercel.firewall-readRead firewall / WAF configuration50030 per minuteruns freely
vercel.firewall-writeToggle the project firewall on/off205 per minuteask me first
vercel.firewall-rule-writeCreate / update / remove a custom firewall rule5010 per minuteask me first
vercel.ip-rule-writeAdd / remove an IP blocking rule10020 per minuteask me first
vercel.toolbar-writeWrite / edit / react on toolbar threads50030 per minuteruns freely
vercel.mint-bypass-tokenMint a deployment-protection bypass token10010 per minuteruns freely

Tools

ToolWhat it does
vercel__search_vercel_documentationSearch the Vercel documentation
vercel__deploy_to_vercelDeploy the project
vercel__list_projectsList projects
vercel__get_projectRead a project
vercel__list_deploymentsList deployments
vercel__get_deploymentRead a deployment
vercel__get_deployment_build_logsRead the build logs of a deployment
vercel__get_runtime_logsRead runtime logs
vercel__get_access_to_vercel_urlCreate a link that bypasses deployment protection
vercel__web_fetch_vercel_urlFetch a deployment URL
vercel__list_teamsList teams
vercel__check_domain_availability_and_priceCheck the availability and price of a domain
vercel__list_toolbar_threadsList toolbar comment threads
vercel__get_toolbar_threadRead a toolbar comment thread
vercel__change_toolbar_thread_resolve_statusResolve or reopen a toolbar thread
vercel__reply_to_toolbar_threadReply to a toolbar thread
vercel__edit_toolbar_messageEdit a toolbar message
vercel__add_toolbar_reactionReact to a toolbar message
vercel__update_project_settingsChange the settings of a project
vercel__upsert_env_varSet an environment variable
vercel__list_env_varsList environment variables
vercel__delete_env_varDelete an environment variable
vercel__list_project_domainsList the domains of a project
vercel__add_project_domainAttach a domain to a project
vercel__verify_project_domainRe-check a domain of a project
vercel__remove_project_domainDetach a domain from a project
vercel__get_firewall_configRead the firewall configuration
vercel__toggle_firewallTurn the firewall on or off
vercel__upsert_firewall_ruleSet a firewall rule
vercel__remove_firewall_ruleRemove a firewall rule
vercel__manage_ip_blockingChange an IP blocking rule

Health

Health: not enough reports yet. A plugin version is deemed validated by the community with at least 200 reports and 90 % of them successful, over the last 90 days, as reported by the instances whose operators turned community telemetry on. It is a community signal, not a security guarantee.

Last changed 2026-10-16. This page as Markdown: /plugins/vercel.md