Vercel MCP Integration
by nganiet
This MCP server provides programmatic access to Vercel deployment management through its REST API. It implements Vercel's core API endpoints as tools, enabling deployment monitoring, environment variable retrieval, and CI/CD pipeline integration.
Last updated: July 2024
Vercel MCP Integration
A Model Context Protocol (MCP) integration for Vercel's REST API, providing programmatic access to Vercel deployment management.
š Overview <sub><sup>Last updated: July 2024</sup></sub>
This MCP server implements Vercel's core API endpoints as tools, enabling:
- Deployment monitoring & management
- Environment variable retrieval
- Project deployment status tracking
- CI/CD pipeline integration
⨠Features
Current Tools
vercel-list-all-deployments
- List deployments with filteringvercel-get-deployment
- Retrieve specific deployment detailsvercel-create-deployment
- Create new deploymentsvercel-create-project
- Create new Vercel projectsvercel-create-environment-variables
- Create multiple environment variablesvercel-get-environments
- Access project environment variablesvercel-list-projects
- List all projects with paginationvercel-list-all-teams
- List all accessible teams
š£ļø Roadmap
- [x] Deployment creation workflow
- [x] Project management tools
- [x] Team management integration
- [ ] Real-time deployment monitoring
- [ ] Advanced error handling
- [ ] Deployment metrics dashboard
Tools
vercel-list-all-deployments
List deployments under the authenticated user or team
- Inputs:
app
(string): Filter by deployment nameprojectId
(string): Filter by project ID/namestate
(string): Filter by state (BUILDING, ERROR, INITIALIZING, QUEUED, READY, CANCELED)target
(string): Filter by environment (production/preview)limit
(number): Number of deployments to return
- Returns: Array of deployment objects with status, URLs, and metadata
vercel-get-deployment
Get detailed information about a specific deployment
- Inputs:
idOrUrl
(string): Deployment ID or URL (required)teamId
(string): Team ID for request scoping
- Returns: Full deployment details including build logs, domains, and environment variables
vercel-create-deployment
Create a new Vercel deployment
- Inputs:
name
(string): Deployment/project name (required)project
(string): Project ID/name (required)target
(string): Environment (production/preview)regions
(string[]): Deployment regionsteamId
(string): Team ID for scopingforceNew
(boolean): Force new deployment
- Returns: Created deployment details with status URLs
vercel-create-project
Create a new Vercel project
- Inputs:
name
(string): Project name (required)framework
(string): Framework presetbuildCommand
(string): Custom build commanddevCommand
(string): Custom dev commandoutputDirectory
(string): Build output directoryteamId
(string): Team ID for scoping
- Returns: Project configuration with deployment settings
vercel-create-environment-variables
Create multiple environment variables for a project
-
Inputs:
projectId
(string): Target project ID (required)teamId
(string): Team ID for request scopingenvironmentVariables
(array): Environment variables to createkey
(string): Variable name (required)value
(string): Variable value (required)target
(string[]): Deployment targets (production/preview/development)type
(string): Variable type (system/encrypted/plain/sensitive)gitBranch
(string): Optional git branch for variable
-
Returns: Object with created variables and any skipped entries
vercel-list-all-teams
List all teams accessible to authenticated user
- Inputs:
limit
(number): Maximum results to returnsince
(number): Timestamp for teams created afteruntil
(number): Timestamp for teams created beforeteamId
(string): Team ID for request scoping
- Returns: Paginated list of team objects with metadata
vercel-list-projects
List all projects under the authenticated user or team
- Inputs:
limit
(number): Maximum number of projects to returnfrom
(number): Timestamp for projects createdteamId
(string): Team ID for request scoping
- Returns: Paginated list of project objects with metadata including:
id
: Project IDname
: Project nameframework
: Associated frameworklatestDeployments
: Array of recent deploymentscreatedAt
: Creation timestamp
š Getting Started
Prerequisites
- Node.js 18+
- Vercel API Token
- MCP Client
Installation
git clone [your-repo-url]
cd vercel-mcp
npm install
Configuration
- Create
.env
file:
VERCEL_API_TOKEN=your_api_token_here
- Start MCP server:
npm start
š ļø Usage Examples
List Deployments
const response = await mcpClient.callTool({
name: "vercel-list-all-deployments",
args: {
limit: 5,
target: "production",
},
});
Get Specific Deployment
const deployment = await mcpClient.callTool({
name: "vercel-get-deployment",
args: {
idOrUrl: "dpl_5WJWYSyB7BpgTj3EuwF37WMRBXBtPQ2iTMJHJBJyRfd",
},
});
š³ Docker Deployment
Build the Image
docker build -t vercel-mcp .
Run Container
docker run -it --rm \
-e VERCEL_API_TOKEN=your_token_here \
-p 3399:3399 \
vercel-mcp
Production Deployment
docker run -d \
--name vercel-mcp \
--restart unless-stopped \
-e VERCEL_API_TOKEN=your_token_here \
-p 3399:3399 \
vercel-mcp
Development with Live Reload
docker build --target builder -t vercel-mcp-dev .
docker run -it --rm \
-e VERCEL_API_TOKEN=your_token_here \
-p 3399:3399 \
-v $(pwd)/src:/app/src \
vercel-mcp-dev
šļø Project Structure
src/
āāā constants/ # Tool definitions
āāā tools/
ā āāā deployments/ # Deployment handlers
ā ā āāā handlers.ts
ā ā āāā schema.ts
ā ā āāā types.ts
ā āāā environments/# Environment management
āāā utils/ # API helpers
āāā index.ts # Server entrypoint
š§ Configuration
Environment Variables
| Variable | Description | Required |
| ------------------ | ------------------- | -------- |
| VERCEL_API_TOKEN
| Vercel access token | Yes |
š¤ Contributing
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
š License
MIT License - see LICENSE for details