vercel api mcp

Local 2025-08-31 23:44:54 0
Developer Tools @zueai/vercel-api-mcp

An MCP server that provides tools for interacting with Vercel API, enabling management of deployments, DNS records, domains, projects, and environment variables through natural language.


An MCP server that connects to Vercel API.

Usage

Cursor

  • To install in a project, add the MCP server to your .cursor/mcp.json:
{
    "mcpServers": {
        "vercel": {
            "command": "npx",
            "args": ["vercel-mcp VERCEL_API_KEY=<YOUR_API_KEY>"],

        }
    }
}
  • To install globally, add this command to your Cursor settings:
npx vercel-mcp VERCEL_API_KEY=<your-vercel-api-key>

Windsurf

  • Add the MCP server to your ~/.codeium/windsurf/mcp_config.json file:
{
    "mcpServers": {
        "vercel": {
            "command": "npx",
            "args": ["vercel-mcp VERCEL_API_KEY=<YOUR_API_KEY>"]
        }
    }
}

Tools

This MCP server provides the following tools for interacting with the Vercel API:

Deployments

  • getVercelDeploymentEvents - Get deployment events by deployment ID and build ID
  • getVercelDeployment - Get a deployment by ID or URL
  • cancelVercelDeployment - Cancel a deployment
  • listVercelDeploymentFiles - List deployment files
  • getVercelDeploymentFileContents - Get deployment file contents
  • getVercelDeployments - List deployments
  • deleteVercelDeployment - Delete a deployment

DNS

  • getVercelDNSRecords - List DNS records for a domain
  • createVercelDNSRecord - Create a DNS record for a domain
  • updateVercelDNSRecord - Update a DNS record
  • deleteVercelDNSRecord - Delete a DNS record

Domains

  • getVercelDomainConfig - Get a Domain's configuration
  • getVercelDomain - Get information for a single domain
  • getVercelDomains - List all domains for the authenticated user or team

Projects

  • getVercelProjects - Retrieve a list of projects
  • updateVercelProject - Update an existing project
  • getVercelProjectDomains - Retrieve project domains by project id or name
  • getVercelProjectDomain - Get a project domain
  • updateVercelProjectDomain - Update a project domain
  • removeVercelProjectDomain - Remove a domain from a project
  • addVercelProjectDomain - Add a domain to a project
  • verifyVercelProjectDomain - Verify project domain

Environment Variables

  • filterVercelProjectEnvs - Retrieve the environment variables of a project
  • getVercelProjectEnv - Retrieve the decrypted value of an environment variable
  • createVercelProjectEnv - Create one or more environment variables
  • removeVercelProjectEnv - Remove an environment variable
  • editVercelProjectEnv - Edit an environment variable
[
  {
    "description": "Gets deployment events by deployment ID and build ID",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "builds": {
          "description": "Builds parameter",
          "type": "number"
        },
        "delimiter": {
          "description": "Delimiter for events",
          "type": "number"
        },
        "deploymentId": {
          "description": "The ID or URL of the deployment",
          "type": "string"
        },
        "direction": {
          "description": "Direction of events retrieval",
          "enum": [
            "forward",
            "backward"
          ],
          "type": "string"
        },
        "follow": {
          "description": "Follow parameter for events",
          "type": "number"
        },
        "limit": {
          "description": "Limit on number of events to return",
          "type": "number"
        },
        "name": {
          "description": "Filter events by name",
          "type": "string"
        },
        "since": {
          "description": "Timestamp to get events from",
          "type": "number"
        },
        "slug": {
          "description": "Slug",
          "type": "string"
        },
        "statusCode": {
          "description": "Filter events by status code",
          "type": "string"
        },
        "teamId": {
          "description": "Team ID",
          "type": "string"
        },
        "until": {
          "description": "Timestamp to get events until",
          "type": "number"
        }
      },
      "required": [
        "deploymentId"
      ],
      "type": "object"
    },
    "name": "getDeploymentEvents"
  },
  {
    "description": "Gets a deployment by ID or URL",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "deploymentId": {
          "description": "The ID or URL of the deployment",
          "type": "string"
        },
        "slug": {
          "description": "Slug",
          "type": "string"
        },
        "teamId": {
          "description": "Team ID",
          "type": "string"
        },
        "withGitRepoInfo": {
          "description": "Include git repository info",
          "type": "string"
        }
      },
      "required": [
        "deploymentId"
      ],
      "type": "object"
    },
    "name": "getDeployment"
  },
  {
    "description": "Cancels a deployment",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "deploymentId": {
          "description": "The ID of the deployment to cancel",
          "type": "string"
        },
        "slug": {
          "description": "Slug",
          "type": "string"
        },
        "teamId": {
          "description": "Team ID",
          "type": "string"
        }
      },
      "required": [
        "deploymentId"
      ],
      "type": "object"
    },
    "name": "cancelDeployment"
  },
  {
    "description": "Lists deployment files",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "deploymentId": {
          "description": "The ID of the deployment",
          "type": "string"
        },
        "slug": {
          "description": "Slug",
          "type": "string"
        },
        "teamId": {
          "description": "Team ID",
          "type": "string"
        }
      },
      "required": [
        "deploymentId"
      ],
      "type": "object"
    },
    "name": "listDeploymentFiles"
  },
  {
    "description": "Gets deployment file contents",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "deploymentId": {
          "description": "The ID of the deployment",
          "type": "string"
        },
        "fileId": {
          "description": "The ID of the file",
          "type": "string"
        },
        "slug": {
          "description": "Slug",
          "type": "string"
        },
        "teamId": {
          "description": "Team ID",
          "type": "string"
        }
      },
      "required": [
        "deploymentId",
        "fileId"
      ],
      "type": "object"
    },
    "name": "getDeploymentFileContents"
  },
  {
    "description": "Lists deployments",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "app": {
          "description": "Application name",
          "type": "string"
        },
        "from": {
          "description": "Timestamp to list deployments from",
          "type": "number"
        },
        "limit": {
          "description": "Limit on number of deployments to return",
          "type": "number"
        },
        "projectId": {
          "description": "Project ID",
          "type": "string"
        },
        "since": {
          "description": "Timestamp to get deployments from",
          "type": "number"
        },
        "slug": {
          "description": "Slug",
          "type": "string"
        },
        "state": {
          "description": "Deployment state",
          "type": "string"
        },
        "target": {
          "description": "Deployment target",
          "type": "string"
        },
        "teamId": {
          "description": "Team ID",
          "type": "string"
        },
        "to": {
          "description": "Timestamp to list deployments until",
          "type": "number"
        },
        "until": {
          "description": "Timestamp to get deployments until",
          "type": "number"
        },
        "users": {
          "description": "Filter by users",
          "type": "string"
        }
      },
      "type": "object"
    },
    "name": "getDeployments"
  },
  {
    "description": "Deletes a deployment",
    "inputSchema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "additionalProperties": false,
      "properties": {
        "deploymentId": {
          "description": "The ID of the deployment to delete",
          "type": "string"
        },
        "slug": {
          "description": "Slug",
          "type": "string"
        },
        "teamId": {
          "description": "Team ID",
          "type": "string"
        },
        "url": {
          "description": "The URL of the deployment",
          "type": "string"
        }
      },
      "required": [
        "deploymentId"
      ],
      "type": "object"
    },
    "name": "deleteDeployment"
  }
]