mcpField
V
vercel

vercel

github.com/acedatacloudCloud & DevOps17167 installsUpdated today
Repository

About vercel

A command-line skill for using the Vercel REST API with curl and jq. It covers project and deployment inspection, build diagnostics, and domain checks, with safeguards for sensitive environment variables and production redeployments.

Key features

  1. 01List projects and deployments
  2. 02Inspect deployment status and details
  3. 03Read build and runtime logs
  4. 04Check project domains
  5. 05Handle team-scoped API requests

Use cases

  1. 01Review recent deployments
  2. 02Diagnose a failed build
  3. 03Check domain verification
  4. 04Inspect project deployment state

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/acedatacloud/skills --skill vercel

After installing, type/vercelin Claude Code to confirm it loaded.

Details

From the project README

Call the Vercel REST API with curl + jq. The user's token is in $VERCEL_ACCESS_TOKEN; every call needs Authorization: Bearer $VERCEL_ACCESS_TOKEN. Base URL: https://api.vercel.com. If the resource is team-scoped, append ?teamId=$VERCEL_TEAM_ID (set only when the user connected a team token).

Errors come back as {"error":{"code","message"}} — show message verbatim. 403 forbidden usually means the token can't see that team/project → re-connect with the right scope.

Helper for the optional team param:

TEAM=""; [ -n "$VERCEL_TEAM_ID" ] && TEAM="?teamId=$VERCEL_TEAM_ID"
AUTH="Authorization: Bearer $VERCEL_ACCESS_TOKEN"

Projects & deployments

# Projects
curl -sS -H "$AUTH" "https://api.vercel.com/v9/projects$TEAM" \
  | jq '.projects[] | {name, framework, latestProduction: .latestDeployments[0].url}'

# Recent deployments (optionally filter by ?projectId=… or &state=ERROR)
curl -sS -H "$AUTH" "https://api.vercel.com/v6/deployments${TEAM:-?}&limit=20" \
  | jq '.deployments[] | {uid, name, url, state, readyState, created}'

Diagnose a failed build

# Deployment detail
curl -sS -H "$AUTH" "https://api.vercel.com/v13/deployments/DEPLOYMENT_ID${TEAM:+&teamId=$VERCEL_TEAM_ID}" \
  | jq '{name, url, state: .readyState, error: .errorMessage}'

# Build / runtime events (the actual logs)
curl -sS -H "$AUTH" "https://api.vercel.com/v3/deployments/DEPLOYMENT_ID/events${TEAM:+?teamId=$VERCEL_TEAM_ID}" \
  | jq -r '.[] | select(.type=="stdout" or .type=="stderr") | .payload.text'

Domains & redeploy

# Project domains
curl -sS -H "$AUTH" "https://api.vercel.com/v9/projects/PROJECT_ID/domains${TEAM:+?teamId=$VERCEL_TEAM_ID}" \
  | jq '.domains[] | {name, verified}'

To redeploy, POST to https://api.vercel.com/v13/deployments with a deploymentId (or git source) body — confirm with the user first, it ships to production.

Gotchas

  • Never print env-var values. Listing project env vars returns metadata; the /v1/.../env/{id} decrypt route returns secrets — don't call it unless the user explicitly asks, and even then summarize, don't echo.
  • Deployment state/readyState: QUEUED → BUILDING → READY | ERROR | CANCELED.
  • created/ready are epoch ms — divide by 1000 for human time.

Comments

Markdown supported