@mistertk/vercel-mcp
v0.1.1
Published
Model Context Protocol server for Vercel API - provides 114+ tools, 4 resources, and 5 prompts for comprehensive Vercel platform management including deployments, domains, DNS, projects, teams, security, monitoring, and more
Readme
A Model Context Protocol (MCP) server that provides comprehensive access to the Vercel API. This server exposes 114+ tools, 4 resources, and 5 prompts for complete Vercel platform management through a secure and configurable interface.
Features
Core Capabilities
- 🚀 Deployment Management: Create, list, view, cancel, and delete deployments; access deployment files and events
- 🌐 DNS Management: Full CRUD operations for DNS records
- 🔗 Domain Management: Add, remove, verify, and configure domains
- 📁 Project Management: Create and manage projects, project domains, and environment variables
- 👥 Team Management: Manage team members, roles, and access controls
- 🔐 Security: Configure firewall rules, attack protection, and bypass IPs
- 📊 Monitoring: Set up webhooks, log drains, and access checks
- 🎫 Access Control: Manage access groups, project members, and permissions
- ⚙️ Edge Configuration: Manage edge configs and items
- 🏪 Marketplace: Handle integrations, billing, and marketplace events
- 📦 Artifacts: Manage build artifacts and caching
- 🔑 Authentication: Manage auth tokens and SSO configuration
- 🎯 Aliases: Configure deployment and project aliases
- 🌍 Custom Environments: Create and manage custom deployment environments
- 📜 SSL Certificates: Upload and manage SSL certificates
MCP Features
- 📖 Resources: Quick read-only access to deployments, projects, domains, and teams
- 💬 Prompts: Interactive guided workflows for common tasks
- 📄 Pagination: Automatic pagination support for all list operations
- 🔒 Secure Configuration: Environment variable support with API key validation
- ⚡ Production Ready: Built with TypeScript, comprehensive error handling
- 🛠️ Modular Architecture: Clean separation of concerns with dedicated modules
Configuration
The server requires a Vercel API key for authentication. You can provide it in two ways:
Command Line Argument (Recommended):
npx @mistertk/vercel-mcp VERCEL_API_KEY=<your-vercel-api-key>Environment Variable:
export VERCEL_API_KEY=<your-vercel-api-key>
Optional Environment Variables
VERCEL_REQUEST_TIMEOUT- Request timeout in milliseconds (default: 30000)VERCEL_MAX_RETRIES- Maximum retry attempts for failed requests (default: 3)VERCEL_DEBUG- Enable debug logging (default: false)VERCEL_RATE_LIMIT_PER_MINUTE- API calls per minute (default: 60)VERCEL_RATE_LIMIT_BURST- Burst limit for rate limiting (default: 10)
Installation
npm install -g @mistertk/vercel-mcpOr use directly with npx:
npx @mistertk/vercel-mcpUsage
{
"mcpServers": {
"vercel": {
"command": "npx",
"args": ["@mistertk/vercel-mcp", "VERCEL_API_KEY=<your-api-key>"]
}
}
}Local Development
For development or testing the latest version:
{
"mcpServers": {
"vercel": {
"command": "node",
"args": ["/path/to/vercel-api-mcp/build/index.js"],
"env": {
"VERCEL_API_KEY": "<YOUR_API_KEY>"
}
}
}
}Resources
The server provides read-only resources for quick access to key data:
vercel://deployments- List of recent deployments with status and metadatavercel://projects- All Vercel projects with their configurationvercel://domains- All configured domains in your accountvercel://teams- All teams you have access to
Prompts
Interactive prompts guide you through common workflows:
deploy-project- Deploy a project to Vercel- Arguments:
projectPath(required),projectName(optional)
- Arguments:
manage-domains- Manage domains and DNS- Arguments:
domain(required),action(optional)
- Arguments:
optimize-deployment- Optimize deployment configuration- Arguments:
projectId(required)
- Arguments:
setup-monitoring- Set up monitoring and logging- Arguments:
projectId(required),features(optional)
- Arguments:
team-management- Manage team and access control- Arguments:
teamId(optional),action(optional)
- Arguments:
Tools
This MCP server provides 114+ tools organized by category:
Deployments (8 tools)
getDeploymentEvents- Get deployment eventsgetDeployment- Get deployment detailscancelDeployment- Cancel a deploymentlistDeploymentFiles- List deployment filesgetDeploymentFileContents- Get file contentsgetDeployments- List deployments (paginated)deleteDeployment- Delete a deploymentcreateDeployment- Create a new deployment
DNS (4 tools)
listDnsRecords- List DNS records (paginated)createDnsRecord- Create a DNS recordupdateDnsRecord- Update a DNS recorddeleteDnsRecord- Delete a DNS record
Domains (6 tools)
getDomain- Get domain informationgetDomainConfig- Get domain configurationlistDomains- List all domains (paginated)addDomain- Add a new domainremoveDomain- Remove a domainverifyDomain- Verify domain ownership
Projects (14 tools)
listProjects- List projects (paginated)createProject- Create a new projectupdateProject- Update project settingsdeleteProject- Delete a projectlistProjectDomains- List project domains (paginated)getProjectDomain- Get project domain detailsaddProjectDomain- Add domain to projectupdateProjectDomain- Update project domainremoveProjectDomain- Remove domain from projectverifyProjectDomain- Verify project domainlistEnvVars- List environment variables (paginated)getEnvVar- Get environment variable valuecreateEnvVar- Create environment variableseditEnvVar- Edit environment variableremoveEnvVar- Remove environment variable
Teams (11 tools)
getTeams- List all teams (paginated)getTeam- Get team informationcreateTeam- Create a new teamupdateTeam- Update team settingsdeleteTeam- Delete a teamgetTeamMembers- List team members (paginated)inviteUserToTeam- Invite user to teamrequestAccessToTeam- Request team accessgetTeamAccessRequest- Get access request statusjoinTeam- Join team with invite coderemoveTeamMember- Remove team member
Security (8 tools)
updateAttackChallengeMode- Configure attack protectionputFirewallConfig- Create/replace firewall configupdateFirewallConfig- Update firewall configgetFirewallConfig- Get firewall configurationgetActiveAttackStatus- Get attack statusgetBypassIp- List bypass IPs (paginated)addBypassIp- Add bypass IPremoveBypassIp- Remove bypass IP
Access Groups (9 tools)
listAccessGroups- List access groups (paginated)createAccessGroup- Create access groupgetAccessGroup- Get access group detailsupdateAccessGroup- Update access groupdeleteAccessGroup- Delete access grouplistAccessGroupMembers- List group members (paginated)addAccessGroupMember- Add member to groupremoveAccessGroupMember- Remove member from grouplistAccessGroupProjects- List group projects (paginated)
Webhooks (3 tools)
getWebhooks- List webhooks (paginated)createWebhook- Create a webhookdeleteWebhook- Delete a webhook
Log Drains (6 tools)
getIntegrationLogDrains- List integration log drains (paginated)getAllLogDrains- List all log drains (paginated)createLogDrain- Create a log draingetLogDrain- Get log drain detailsdeleteLogDrain- Delete a log draincreateConfigurableLogDrain- Create configurable log drain
Edge Config (10 tools)
getEdgeConfigs- List edge configs (paginated)createEdgeConfig- Create edge configgetEdgeConfig- Get edge config detailsupdateEdgeConfig- Update edge configdeleteEdgeConfig- Delete edge configgetEdgeConfigItems- List edge config items (paginated)getEdgeConfigItem- Get edge config itemcreateEdgeConfigItem- Create edge config itemupdateEdgeConfigItem- Update edge config itemdeleteEdgeConfigItem- Delete edge config item
Authentication (4 tools)
listAuthTokens- List auth tokens (paginated)createAuthToken- Create auth tokengetAuthToken- Get auth token detailsdeleteAuthToken- Delete auth token
Certificates (4 tools)
uploadCert- Upload SSL certificategetCert- Get certificate detailsremoveCert- Remove certificategetIssuedCert- Get issued certificate
Checks (4 tools)
getAllChecks- List all checks (paginated)createCheck- Create a checkgetCheck- Get check detailsupdateCheck- Update a checkrerequestCheck- Rerequest a check
User (3 tools)
getUser- Get user informationlistUserEvents- List user events (paginated)deleteUser- Delete user account
Aliases (5 tools)
listAliases- List aliases (paginated)getAlias- Get alias detailsdeleteAlias- Delete an aliaslistDeploymentAliases- List deployment aliases (paginated)assignAlias- Assign alias to deployment
Artifacts (6 tools)
recordArtifactEvents- Record artifact cache eventsgetArtifactStatus- Get artifact cache statusuploadArtifact- Upload artifactdownloadArtifact- Download artifactartifactExists- Check if artifact existsartifactQuery- Query artifact information
Environment (5 tools)
createCustomEnvironment- Create custom environmentgetCustomEnvironments- List custom environments (paginated)getCustomEnvironment- Get custom environmentupdateCustomEnvironment- Update custom environmentdeleteCustomEnvironment- Delete custom environment
Integrations (5 tools)
getConfigurations- List integration configs (paginated)getConfiguration- Get integration configdeleteConfiguration- Delete integration configgitNamespaces- List git namespacessearchRepo- Search git repositories
Project Members (3 tools)
getProjectMembers- List project members (paginated)addProjectMember- Add project memberremoveProjectMember- Remove project member
Marketplace (11 tools)
getAccountInfo- Get marketplace account infogetMember- Get marketplace member infocreateEvent- Create marketplace eventsubmitBillingData- Submit billing datasubmitInvoice- Submit invoicegetInvoice- Get invoice detailsupdateInvoice- Update invoice (refund)updateResourceSecrets- Update resource secretsupdateResourceSecretsById- Update secrets by IDexchangeSsoToken- Exchange SSO token
Example Usage
Using Resources
// Resources are automatically available in MCP clients
// Access them via: vercel://deployments, vercel://projects, etc.Using Prompts
// Example: Deploy a project
// Prompt: deploy-project
// Arguments: { projectPath: "/path/to/project", projectName: "my-app" }
// Example: Manage domains
// Prompt: manage-domains
// Arguments: { domain: "example.com", action: "add" }Using Tools with Pagination
// List deployments with pagination
const result = await getDeployments({ limit: 20 });
// Response includes pagination metadata:
// {
// data: { deployments: [...] },
// pagination: {
// next: "dpl_xyz123",
// hasMore: true,
// count: 20,
// total: 150
// }
// }
// Get next page
const nextPage = await getDeployments({
limit: 20,
from: result.pagination.next
});Common Workflows
Deploy a Project
- Use the
deploy-projectprompt for guided deployment - Or manually:
createProject→createDeployment→ monitor withgetDeployment
Configure Custom Domain
- Add domain:
addDomain - Verify ownership:
verifyDomain - Add to project:
addProjectDomain - Configure DNS:
createDnsRecord
Set Up Team Access
- Create team:
createTeam - Invite members:
inviteUserToTeam - Configure access groups:
createAccessGroup - Assign projects:
addAccessGroupProject
Architecture
vercel-mcp/
├── src/
│ ├── index.ts # MCP server setup and tool registration
│ ├── config.ts # Configuration management
│ ├── utils.ts # Shared utilities and pagination
│ └── vercel/ # Vercel SDK integrations
│ ├── deployments.ts
│ ├── dns.ts
│ ├── domains.ts
│ ├── projects.ts
│ ├── teams.ts
│ ├── security.ts
│ └── ... (20+ modules)
├── build/ # Compiled JavaScript
└── package.jsonDevelopment
# Install dependencies
npm install
# Build the project
npm run build
# Run locally
npm start
# Format code
npm run checkSecurity Considerations
- API keys are validated on startup
- Sensitive values are masked in logs
- Environment variables are preferred over command line arguments
- All API operations are scoped to the authenticated user/team
Contributing
Contributions are welcome! Please ensure:
- Code follows the existing modular pattern
- All functions include JSDoc comments
- Error handling is comprehensive
- New features include appropriate MCP tools
License
MIT
