Vercel MCP Integration
A Model Context Protocol (MCP) integration for Vercel's REST API, providing programmatic access to Vercel deployment management.
📋 Overview Last updated: July 2024
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 filtering
vercel-get-deployment
- Retrieve specific deployment details
vercel-get-environments
- Access project environment variables
vercel-create-deployment
- Create new deployments
vercel-create-project
- Create new Vercel projects
vercel-list-all-teams
- List all accessible teams
🛣️ Roadmap
Tools
vercel-list-all-deployments
List deployments under the authenticated user or team
- Inputs :
app
(string): Filter by deployment name
projectId
(string): Filter by project ID/name
state
(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 regions
teamId
(string): Team ID for scoping
forceNew
(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 preset
buildCommand
(string): Custom build command
devCommand
(string): Custom dev command
outputDirectory
(string): Build output directory
teamId
(string): Team ID for scoping
- Returns : Project configuration with deployment settings
vercel-list-all-teams
List all teams accessible to authenticated user
- Inputs :
limit
(number): Maximum results to return
since
(number): Timestamp for teams created after
until
(number): Timestamp for teams created before
teamId
(string): Team ID for request scoping
- Returns : Paginated list of team objects with metadata
🚀 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 |
🛣️ Roadmap
🤝 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