---
canonical_url: "https://docs.composio.dev/toolkits/vercel_mcp"
markdown_url: "https://docs.composio.dev/toolkits/vercel_mcp.md"
product: "platform"
version: null
last_updated: null
---

# Vercel MCP

Search Vercel documentation and manage projects, deployments, and deployment logs through Vercel's hosted MCP server.

- **Category:** developer tools
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 37
- **Triggers:** 0
- **Slug:** `VERCEL_MCP`
- **Version:** 20260910_00

## Tools

### Add toolbar reaction

**Slug:** `VERCEL_MCP_ADD_TOOLBAR_REACTION`

Add an emoji reaction to a message in a toolbar thread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `emoji` | string | Yes | The emoji to add as a reaction (e.g. 👍) |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `threadId` | string | Yes | The thread ID containing the message |
| `messageId` | string | Yes | The message ID to react to |

### Buy addon

**Slug:** `VERCEL_MCP_BUY_ADDON`

Executes a Vercel add-on purchase (currently only "siem"), by integer quantity, previously quoted by get_purchase_quote — quoting first is REQUIRED; this tool rejects un-quoted calls. Get the quote, present it to the user for explicit approval (use a structured question tool such as AskUserQuestion when available), then call with confirm:true, the quote's idempotencyKey, and the same parameters. The team must be on the Flex plan. No price quote exists for add-ons; the charge is non-refundable. The quote returns required disclosures the assistant must relay before approval: the payment method (default card on file), that taxes/fees may apply on top of the price, the item terms (Flex plan required, billed on the next invoice), and a full-terms link.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `confirm` | boolean | No | Set true to execute the charge; requires the idempotencyKey from get_purchase_quote. |
| `quantity` | integer | Yes | Number of units to purchase. |
| `productAlias` | string ("siem") | Yes | The add-on to purchase. Only "siem" is available today. |
| `idempotencyKey` | string | No | The idempotencyKey returned by get_purchase_quote. |

### Buy credits

**Slug:** `VERCEL_MCP_BUY_CREDITS`

Executes a prepaid Vercel credits purchase (v0, AI Gateway, or Vercel Agent) previously quoted by get_purchase_quote — quoting first is REQUIRED; this tool rejects un-quoted calls. Get the quote, present it to the user for explicit approval (use a structured question tool such as AskUserQuestion when available), then call with confirm:true, the quote's idempotencyKey, and the same parameters. When the user has not named an amount, offer quick-picks — $10, $25, $50, or $100 — or let them enter any custom amount ($1–$1000); do not just quote the range. Some credit types require a plan: Vercel Agent credits require the team to be on Vercel Pro (use buy_pro first), and v0 credits require a paid v0 plan (set up at v0.dev); AI Gateway credits have no plan prerequisite. If the required plan is missing the purchase is rejected (nothing is charged) with guidance. The charge is immediate and non-refundable. The quote returns required disclosures the assistant must relay before approval: the payment method (default card on file), that taxes/fees may apply on top of the base price, the item terms (credits expire in one year), and a full-terms link.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | integer | Yes | Amount to purchase, in whole US dollars (1–1000). |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `confirm` | boolean | No | Set true to execute the charge; requires the idempotencyKey from get_purchase_quote. |
| `creditType` | string ("v0" | "gateway" | "agent") | Yes | Which credit balance to top up: v0, gateway (AI Gateway), or agent (Vercel Agent). |
| `idempotencyKey` | string | No | The idempotencyKey returned by get_purchase_quote. |

### Buy domain

**Slug:** `VERCEL_MCP_BUY_DOMAIN`

Executes a single-domain registration previously quoted by get_purchase_quote (product:domain) — quoting first is REQUIRED; this tool rejects un-quoted calls. Get the quote, present it to the user for explicit approval (use a structured question tool such as AskUserQuestion when available), then call with confirm:true, the quote's idempotencyKey, the expectedPrice and years from the quote, and the full registrant contact to execute the non-refundable purchase. Vercel stores no reusable registrant profile, so contact details must be supplied each time. The quote returns required disclosures the assistant must relay before approval: the payment method (default card on file), that taxes/fees may apply on top of the price, the item terms (non-refundable), and, when auto-renew is on, the recurring-charge terms in disclosures.subscription (renews automatically each term at the then-current price until auto-renew is turned off), plus a full-terms link.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `years` | integer | No | Registration term in years. Required on confirm — must match the term shown in the quote. |
| `domain` | string | Yes | The domain to register, e.g. "example.com". |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `confirm` | boolean | No | Set true to execute the purchase; requires the idempotencyKey from get_purchase_quote. |
| `contact` | object | No | Registrant (WHOIS) contact. Not needed for the quote; REQUIRED on confirm. All fields must be provided. |
| `autoRenew` | boolean | No | Whether to auto-renew at the end of the term. Defaults to true. |
| `expectedPrice` | number | No | Required on confirm: the purchasePrice (USD) from the quote. The server rejects the order if it no longer matches the live price. |
| `idempotencyKey` | string | No | The idempotencyKey returned by get_purchase_quote. |

