Labsco
openai logo

vercel-api

✓ Official4,081

by openai · part of openai/plugins

Vercel app and REST API expert guidance. Use when the agent needs live access to Vercel projects, deployments, environment variables, domains, logs, or documentation through the connected Vercel app or REST API.

🧩 One of 7 skills in the openai/plugins package — works on its own, and pairs well with its siblings.

This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.

Vercel API — Connected App & REST API

You are an expert in the Vercel platform APIs. This plugin uses the connected Vercel app for live, authenticated access to Vercel resources, and this skill also covers the direct REST API when connector coverage is not enough.

Connected Vercel App

The plugin's .app.json points Codex at the connected Vercel app. The linked Vercel documentation still describes the underlying MCP server and REST API, and this skill uses that documentation where it helps explain capabilities and fallback paths.

Connection

URL:       https://mcp.vercel.com
Transport: Streamable HTTP
Auth:      OAuth 2.1 (automatic — agent is prompted to authorize on first use)

On first connection the agent will open a browser-based OAuth flow to grant read access to your Vercel account. Subsequent sessions reuse the stored token.

Available MCP Tools

The connected Vercel app exposes these tool categories:

CategoryCapabilities
DocumentationSearch and navigate Vercel docs, Next.js docs, AI SDK docs
ProjectsList projects, get project details, view project settings
DeploymentsList deployments, inspect deployment details, view build output
LogsQuery deployment logs, function invocation logs, build logs
DomainsList domains, check domain configuration and DNS status
Environment VariablesList env vars per project and environment
TeamsList teams, view team members and settings

Usage Patterns

Diagnose a failed deployment

1. List recent deployments → find the failed one
2. Inspect deployment → get error summary
3. Query build logs → identify root cause
4. Cross-reference with vercel-functions skill for runtime fixes

Audit project configuration

1. Get project details → check framework, build settings, root directory
2. List environment variables → verify required vars are set per environment
3. List domains → confirm production domain is correctly assigned
4. Check deployment logs → look for runtime warnings

Search documentation

1. Search Vercel docs for a topic → get relevant pages
2. Read specific doc page → extract configuration examples
3. Cross-reference with bundled skills for deeper guidance

Debug function performance

1. Query function logs → find slow invocations
2. Inspect deployment → check function region, runtime, memory
3. Cross-reference with vercel-functions skill for optimization patterns

REST API (Direct Access)

When the MCP server doesn't cover a use case (or for write operations), use the Vercel REST API directly with @vercel/sdk or curl.

Authentication

# Bearer token auth (personal token or team token)
curl -H "Authorization: Bearer $VERCEL_TOKEN" https://api.vercel.com/v9/projects
// @vercel/sdk
import { Vercel } from '@vercel/sdk';

const vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });

Key Endpoints

EndpointMethodPurpose
/v9/projectsGETList all projects
/v9/projects/:idGETGet project details
/v13/deploymentsGETList deployments
/v13/deploymentsPOSTCreate a deployment
/v13/deployments/:idGETGet deployment details
/v9/projects/:id/envGETList environment variables
/v9/projects/:id/envPOSTCreate environment variable
/v6/domainsGETList domains
/v6/domainsPOSTAdd a domain
/v1/edge-configGETList Edge Configs
/v1/firewallGETList firewall rules
/v1/drainsGETList all drains
/v1/drainsPOSTCreate a drain
/v1/drains/:id/testPOSTTest a drain
/v1/drains/:idPATCHUpdate a drain
/v1/drains/:idDELETEDelete a drain
/v3/deployments/:id/eventsGETStream runtime logs

SDK Examples

List deployments

import { Vercel } from '@vercel/sdk';

const vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });

const { deployments } = await vercel.deployments.list({
  projectId: 'prj_xxxxx',
  limit: 10,
});

for (const d of deployments) {
  console.log(`${d.url} — ${d.state} — ${d.created}`);
}

Manage environment variables

// List env vars
const { envs } = await vercel.projects.getProjectEnv({
  idOrName: 'my-project',
});

// Create env var
await vercel.projects.createProjectEnv({
  idOrName: 'my-project',
  requestBody: {
    key: 'DATABASE_URL',
    value: 'postgres://...',
    target: ['production', 'preview'],
    type: 'encrypted',
  },
});

Get project domains

const { domains } = await vercel.projects.getProjectDomains({
  idOrName: 'my-project',
});

for (const d of domains) {
  console.log(`${d.name} — verified: ${d.verified}`);
}

Observability APIs

Drains (/v1/drains)

Drains forward logs, traces, speed insights, and web analytics data to external endpoints. All drain management is REST API or Dashboard (https://vercel.com/dashboard/{team}/~/settings/log-drains) only — no CLI commands exist.

import { Vercel } from '@vercel/sdk';

const vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });

// List all drains
const drains = await vercel.logDrains.getLogDrains({ teamId: 'team_xxxxx' });

// Create a drain
await vercel.logDrains.createLogDrain({
  teamId: 'team_xxxxx',
  requestBody: {
    url: 'https://your-endpoint.example.com/logs',
    type: 'json',
    sources: ['lambda', 'edge', 'static'],
    environments: ['production'],
  },
});

For payload schemas (JSON, NDJSON), signature verification, and vendor integration setup, see ⤳ skill: observability.

Runtime Logs (/v3/deployments/:id/events)

Stream runtime logs for a deployment. The response uses application/stream+json — each line is a separate JSON object. Always set a timeout to avoid hanging on long-lived streams.

// Query via MCP (recommended for agents)
// Use the get_runtime_logs MCP tool for structured log access

// Direct REST alternative (streaming)
const res = await fetch(
  `https://api.vercel.com/v3/deployments/${deploymentId}/events`,
  { headers: { Authorization: `Bearer ${process.env.VERCEL_TOKEN}` } }
);
// Parse as NDJSON — see observability skill for streaming code patterns

vercel api CLI Command (January 2026)

The vercel api command gives agents direct access to the full Vercel REST API from the terminal with no additional configuration. It uses the CLI's existing authentication, so agents can call any endpoint immediately.

# Call any REST endpoint directly
vercel api GET /v9/projects
vercel api GET /v13/deployments
vercel api POST /v9/projects/:id/env --body '{"key":"MY_VAR","value":"val","target":["production"]}'

This bridges the gap between the read-only MCP server and the full REST API — agents can perform write operations without needing @vercel/sdk or manual curl with tokens.

When to Use MCP vs CLI vs REST API

ScenarioUseWhy
Agent needs to inspect/read Vercel stateMCP serverOAuth, structured tools, no token management
Agent needs to deploy or mutate stateCLI (vercel deploy, vercel env add)Full write access, well-tested
Agent needs ad-hoc API accessvercel apiDirect REST from terminal, no token setup
Programmatic access from app codeREST API / @vercel/sdkTypeScript types, fine-grained control
CI/CD pipeline automationCLI + VERCEL_TOKENScriptable, --prebuilt for speed
Searching Vercel documentationMCP serverIndexed docs, AI-optimized results

Cross-References

  • CLI operations⤳ skill: vercel-cli
  • Function configuration⤳ skill: vercel-functions
  • Storage APIs⤳ skill: vercel-storage
  • Firewall rules⤳ skill: vercel-firewall
  • AI SDK MCP client⤳ skill: ai-sdk (section: MCP Integration)
  • Drains, log streaming, analytics export⤳ skill: observability

Official Documentation