[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K1WN7AYB4Y20RJD2PXB036":3,"skill-same:01M6K1WN7AYB4Y20RJD2PXB036":117},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":94,"commitSha":95,"skillDirectory":96,"forksCount":97,"repositoryHtmlUrl":98,"repositoryHomepageUrl":6,"ownerHtmlUrl":99,"ownerBlogUrl":100,"ownerDescription":101,"updatedAt":102,"install":103,"resources":116},"01M6K1WN7AYB4Y20RJD2PXB036","vercel-api",null,"Vercel MCP and REST API expert guidance. Use when the agent needs live access to Vercel projects, deployments, environment variables, domains, logs, or documentation through the MCP server or REST API.","NagyVikt\u002Fcodex-plugins","NagyVikt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F137165288?v=4","01M6K0SJ3R2DAZRJKJJS10VN87","Viktor Nagy","01M6K0SJ9HXN0GBD91QDQ9WNVV",2,"MIT","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-api\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"vercel api","api","vercel","projects","Variables","loading","rest api expert","domains","project","preview","query","expert","MCP","access","rest-api","ci","logs","documentation","workflows","mcp server","2026-11-10 10:12:30",false,"---\nname: vercel-api\ndescription: Vercel MCP and REST API expert guidance. Use when the agent needs live access to Vercel projects, deployments, environment variables, domains, logs, or documentation through the MCP server or REST API.\nmetadata:\n  priority: 7\n  docs:\n    - \"https:\u002F\u002Fvercel.com\u002Fdocs\u002Frest-api\"\n  sitemap: \"https:\u002F\u002Fvercel.com\u002Fsitemap\u002Fdocs.xml\"\n  pathPatterns:\n    - '.mcp.json'\n    - '.vercel\u002Fproject.json'\n  bashPatterns:\n    - '\\bnpm\\s+(install|i|add)\\s+[^\\n]*@vercel\u002Fsdk\\b'\n    - '\\bpnpm\\s+(install|i|add)\\s+[^\\n]*@vercel\u002Fsdk\\b'\n    - '\\bbun\\s+(install|i|add)\\s+[^\\n]*@vercel\u002Fsdk\\b'\n    - '\\byarn\\s+add\\s+[^\\n]*@vercel\u002Fsdk\\b'\n    - '\\bmcp\\.vercel\\.com\\b'\nretrieval:\n  aliases:\n    - vercel rest api\n    - vercel mcp\n    - platform api\n    - vercel sdk\n  intents:\n    - call vercel api\n    - use mcp server\n    - manage deployments via api\n    - query vercel data\n  entities:\n    - MCP\n    - REST API\n    - vercel api\n    - deployments\n    - domains\nchainTo:\n  -\n    pattern: 'vercel\\.deployments\\.(create|list)|vercel\\.projects\\.(create|update)'\n    targetSkill: deployments-cicd\n    message: 'Vercel SDK deployment\u002Fproject operations detected — loading CI\u002FCD guidance for deployment workflows, preview URLs, and promotion strategies.'\n  -\n    pattern: 'mcp\\.vercel\\.com'\n    targetSkill: ai-sdk\n    message: 'Vercel MCP server configuration detected — loading AI SDK guidance for MCP client integration and tool calling patterns.'\n\n---\n\n# Vercel API — MCP Server & REST API\n\nYou are an expert in the Vercel platform APIs. This plugin bundles a connection to the **official Vercel MCP server** (`https:\u002F\u002Fmcp.vercel.com`) which gives agents live, authenticated access to Vercel resources.\n\n## MCP Server (Public Beta)\n\nThe plugin's `.mcp.json` configures the official Vercel MCP server using Streamable HTTP transport with OAuth authentication. The MCP server is in **public beta** — read-only in the initial release. Write operations are on the roadmap. Supported clients: Codex, Cursor, and VS Code.\n\n### Connection\n\n```\nURL:       https:\u002F\u002Fmcp.vercel.com\nTransport: Streamable HTTP\nAuth:      OAuth 2.1 (automatic — agent is prompted to authorize on first use)\n```\n\nOn 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.\n\n### Available MCP Tools\n\nThe Vercel MCP server exposes these tool categories (read-only in initial release):\n\n| Category | Capabilities |\n|----------|-------------|\n| **Documentation** | Search and navigate Vercel docs, Next.js docs, AI SDK docs |\n| **Projects** | List projects, get project details, view project settings |\n| **Deployments** | List deployments, inspect deployment details, view build output |\n| **Logs** | Query deployment logs, function invocation logs, build logs |\n| **Domains** | List domains, check domain configuration and DNS status |\n| **Environment Variables** | List env vars per project and environment |\n| **Teams** | List teams, view team members and settings |\n\n### Usage Patterns\n\n#### Diagnose a failed deployment\n\n```\n1. List recent deployments → find the failed one\n2. Inspect deployment → get error summary\n3. Query build logs → identify root cause\n4. Cross-reference with vercel-functions skill for runtime fixes\n```\n\n#### Audit project configuration\n\n```\n1. Get project details → check framework, build settings, root directory\n2. List environment variables → verify required vars are set per environment\n3. List domains → confirm production domain is correctly assigned\n4. Check deployment logs → look for runtime warnings\n```\n\n#### Search documentation\n\n```\n1. Search Vercel docs for a topic → get relevant pages\n2. Read specific doc page → extract configuration examples\n3. Cross-reference with bundled skills for deeper guidance\n```\n\n#### Debug function performance\n\n```\n1. Query function logs → find slow invocations\n2. Inspect deployment → check function region, runtime, memory\n3. Cross-reference with vercel-functions skill for optimization patterns\n```\n\n## Deploying Your Own MCP Server\n\nUse the `mcp-handler` package (renamed from `@vercel\u002Fmcp-adapter`) to build and deploy custom MCP servers on Vercel with Next.js, Nuxt, or SvelteKit:\n\n```bash\nnpm install mcp-handler\n```\n\nMCP servers deployed on Vercel use **Streamable HTTP** transport (replaced SSE in March 2025 MCP spec) — cuts CPU usage vs SSE with no persistent connections required. Used in production by Zapier, Composio, Vapi, and Solana.\n\nSee [Deploy MCP servers to Vercel](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fmcp\u002Fdeploy-mcp-servers-to-vercel) and [GitHub: mcp-handler](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fmcp-handler).\n\n## REST API (Direct Access)\n\nWhen the MCP server doesn't cover a use case (or for write operations), use the Vercel REST API directly with `@vercel\u002Fsdk` or `curl`.\n\n### Authentication\n\n```bash\n# Bearer token auth (personal token or team token)\ncurl -H \"Authorization: Bearer $VERCEL_TOKEN\" https:\u002F\u002Fapi.vercel.com\u002Fv9\u002Fprojects\n```\n\n```typescript\n\u002F\u002F @vercel\u002Fsdk\nimport { Vercel } from '@vercel\u002Fsdk';\n\nconst vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });\n```\n\n### Key Endpoints\n\n| Endpoint | Method | Purpose |\n|----------|--------|---------|\n| `\u002Fv9\u002Fprojects` | GET | List all projects |\n| `\u002Fv9\u002Fprojects\u002F:id` | GET | Get project details |\n| `\u002Fv13\u002Fdeployments` | GET | List deployments |\n| `\u002Fv13\u002Fdeployments` | POST | Create a deployment |\n| `\u002Fv13\u002Fdeployments\u002F:id` | GET | Get deployment details |\n| `\u002Fv9\u002Fprojects\u002F:id\u002Fenv` | GET | List environment variables |\n| `\u002Fv9\u002Fprojects\u002F:id\u002Fenv` | POST | Create environment variable |\n| `\u002Fv6\u002Fdomains` | GET | List domains |\n| `\u002Fv6\u002Fdomains` | POST | Add a domain |\n| `\u002Fv1\u002Fedge-config` | GET | List Edge Configs |\n| `\u002Fv1\u002Ffirewall` | GET | List firewall rules |\n| `\u002Fv1\u002Fdrains` | GET | List all drains |\n| `\u002Fv1\u002Fdrains` | POST | Create a drain |\n| `\u002Fv1\u002Fdrains\u002F:id\u002Ftest` | POST | Test a drain |\n| `\u002Fv1\u002Fdrains\u002F:id` | PATCH | Update a drain |\n| `\u002Fv1\u002Fdrains\u002F:id` | DELETE | Delete a drain |\n| `\u002Fv3\u002Fdeployments\u002F:id\u002Fevents` | GET | Stream runtime logs |\n\n### SDK Examples\n\n#### List deployments\n\n```typescript\nimport { Vercel } from '@vercel\u002Fsdk';\n\nconst vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });\n\nconst { deployments } = await vercel.deployments.list({\n  projectId: 'prj_xxxxx',\n  limit: 10,\n});\n\nfor (const d of deployments) {\n  console.log(`${d.url} — ${d.state} — ${d.created}`);\n}\n```\n\n#### Manage environment variables\n\n```typescript\n\u002F\u002F List env vars\nconst { envs } = await vercel.projects.getProjectEnv({\n  idOrName: 'my-project',\n});\n\n\u002F\u002F Create env var\nawait vercel.projects.createProjectEnv({\n  idOrName: 'my-project',\n  requestBody: {\n    key: 'DATABASE_URL',\n    value: 'postgres:\u002F\u002F...',\n    target: ['production', 'preview'],\n    type: 'encrypted',\n  },\n});\n```\n\n#### Get project domains\n\n```typescript\nconst { domains } = await vercel.projects.getProjectDomains({\n  idOrName: 'my-project',\n});\n\nfor (const d of domains) {\n  console.log(`${d.name} — verified: ${d.verified}`);\n}\n```\n\n## Observability APIs\n\n### Drains (`\u002Fv1\u002Fdrains`)\n\nDrains forward logs, traces, speed insights, and web analytics data to external endpoints. All drain management is REST API or Dashboard (`https:\u002F\u002Fvercel.com\u002Fdashboard\u002F{team}\u002F~\u002Fsettings\u002Flog-drains`) only — no CLI commands exist.\n\n```typescript\nimport { Vercel } from '@vercel\u002Fsdk';\n\nconst vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });\n\n\u002F\u002F List all drains\nconst drains = await vercel.logDrains.getLogDrains({ teamId: 'team_xxxxx' });\n\n\u002F\u002F Create a drain\nawait vercel.logDrains.createLogDrain({\n  teamId: 'team_xxxxx',\n  requestBody: {\n    url: 'https:\u002F\u002Fyour-endpoint.example.com\u002Flogs',\n    type: 'json',\n    sources: ['lambda', 'edge', 'static'],\n    environments: ['production'],\n  },\n});\n```\n\n> For payload schemas (JSON, NDJSON), signature verification, and vendor integration setup, see `⤳ skill: observability`.\n\n### Runtime Logs (`\u002Fv3\u002Fdeployments\u002F:id\u002Fevents`)\n\nStream runtime logs for a deployment. The response uses `application\u002Fstream+json` — each line is a separate JSON object. Always set a timeout to avoid hanging on long-lived streams.\n\n```typescript\n\u002F\u002F Query via MCP (recommended for agents)\n\u002F\u002F Use the get_runtime_logs MCP tool for structured log access\n\n\u002F\u002F Direct REST alternative (streaming)\nconst res = await fetch(\n  `https:\u002F\u002Fapi.vercel.com\u002Fv3\u002Fdeployments\u002F${deploymentId}\u002Fevents`,\n  { headers: { Authorization: `Bearer ${process.env.VERCEL_TOKEN}` } }\n);\n\u002F\u002F Parse as NDJSON — see observability skill for streaming code patterns\n```\n\n## `vercel api` CLI Command (January 2026)\n\nThe `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.\n\n```bash\n# Call any REST endpoint directly\nvercel api GET \u002Fv9\u002Fprojects\nvercel api GET \u002Fv13\u002Fdeployments\nvercel api POST \u002Fv9\u002Fprojects\u002F:id\u002Fenv --body '{\"key\":\"MY_VAR\",\"value\":\"val\",\"target\":[\"production\"]}'\n```\n\nThis bridges the gap between the read-only MCP server and the full REST API — agents can perform write operations without needing `@vercel\u002Fsdk` or manual `curl` with tokens.\n\n## When to Use MCP vs CLI vs REST API\n\n| Scenario | Use | Why |\n|----------|-----|-----|\n| Agent needs to inspect\u002Fread Vercel state | **MCP server** | OAuth, structured tools, no token management |\n| Agent needs to deploy or mutate state | **CLI** (`vercel deploy`, `vercel env add`) | Full write access, well-tested |\n| Agent needs ad-hoc API access | **`vercel api`** | Direct REST from terminal, no token setup |\n| Programmatic access from app code | **REST API \u002F @vercel\u002Fsdk** | TypeScript types, fine-grained control |\n| CI\u002FCD pipeline automation | **CLI + VERCEL_TOKEN** | Scriptable, `--prebuilt` for speed |\n| Searching Vercel documentation | **MCP server** | Indexed docs, AI-optimized results |\n\n## Cross-References\n\n- **CLI operations** → `⤳ skill: vercel-cli`\n- **Function configuration** → `⤳ skill: vercel-functions`\n- **Storage APIs** → `⤳ skill: vercel-storage`\n- **Firewall rules** → `⤳ skill: vercel-firewall`\n- **AI SDK MCP client** → `⤳ skill: ai-sdk` (section: MCP Integration)\n- **Drains, log streaming, analytics export** → `⤳ skill: observability`\n\n## Official Documentation\n\n- [Vercel MCP](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fmcp)\n- [Vercel REST API](https:\u002F\u002Fvercel.com\u002Fdocs\u002Frest-api\u002Freference)\n- [@vercel\u002Fsdk](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@vercel\u002Fsdk)\n- [MCP Authorization Spec](https:\u002F\u002Fspec.modelcontextprotocol.io)\n- [GitHub: Vercel SDK](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fsdk)\n","# Vercel API — MCP Server & REST API\n\nYou are an expert in the Vercel platform APIs. This plugin bundles a connection to the **official Vercel MCP server** (`https:\u002F\u002Fmcp.vercel.com`) which gives agents live, authenticated access to Vercel resources.\n\n## MCP Server (Public Beta)\n\nThe plugin's `.mcp.json` configures the official Vercel MCP server using Streamable HTTP transport with OAuth authentication. The MCP server is in **public beta** — read-only in the initial release. Write operations are on the roadmap. Supported clients: Codex, Cursor, and VS Code.\n\n### Connection\n\n```\nURL:       https:\u002F\u002Fmcp.vercel.com\nTransport: Streamable HTTP\nAuth:      OAuth 2.1 (automatic — agent is prompted to authorize on first use)\n```\n\nOn 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.\n\n### Available MCP Tools\n\nThe Vercel MCP server exposes these tool categories (read-only in initial release):\n\n| Category | Capabilities |\n|----------|-------------|\n| **Documentation** | Search and navigate Vercel docs, Next.js docs, AI SDK docs |\n| **Projects** | List projects, get project details, view project settings |\n| **Deployments** | List deployments, inspect deployment details, view build output |\n| **Logs** | Query deployment logs, function invocation logs, build logs |\n| **Domains** | List domains, check domain configuration and DNS status |\n| **Environment Variables** | List env vars per project and environment |\n| **Teams** | List teams, view team members and settings |\n\n### Usage Patterns\n\n#### Diagnose a failed deployment\n\n```\n1. List recent deployments → find the failed one\n2. Inspect deployment → get error summary\n3. Query build logs → identify root cause\n4. Cross-reference with vercel-functions skill for runtime fixes\n```\n\n#### Audit project configuration\n\n```\n1. Get project details → check framework, build settings, root directory\n2. List environment variables → verify required vars are set per environment\n3. List domains → confirm production domain is correctly assigned\n4. Check deployment logs → look for runtime warnings\n```\n\n#### Search documentation\n\n```\n1. Search Vercel docs for a topic → get relevant pages\n2. Read specific doc page → extract configuration examples\n3. Cross-reference with bundled skills for deeper guidance\n```\n\n#### Debug function performance\n\n```\n1. Query function logs → find slow invocations\n2. Inspect deployment → check function region, runtime, memory\n3. Cross-reference with vercel-functions skill for optimization patterns\n```\n\n## Deploying Your Own MCP Server\n\nUse the `mcp-handler` package (renamed from `@vercel\u002Fmcp-adapter`) to build and deploy custom MCP servers on Vercel with Next.js, Nuxt, or SvelteKit:\n\n```bash\nnpm install mcp-handler\n```\n\nMCP servers deployed on Vercel use **Streamable HTTP** transport (replaced SSE in March 2025 MCP spec) — cuts CPU usage vs SSE with no persistent connections required. Used in production by Zapier, Composio, Vapi, and Solana.\n\nSee [Deploy MCP servers to Vercel](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fmcp\u002Fdeploy-mcp-servers-to-vercel) and [GitHub: mcp-handler](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fmcp-handler).\n\n## REST API (Direct Access)\n\nWhen the MCP server doesn't cover a use case (or for write operations), use the Vercel REST API directly with `@vercel\u002Fsdk` or `curl`.\n\n### Authentication\n\n```bash\n# Bearer token auth (personal token or team token)\ncurl -H \"Authorization: Bearer $VERCEL_TOKEN\" https:\u002F\u002Fapi.vercel.com\u002Fv9\u002Fprojects\n```\n\n```typescript\n\u002F\u002F @vercel\u002Fsdk\nimport { Vercel } from '@vercel\u002Fsdk';\n\nconst vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });\n```\n\n### Key Endpoints\n\n| Endpoint | Method | Purpose |\n|----------|--------|---------|\n| `\u002Fv9\u002Fprojects` | GET | List all projects |\n| `\u002Fv9\u002Fprojects\u002F:id` | GET | Get project details |\n| `\u002Fv13\u002Fdeployments` | GET | List deployments |\n| `\u002Fv13\u002Fdeployments` | POST | Create a deployment |\n| `\u002Fv13\u002Fdeployments\u002F:id` | GET | Get deployment details |\n| `\u002Fv9\u002Fprojects\u002F:id\u002Fenv` | GET | List environment variables |\n| `\u002Fv9\u002Fprojects\u002F:id\u002Fenv` | POST | Create environment variable |\n| `\u002Fv6\u002Fdomains` | GET | List domains |\n| `\u002Fv6\u002Fdomains` | POST | Add a domain |\n| `\u002Fv1\u002Fedge-config` | GET | List Edge Configs |\n| `\u002Fv1\u002Ffirewall` | GET | List firewall rules |\n| `\u002Fv1\u002Fdrains` | GET | List all drains |\n| `\u002Fv1\u002Fdrains` | POST | Create a drain |\n| `\u002Fv1\u002Fdrains\u002F:id\u002Ftest` | POST | Test a drain |\n| `\u002Fv1\u002Fdrains\u002F:id` | PATCH | Update a drain |\n| `\u002Fv1\u002Fdrains\u002F:id` | DELETE | Delete a drain |\n| `\u002Fv3\u002Fdeployments\u002F:id\u002Fevents` | GET | Stream runtime logs |\n\n### SDK Examples\n\n#### List deployments\n\n```typescript\nimport { Vercel } from '@vercel\u002Fsdk';\n\nconst vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });\n\nconst { deployments } = await vercel.deployments.list({\n  projectId: 'prj_xxxxx',\n  limit: 10,\n});\n\nfor (const d of deployments) {\n  console.log(`${d.url} — ${d.state} — ${d.created}`);\n}\n```\n\n#### Manage environment variables\n\n```typescript\n\u002F\u002F List env vars\nconst { envs } = await vercel.projects.getProjectEnv({\n  idOrName: 'my-project',\n});\n\n\u002F\u002F Create env var\nawait vercel.projects.createProjectEnv({\n  idOrName: 'my-project',\n  requestBody: {\n    key: 'DATABASE_URL',\n    value: 'postgres:\u002F\u002F...',\n    target: ['production', 'preview'],\n    type: 'encrypted',\n  },\n});\n```\n\n#### Get project domains\n\n```typescript\nconst { domains } = await vercel.projects.getProjectDomains({\n  idOrName: 'my-project',\n});\n\nfor (const d of domains) {\n  console.log(`${d.name} — verified: ${d.verified}`);\n}\n```\n\n## Observability APIs\n\n### Drains (`\u002Fv1\u002Fdrains`)\n\nDrains forward logs, traces, speed insights, and web analytics data to external endpoints. All drain management is REST API or Dashboard (`https:\u002F\u002Fvercel.com\u002Fdashboard\u002F{team}\u002F~\u002Fsettings\u002Flog-drains`) only — no CLI commands exist.\n\n```typescript\nimport { Vercel } from '@vercel\u002Fsdk';\n\nconst vercel = new Vercel({ bearerToken: process.env.VERCEL_TOKEN });\n\n\u002F\u002F List all drains\nconst drains = await vercel.logDrains.getLogDrains({ teamId: 'team_xxxxx' });\n\n\u002F\u002F Create a drain\nawait vercel.logDrains.createLogDrain({\n  teamId: 'team_xxxxx',\n  requestBody: {\n    url: 'https:\u002F\u002Fyour-endpoint.example.com\u002Flogs',\n    type: 'json',\n    sources: ['lambda', 'edge', 'static'],\n    environments: ['production'],\n  },\n});\n```\n\n> For payload schemas (JSON, NDJSON), signature verification, and vendor integration setup, see `⤳ skill: observability`.\n\n### Runtime Logs (`\u002Fv3\u002Fdeployments\u002F:id\u002Fevents`)\n\nStream runtime logs for a deployment. The response uses `application\u002Fstream+json` — each line is a separate JSON object. Always set a timeout to avoid hanging on long-lived streams.\n\n```typescript\n\u002F\u002F Query via MCP (recommended for agents)\n\u002F\u002F Use the get_runtime_logs MCP tool for structured log access\n\n\u002F\u002F Direct REST alternative (streaming)\nconst res = await fetch(\n  `https:\u002F\u002Fapi.vercel.com\u002Fv3\u002Fdeployments\u002F${deploymentId}\u002Fevents`,\n  { headers: { Authorization: `Bearer ${process.env.VERCEL_TOKEN}` } }\n);\n\u002F\u002F Parse as NDJSON — see observability skill for streaming code patterns\n```\n\n## `vercel api` CLI Command (January 2026)\n\nThe `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.\n\n```bash\n# Call any REST endpoint directly\nvercel api GET \u002Fv9\u002Fprojects\nvercel api GET \u002Fv13\u002Fdeployments\nvercel api POST \u002Fv9\u002Fprojects\u002F:id\u002Fenv --body '{\"key\":\"MY_VAR\",\"value\":\"val\",\"target\":[\"production\"]}'\n```\n\nThis bridges the gap between the read-only MCP server and the full REST API — agents can perform write operations without needing `@vercel\u002Fsdk` or manual `curl` with tokens.\n\n## When to Use MCP vs CLI vs REST API\n\n| Scenario | Use | Why |\n|----------|-----|-----|\n| Agent needs to inspect\u002Fread Vercel state | **MCP server** | OAuth, structured tools, no token management |\n| Agent needs to deploy or mutate state | **CLI** (`vercel deploy`, `vercel env add`) | Full write access, well-tested |\n| Agent needs ad-hoc API access | **`vercel api`** | Direct REST from terminal, no token setup |\n| Programmatic access from app code | **REST API \u002F @vercel\u002Fsdk** | TypeScript types, fine-grained control |\n| CI\u002FCD pipeline automation | **CLI + VERCEL_TOKEN** | Scriptable, `--prebuilt` for speed |\n| Searching Vercel documentation | **MCP server** | Indexed docs, AI-optimized results |\n\n## Cross-References\n\n- **CLI operations** → `⤳ skill: vercel-cli`\n- **Function configuration** → `⤳ skill: vercel-functions`\n- **Storage APIs** → `⤳ skill: vercel-storage`\n- **Firewall rules** → `⤳ skill: vercel-firewall`\n- **AI SDK MCP client** → `⤳ skill: ai-sdk` (section: MCP Integration)\n- **Drains, log streaming, analytics export** → `⤳ skill: observability`\n\n## Official Documentation\n\n- [Vercel MCP](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fmcp)\n- [Vercel REST API](https:\u002F\u002Fvercel.com\u002Fdocs\u002Frest-api\u002Freference)\n- [@vercel\u002Fsdk](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@vercel\u002Fsdk)\n- [MCP Authorization Spec](https:\u002F\u002Fspec.modelcontextprotocol.io)\n- [GitHub: Vercel SDK](https:\u002F\u002Fgithub.com\u002Fvercel\u002Fsdk)\n",{"name":5,"chainTo":57,"metadata":66,"retrieval":80,"description":7},[58,62],{"message":59,"pattern":60,"targetSkill":61},"Vercel SDK deployment\u002Fproject operations detected — loading CI\u002FCD guidance for deployment workflows, preview URLs, and promotion strategies.","vercel\\.deployments\\.(create|list)|vercel\\.projects\\.(create|update)","deployments-cicd",{"message":63,"pattern":64,"targetSkill":65},"Vercel MCP server configuration detected — loading AI SDK guidance for MCP client integration and tool calling patterns.","mcp\\.vercel\\.com","ai-sdk",{"docs":67,"sitemap":69,"priority":70,"bashPatterns":71,"pathPatterns":77},[68],"https:\u002F\u002Fvercel.com\u002Fdocs\u002Frest-api","https:\u002F\u002Fvercel.com\u002Fsitemap\u002Fdocs.xml",7,[72,73,74,75,76],"\\bnpm\\s+(install|i|add)\\s+[^\\n]*@vercel\u002Fsdk\\b","\\bpnpm\\s+(install|i|add)\\s+[^\\n]*@vercel\u002Fsdk\\b","\\bbun\\s+(install|i|add)\\s+[^\\n]*@vercel\u002Fsdk\\b","\\byarn\\s+add\\s+[^\\n]*@vercel\u002Fsdk\\b","\\bmcp\\.vercel\\.com\\b",[78,79],".mcp.json",".vercel\u002Fproject.json",{"aliases":81,"intents":86,"entities":91},[82,83,84,85],"vercel rest api","vercel mcp","platform api","vercel sdk",[87,88,89,90],"call vercel api","use mcp server","manage deployments via api","query vercel data",[44,92,32,93,39],"REST API","deployments","main","9a4409c8751439c3aeeea2bc3940ba05dc3cd3b5","plugins\u002Fvercel\u002Fskills\u002Fvercel-api",0,"https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins","https:\u002F\u002Fgithub.com\u002FNagyVikt","https:\u002F\u002Fwebu.hu\u002F","Codex is a tool they said...\r\n\r\nCreator of GitGuardex, CueCards. Tech stack: Next.js · TypeScript · Rust · Linux. ","2026-03-30 02:19:53",{"source":8,"skillName":5,"commands":104,"prompt":114,"zipAvailable":115},[105,108,111],{"tool":106,"command":107},"npx","npx skills add NagyVikt\u002Fcodex-plugins --skill vercel-api",{"tool":109,"command":110},"bunx","bunx skills add NagyVikt\u002Fcodex-plugins --skill vercel-api",{"tool":112,"command":113},"pnpm","pnpm dlx skills add NagyVikt\u002Fcodex-plugins --skill vercel-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-api\u002FSKILL.md",true,[],[118,148,178,200,229,251],{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":130,"publishedAt":52},"01M6K1ZEN8P9R2S6NPNJNJ8JVH","workflow","Vercel Workflow DevKit (WDK) expert guidance. Use when building durable workflows, long-running tasks, API routes or agents that need pause\u002Fresume, retries, step-based execution, or crash-safe orchestration with Vercel Workflow.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fworkflow\u002FSKILL.md",[124,125,126,127],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},{"categoryNo":128,"categoryName":129,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000038","人力资源",[120,50,131,132,133,48,134,135,136,137,138,139,140,141,142,143,144,145,146,147],"create","run","streaming","start","why","loop","wait for","branch","auto","log","conversation","human","lib","condition","rendering","retries","sleep",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":164,"publishedAt":52},"01M6K1Z71NWFSPHK2VJJ73MVSY","verification","Full-story verification — infers what the user is building, then verifies the complete flow end-to-end: browser → API → data → response. Triggers on dev server start and 'why isn't this working' signals.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fverification\u002FSKILL.md",[154,157,158,161],{"categoryNo":155,"categoryName":156,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":159,"categoryName":160,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000031","产品经理",{"categoryNo":162,"categoryName":163,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000033","数据分析师",[150,165,133,166,33,35,138,167,168,169,170,40,171,172,173,174,175,176,37,177],"auth","routing middleware","user story","full stack","jest","local","end","app","false","unit","error","middleware","unit test",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":185,"publishedAt":52},"01M6K1YPRYJS3BQEDP8HKBHPEJ","vercel-storage","Vercel storage expert guidance — Blob, Edge Config, and Marketplace storage (Neon Postgres, Upstash Redis). Use when choosing, configuring, or using data storage with Vercel applications.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-storage\u002FSKILL.md",[184],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[186,187,34,188,132,189,190,139,191,192,43,193,194,195,172,143,196,197,198,199],"storage","vercel storage","config","supabase","migrate","router","clerk","prisma","connection pooling","neon","turso","upstash","URL","auth0",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":213,"publishedAt":52},"01M6K1YFEP0GPPGMQ3D0FPTS27","vercel-services","Vercel Services — deploy multiple services within a single Vercel project. Use for monorepo layouts or when combining a backend (Python, Go) with a frontend (Next.js, Vite) in one deployment.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-services\u002FSKILL.md",[206,209,210],{"categoryNo":207,"categoryName":208,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":211,"categoryName":212,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",[214,215,34,216,217,218,219,220,221,222,223,94,224,225,40,226,172,227,175,228],"vercel services","services","frontend","docker compose","SET","configure","monorepo","go api","fastapi","up","aws lambda","go backend","get","apps","python backend",{"skillNo":230,"name":231,"nameZh":6,"description":232,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":233,"categories":234,"keywords":235,"publishedAt":52},"01M6K1Y8S3CRD43DPKX0PK1MTT","vercel-sandbox","Vercel Sandbox guidance — ephemeral Firecracker microVMs for running untrusted code safely. Supports AI agents, code generation, and experimentation. Use when executing user-generated or AI-generated code in isolation.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-sandbox\u002FSKILL.md",[],[236,237,34,238,239,131,132,240,241,242,243,244,245,246,247,248,37,249,231,250],"sandbox","vercel sandbox","safe","ai agents","code","ai sdk","Code Generation","playground","generated","spawn","install","runner","io","child","student",{"skillNo":252,"name":253,"nameZh":6,"description":254,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":255,"categories":256,"keywords":258,"publishedAt":52},"01M6K1Y1J8S7AN97H75SHBGF7J","vercel-queues","Vercel Queues guidance (public beta) — durable event streaming with topics, consumer groups, retries, and delayed delivery. $0.60\u002F1M ops. Powers Workflow DevKit. Use when building async processing, fan-out patterns, or event-driven architectures.","https:\u002F\u002Fgithub.com\u002FNagyVikt\u002Fcodex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvercel\u002Fskills\u002Fvercel-queues\u002FSKILL.md",[257],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[259,34,120,50,133,260,218,33,219,223,261,262,263,264,172,143,265,146,37,266],"vercel queues","beta","message","delivery","across","worker","processing","at"]