### Buy pro

**Slug:** `VERCEL_MCP_BUY_PRO`

Executes a Vercel Pro upgrade previously quoted by get_purchase_quote — quoting first is REQUIRED; this tool rejects un-quoted calls. Get the quote, present it to the user for explicit approval (use a structured question tool such as AskUserQuestion when available), then call with confirm:true, the quote's idempotencyKey, and the same parameters. This starts RECURRING Pro billing immediately at the standard Pro price. The quote returns required disclosures the assistant must relay before approval: the payment method (default card on file), that taxes/fees may apply on top of the price, the subscription terms (recurring monthly charge, no trial, cancel anytime in billing settings), and a full-terms link.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `confirm` | boolean | No | Set true to execute the upgrade; requires the idempotencyKey from get_purchase_quote. |
| `idempotencyKey` | string | No | The idempotencyKey returned by get_purchase_quote. |

### Change toolbar thread resolve status

**Slug:** `VERCEL_MCP_CHANGE_TOOLBAR_THREAD_RESOLVE_STATUS`

Change the resolve status of a toolbar thread. Can be used to mark a thread as resolved or unresolve a previously resolved thread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `resolved` | boolean | Yes | Set to true to resolve the thread, false to unresolve it |
| `threadId` | string | Yes | The thread ID to update |

### Check domain availability and price

**Slug:** `VERCEL_MCP_CHECK_DOMAIN_AVAILABILITY_AND_PRICE`

Check if domain names are available for purchase and get pricing information

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `names` | array | Yes | Array of domain names to check availability for (e.g., ["example.com", "test.org"]) |

### Create git project

**Slug:** `VERCEL_MCP_CREATE_GIT_PROJECT`

Preferred when the intended source is pushed to an accessible remote repository's production branch. Create a Vercel project linked to that repository, or reuse the existing project already linked to it, to automatically deploy changes on every push. New projects use the team's default deployment protection. Creates a preview deployment from the production branch by default; do not ask for deployment confirmation. Use deploy_to_vercel only when no usable remote repository exists or the user explicitly requests a manual file deployment. This prevents new bare projects; it does not reconnect an existing unlinked project with the same name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `repo` | string | Yes | Repository as "owner/name", or a repository URL such as https://github.com/owner/name or https://origin.cursor.com/owner/name. |
| `deploy` | boolean | No | Whether to create a preview deployment from the linked repository's production branch. Defaults to true; set false only when the user explicitly requests link-only behavior. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool Required: the root MCP endpoint has no implicit team scope, so this prevents accidentally creating the project in the authenticated user's personal account. |
| `provider` | string ("github" | "gitlab" | "bitbucket" | "cursor-origin") | No | Git provider to link. Inferred from recognized repository URLs; otherwise defaults to "github". Use "cursor-origin" for Cursor-hosted repositories at origin.cursor.com. Ignored when the project already exists. |
| `projectName` | string | No | Vercel project to create or reuse. Defaults to the lowercased repository name. |
| `rootDirectory` | string | No | Root-relative directory to build in a monorepo. Only applied when creating the project. |

### Deploy to vercel

**Slug:** `VERCEL_MCP_DEPLOY_TO_VERCEL`

Deploy files directly when no usable remote git repository exists or the user explicitly requests a manual file deployment. If the intended source is pushed to a repository's production branch, use create_git_project to automatically deploy changes on every push. Provide the file tree and an explicit target; Vercel auto-detects the framework and builds.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Project name. Vercel creates the project if it does not already exist. |
| `files` | array | Yes | The file tree to deploy. Source files only — Vercel installs deps and builds. |
| `target` | string ("preview" | "production") | Yes | Required. "preview" for a shareable non-production URL, or "production" to go live. |
| `teamId` | string | No | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectSettings` | object | No | Optional build settings. Omit to let Vercel auto-detect the framework. |

### Edit toolbar message

**Slug:** `VERCEL_MCP_EDIT_TOOLBAR_MESSAGE`

Edit an existing message in a toolbar thread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `markdown` | string | Yes | The updated message content in markdown format |
| `threadId` | string | Yes | The thread ID containing the message |
| `messageId` | string | Yes | The message ID to edit |

### Get access to vercel url

**Slug:** `VERCEL_MCP_GET_ACCESS_TO_VERCEL_URL`

Creates a temporary shareable link that bypasses authentication for protected Vercel deployments.

  When you encounter a Vercel deployment URL (like https://myapp-abc123.vercel.app), 
  you might receive a 403 (Forbidden) error when trying to access it. 

  This tool generates a special URL with a '_vercel_share' parameter that allows temporary access 
  without requiring login credentials. The shareable URL will expire in 23 hours.
  
  When you use the returned URL, that URL will redirect and set an auth cookie.
  If your fetch implementation does not support cookies, use the 'web_fetch_vercel_url' tool instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The full URL of the Vercel deployment (e.g. "https://myapp.vercel.app"). |

### Get agent run

**Slug:** `VERCEL_MCP_GET_AGENT_RUN`

Get detailed metadata for a single Agent Run from an eve agent, including events, workflow metadata, usage, and subagent breakout data. Use list_agent_runs first if you need to discover a run ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like "1h", or "now". Must be used with from. |
| `from` | string | No | Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like "12h". Must be used with to. |
| `runId` | string | Yes | The Agent Run ID to inspect. |
| `period` | string ("5m" | "15m" | "1h" | "6h" | "12h" | "1d" | "3d" | "7d" | "14d" | "30d" | "90d") | No | Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |
| `environment` | string | No | Agent run environment, usually "production" or "preview". Defaults to "production". |

### Get agent run trace

**Slug:** `VERCEL_MCP_GET_AGENT_RUN_TRACE`

Get the trace for a single Agent Run from an eve agent, including turns, messages, reasoning, tool calls, token usage, and tool input/output when available. Use this for debugging exact agent behavior in production.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like "1h", or "now". Must be used with from. |
| `from` | string | No | Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like "12h". Must be used with to. |
| `runId` | string | Yes | The Agent Run ID to inspect. |
| `period` | string ("5m" | "15m" | "1h" | "6h" | "12h" | "1d" | "3d" | "7d" | "14d" | "30d" | "90d") | No | Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |
| `environment` | string | No | Agent run environment, usually "production" or "preview". Defaults to "production". |
| `maxFieldLength` | number | No | Maximum length for individual string fields in the returned trace. Defaults to 8000; use 0 to disable truncation. |

### Get deployment

**Slug:** `VERCEL_MCP_GET_DEPLOYMENT`

Get a specific deployment by ID or URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `idOrUrl` | string | Yes | The unique identifier or hostname of the deployment. |

### Get deployment build logs

**Slug:** `VERCEL_MCP_GET_DEPLOYMENT_BUILD_LOGS`

Get the build logs for a deployment by ID or URL, to investigate why a build failed. Returns the most recent lines by default (where build errors appear). Use errorsOnly to see just the failing lines. Omit since and until for latest logs; use since to narrow the window and omit until when the end should be the current time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | Maximum number of log lines to return. Defaults is 100. |
| `since` | string | No | Start of the window as an ISO date or relative lookback from now (e.g. "1h", "30m"). |
| `until` | string | No | Optional end of the window as an ISO date, relative lookback, or "now". Omit this when the end should be the current time. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `buildId` | string | No | Filter to a specific build ID (bld_...) for multi-build deployments. |
| `idOrUrl` | string | Yes | The unique identifier or hostname of the deployment. |
| `direction` | string ("tail" | "head") | No | Which end of the build log to return. "tail" (default) returns the most recent lines, where build errors appear. "head" returns the earliest lines. |
| `errorsOnly` | boolean | No | Return only error, stderr, exit, and fatal events. |

### Get domain order

**Slug:** `VERCEL_MCP_GET_DOMAIN_ORDER`

Get the status of a domain purchase order returned by buy_domain, to confirm whether the registration completed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | No | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `orderId` | string | Yes | The orderId returned by buy_domain. |

### Get git deployment context

**Slug:** `VERCEL_MCP_GET_GIT_DEPLOYMENT_CONTEXT`

Lists the user's Vercel teams with each team's plan, connected Cursor Origin workspaces, and linked Git projects.

### Get project

**Slug:** `VERCEL_MCP_GET_PROJECT`

Get a specific project in Vercel

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |

### Get project deployment protection

**Slug:** `VERCEL_MCP_GET_PROJECT_DEPLOYMENT_PROTECTION`

Get the effective password protection, Vercel Authentication, and Trusted IP settings for a Vercel project. Password values are never returned.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |

### Get purchase quote

**Slug:** `VERCEL_MCP_GET_PURCHASE_QUOTE`

Read-only price quote for a Vercel purchase. NEVER charges. This is the ONLY way to obtain an idempotencyKey — the buy_* tools no longer quote and reject un-quoted calls, so this is the REQUIRED first step before any buy_* tool. It returns the cost (when Vercel exposes one) and an idempotencyKey to pass to the matching buy tool (buy_credits, buy_domain, buy_addon, buy_pro) with confirm:true within 5 minutes to execute the charge. Present the quote to the user for explicit approval (use a structured question tool such as AskUserQuestion when available) before confirming. Products with no API price (add-ons, Pro) return a priceNote and billing URL instead of a number. Every quote includes a disclosures object the assistant must relay to the user before approval: the payment method (default card on file), that taxes/fees may apply on top of the base price, the item terms, and a link to the full terms.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `years` | integer | No | For product:domain — registration term in years (defaults to the TLD minimum). |
| `amount` | integer | No | Required for product:credits — amount in whole US dollars (1–1000). |
| `domain` | string | No | Required for product:domain — the domain to register, e.g. "example.com". |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `product` | string ("credits" | "domain" | "addon" | "pro") | Yes | Which purchase to quote. |
| `quantity` | integer | No | Required for product:addon — number of units. |
| `autoRenew` | boolean | No | For product:domain — whether to auto-renew at term end. Defaults to true. Cosmetic in the quote; not part of the signed idempotencyKey. |
| `creditType` | string ("v0" | "gateway" | "agent") | No | Required for product:credits — which credit balance to top up. |
| `productAlias` | string ("siem") | No | Required for product:addon — the add-on to quote. Only "siem" is available today. |

### Get runtime errors

**Slug:** `VERCEL_MCP_GET_RUNTIME_ERRORS`

Get grouped runtime error clusters for a project (error name, occurrence count, affected routes, sample messages, first/last seen). Use this first to answer "why is production erroring" — it reads a pre-aggregated table and does not time out. For recent windows, pass since like "24h" or "7d" and omit until; until is only needed for historical end times. Max 7-day range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `since` | string | No | Start of the window as an ISO date or relative lookback from now (e.g. "1h", "24h", "7d"). Defaults to 24h ago; max lookback is 7d. |
| `until` | string | No | Optional end of the window as an ISO date, relative lookback, or "now". Omit this when the end should be the current time. |
| `routes` | string | No | Comma-separated route paths to filter by (e.g. "/api/checkout"). |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get runtime errors for. |

### Get runtime logs

**Slug:** `VERCEL_MCP_GET_RUNTIME_LOGS`

Get runtime logs for a project or deployment. Runtime logs show application output (console.log, errors, etc.) from serverless functions and edge functions during execution. Supports filtering by environment, log level, status code, source, time range, and full-text search. For recent windows, pass since like "30m" or "24h" and omit until; until is only needed for historical end times. For wide time ranges, scope to a deploymentId for speed, or use group_by to get counts instead of individual lines. To investigate production errors specifically, prefer get_runtime_errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `level` | array | No | Filter by log level(s). Can specify multiple levels. |
| `limit` | number | No | Maximum number of log entries to return. Defaults to 50, max 100. |
| `query` | string | No | Full-text search query to filter logs. |
| `since` | string | No | Start of the window as an ISO date or relative lookback from now (e.g., "1h", "30m", "7d"). Defaults to 24 hours ago. |
| `until` | string | No | Optional end of the window as an ISO date, relative lookback, or "now". Omit this when the end should be the current time. |
| `source` | array | No | Filter by source type(s). Can specify multiple sources. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `group_by` | string ("statusCode" | "requestPath" | "route" | "level" | "source" | "deploymentId" | "branch") | No | Return counts grouped by this attribute instead of individual log lines. Use for "how many errors", "status code breakdown", "top paths". Fast even over wide time ranges. |
| `projectId` | string | Yes | The project ID to get runtime logs for. |
| `requestId` | string | No | Filter by specific request ID. |
| `statusCode` | string | No | Filter by HTTP status code (e.g., "500", "4xx"). |
| `environment` | string ("production" | "preview") | No | Filter by environment: "production" or "preview". |
| `deploymentId` | string | No | Filter logs to a specific deployment ID or URL. |

### Get toolbar thread

**Slug:** `VERCEL_MCP_GET_TOOLBAR_THREAD`

Get a specific toolbar thread by ID, including all messages and context.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `threadId` | string | Yes | The thread ID to retrieve |

### Get web analytics

**Slug:** `VERCEL_MCP_GET_WEB_ANALYTICS`

Query Web Analytics for a Vercel project. Count mode returns total visitors and pageviews (or custom event count). Aggregate mode groups results over time or by dimensions such as route, requestPath, country, referrerHostname, deviceType, browserName, eventName, flags/<name>, or eventData/<property>. Web Analytics must be enabled for the project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `by` | array | No | One or two dimensions for aggregate mode. Time dimensions: hour, day, week, month, year. Other common dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, UTM fields, eventName, flags/<name>, and eventData/<property>. |
| `mode` | string ("count" | "aggregate") | No | Count returns one total. Aggregate returns rows grouped by one or two by dimensions and requires since, until, and by. Defaults to count. |
| `limit` | integer | No | Maximum distinct results in aggregate mode. Remaining values are grouped into Others. Defaults to 10. |
| `since` | string | No | Start or end of the date range as a date string, ISO 8601 timestamp, or Unix timestamp in milliseconds. Since and until must be provided together. |
| `until` | string | No | Start or end of the date range as a date string, ISO 8601 timestamp, or Unix timestamp in milliseconds. Since and until must be provided together. |
| `filter` | string | No | OData filter expression, for example requestPath eq '/pricing' and country eq 'US', eventName eq 'signup', or eventData/plan eq 'pro'. |
| `teamId` | string | No | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `dataset` | string ("visits" | "events") | No | Data to query: visits for automatically tracked pageviews, or events for custom events sent with track(). Defaults to visits. |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |

### Import-claude-design-from-url

**Slug:** `VERCEL_MCP_IMPORT_CLAUDE_DESIGN_FROM_URL`

Import a design into Vercel from a publicly fetchable URL. The file is a self-contained HTML bundle with all images, fonts, and styles inlined.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS URL to the design file. Valid for ~1 hour. Fetched server-side. |
| `title` | string | No | Suggested title for the imported design. |
| `claude_design_project_id` | string | No | Stable Claude Design project identifier. Reuse it to update the same imported Vercel project. |

### List agent run projects

**Slug:** `VERCEL_MCP_LIST_AGENT_RUN_PROJECTS`

List projects in a Vercel team that have Agent Runs observability data for agents built with the eve framework, with run counts and average duration rollups. Use this to discover which projects have eve agent activity before drilling into a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like "1h", or "now". Must be used with from. |
| `from` | string | No | Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like "12h". Must be used with to. |
| `period` | string ("5m" | "15m" | "1h" | "6h" | "12h" | "1d" | "3d" | "7d" | "14d" | "30d" | "90d") | No | Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `environment` | string | No | Agent run environment, usually "production" or "preview". Defaults to "production". |

### List agent runs

**Slug:** `VERCEL_MCP_LIST_AGENT_RUNS`

List Agent Runs for a Vercel project. Agent Runs are the observability layer for agents built with the eve framework. The response includes summaries, status, model, trigger, token usage, time series, and pagination metadata. Use this to find recent or matching production eve agent runs before fetching detail or trace data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No | End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration like "1h", or "now". Must be used with from. |
| `from` | string | No | Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration like "12h". Must be used with to. |
| `page` | number | No | 1-based page number. Defaults to 1. |
| `period` | string ("5m" | "15m" | "1h" | "6h" | "12h" | "1d" | "3d" | "7d" | "14d" | "30d" | "90d") | No | Preset time range. Ignored when both from and to are provided. Defaults to the dashboard endpoint default. |
| `search` | string | No | Server-side title search for Agent Runs. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `pageSize` | number | No | Number of runs per page. The dashboard endpoint caps this at 100. |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |
| `environment` | string | No | Agent run environment, usually "production" or "preview". Defaults to "production". |

### List deployments

**Slug:** `VERCEL_MCP_LIST_DEPLOYMENTS`

List all deployments for a project

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `since` | number | No | Get deployments created after this timestamp. |
| `until` | number | No | Get deployments created before this timestamp. |
| `teamId` | string | Yes | The team ID to list deployments for. |
| `projectId` | string | Yes | The project ID to list deployments for. |

### List projects

**Slug:** `VERCEL_MCP_LIST_PROJECTS`

List all Vercel projects for a user (with a max of 50). Use this to help discover the Project ID of the project that the user is working on.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |

### List teams

**Slug:** `VERCEL_MCP_LIST_TEAMS`

List the user's teams. Use this to help discover the Team ID of the teams that the user is part of.

### List toolbar threads

**Slug:** `VERCEL_MCP_LIST_TOOLBAR_THREADS`

List Vercel toolbar comment threads for a team. Returns unresolved threads by default. Use this to see feedback, comments, or discussions on deployments and previews.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | string | No | Filter by page path (e.g. /docs) or glob (e.g. /docs*) |
| `limit` | number | No | Maximum number of results to return. Defaults to 20. |
| `branch` | string | No | Filter by branch name |
| `offset` | number | No | Pagination offset |
| `search` | string | No | Search text in comments |
| `status` | string ("resolved" | "unresolved") | No | Filter by status. Defaults to unresolved. |
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | No | Filter by project ID |

### Pause project

**Slug:** `VERCEL_MCP_PAUSE_PROJECT`

Pause a Vercel project. Its production deployment will stop serving traffic and return 503 DEPLOYMENT_PAUSED until the project is unpaused.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |

### Reply to toolbar thread

**Slug:** `VERCEL_MCP_REPLY_TO_TOOLBAR_THREAD`

Add a reply message to an existing toolbar thread.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `markdown` | string | Yes | The message content in markdown format |
| `threadId` | string | Yes | The thread ID to reply to |

### Search vercel documentation

**Slug:** `VERCEL_MCP_SEARCH_VERCEL_DOCUMENTATION`

Search the Vercel documentation.
  
  Use this tool to answer any questions about Vercel’s platform, features, and best practices, including:
  - Core Concepts: Projects, Deployments, Git Integration, Preview Deployments, Environments
  - Frontend & Frameworks: Next.js, SvelteKit, Nuxt, Astro, Remix, frameworks configuration and optimization
  - APIs: REST API, Vercel SDK, Build Output API
  - Compute: Fluid Compute, Functions, Routing Middleware, Cron Jobs, OG Image Generation, Sandbox, Data Cache
  - AI: Vercel AI SDK, AI Gateway, MCP, v0
  - Performance & Delivery: Edge Network, Caching, CDN, Image Optimization, Headers, Redirects, Rewrites
  - Pricing: Plans, Spend Management, Billing
  - Security: Audit Logs, Firewall, Bot Management, BotID, OIDC, RBAC, Secure Compute, 2FA
  - Storage: Blog, Edge Config

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `topic` | string | Yes | Topic to focus the documentation search on (e.g., 'routing', 'data-fetching'). |
| `tokens` | number | No | Maximum number of tokens to include in the result. Default is 2500. |

### Unpause project

**Slug:** `VERCEL_MCP_UNPAUSE_PROJECT`

Unpause a Vercel project so its production deployment can resume serving traffic and consuming metered resources.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |

### Update project deployment protection

**Slug:** `VERCEL_MCP_UPDATE_PROJECT_DEPLOYMENT_PROTECTION`

Partially update password protection, Vercel Authentication, and Trusted IPs for a Vercel project. Omitted settings are preserved. Availability depends on the Vercel team plan and caller permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `teamId` | string | Yes | The team ID to get the deployment events for. Alternatively the team slug can be used. Team IDs start with "team_". If you do not know the team ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the orgId - Use the `list_teams` tool |
| `projectId` | string | Yes | The project ID to get the deployment events for. Alternatively the project slug can be used. Project IDs start with "prj_". If you do not know the project ID or slug, it can be found through these mechanism: - Read the file .vercel/project.json if it exists and extract the projectId - Use the `list_projects` tool |
| `trustedIps` | string | No | Enable or disable Trusted IPs. Omit to preserve the current setting. |
| `ssoProtection` | string | No | Enable or disable Vercel Authentication. Omit to preserve the current setting. |
| `passwordProtection` | string | No | Enable or disable password protection. Omit to preserve the current setting. |

### Web fetch vercel url

**Slug:** `VERCEL_MCP_WEB_FETCH_VERCEL_URL`

Fetches a Vercel deployment URL and returns the response.
  This is useful if another web fetch tool returns 401 (Unauthorized) or 403 (Forbidden) for a Vercel URL.
  Supports accessing deployments protected with Vercel Authentication which the user of this MCP server has access to.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The full URL of the Vercel deployment including the path (e.g. "https://myapp.vercel.app/my-page"). |
