通过MCP管理Vercel项目、部署、域和环境变量
一个模型上下文协议(MCP)服务器,它公开了Vercel的API,用于项目生命周期管理、部署操作和运行时可见性。
______________________________________________________________________
概述
CL Vercel MCP服务器提供无状态、多租户的Vercel自动化:
- 正式文档中的完整Vercel API-call目录发现
- MVP端点包装器,用于高价值的日常运营
- 用于未覆盖的API调用的通用回退终结点工具
非常适合:
- CI/CD自动化和部署编排
- 项目和环境配置管理
- 域、别名和运行时日志故障排除工作流
______________________________________________________________________
工具
health_check - Server readiness check
检查MCP服务器的基本就绪状态。
输入:
- 无
输出:
{
"status": "ok",
"server": "CL Vercel MCP Server"
}______________________________________________________________________
list_vercel_api_calls - List extracted Vercel API calls
返回从Vercel REST API文档中提取的完整端点目录。
输入:
category(字符串,可选)-类别筛选器,例如projects,deployments,或environment
输出:
{
"count": 274,
"category": "projects",
"calls": []
}______________________________________________________________________
list_projects - List projects
映射到 GET /v10/projects.
输入:
team_id(字符串,可选)-团队范围slug(字符串,可选)-团队段塞范围params(对象,可选)-查询参数(limit,search等等)
______________________________________________________________________
get_project - Get a project by ID or name
映射到 GET /v9/projects/{idOrName}.
输入:
id_or_name(字符串,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
create_project - Create a project
映射到 POST /v11/projects.
输入:
body(object,必填)-项目创建有效载荷team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
update_project - Update a project
映射到 PATCH /v9/projects/{idOrName}.
输入:
id_or_name(字符串,必填)body(对象,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
list_deployments - List deployments
映射到 GET /v6/deployments.
输入:
team_id(字符串,可选)slug(字符串,可选)params(对象,可选)
______________________________________________________________________
get_deployment - Get deployment details
映射到 GET /v13/deployments/{idOrUrl}.
输入:
id_or_url(字符串,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
create_deployment - Create deployment
映射到 POST /v13/deployments.
输入:
body(对象,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
cancel_deployment - Cancel deployment
映射到 PATCH /v12/deployments/{id}/cancel.
输入:
deployment_id(字符串,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
get_deployment_events - Retrieve deployment events
映射到 GET /v3/deployments/{idOrUrl}/events.
输入:
id_or_url(字符串,必填)team_id(字符串,可选)slug(字符串,可选)params(对象,可选)
______________________________________________________________________
list_project_environment_variables - List project environment variables
映射到 GET /v10/projects/{idOrName}/env.
输入:
id_or_name(字符串,必填)team_id(字符串,可选)slug(字符串,可选)params(对象,可选)
______________________________________________________________________
create_project_environment_variables - Create project environment variables
映射到 POST /v10/projects/{idOrName}/env.
输入:
id_or_name(字符串,必填)body(对象或数组,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
update_project_environment_variable - Update a project environment variable
映射到 PATCH /v9/projects/{idOrName}/env/{id}.
输入:
id_or_name(字符串,必填)environment_variable_id(字符串,必填)body(对象,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
list_project_domains - List project domains
映射到 GET /v9/projects/{idOrName}/domains.
输入:
id_or_name(字符串,必填)team_id(字符串,可选)slug(字符串,可选)params(对象,可选)
______________________________________________________________________
add_project_domain - Add domain to project
映射到 POST /v10/projects/{idOrName}/domains.
输入:
id_or_name(字符串,必填)body(对象,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
assign_deployment_alias - Assign alias to deployment
映射到 POST /v2/deployments/{id}/aliases.
输入:
deployment_id(字符串,必填)body(对象,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
list_deployment_aliases - List deployment aliases
映射到 GET /v2/deployments/{id}/aliases.
输入:
deployment_id(字符串,必填)team_id(字符串,可选)slug(字符串,可选)
______________________________________________________________________
get_runtime_logs_for_deployment - Get deployment runtime logs
映射到 GET /v1/projects/{projectId}/deployments/{deploymentId}/runtime-logs.
输入:
project_id(字符串,必填)deployment_id(字符串,必填)team_id(字符串,可选)slug(字符串,可选)params(对象,可选)
______________________________________________________________________
vercel_api_request - Generic Vercel endpoint fallback
当专用包装工具尚不可用时,调用任何Vercel REST端点。
输入:
method(字符串,必填)path(字符串,必填)team_id(字符串,可选)slug(字符串,可选)headers(对象,可选)params(对象,可选)json_body(任意,可选)body(字符串,可选)timeout_seconds(数字,可选)follow_redirects(布尔值,可选)max_response_chars(整数,可选)
使用示例:
{
"tool": "vercel_api_request",
"arguments": {
"method": "GET",
"path": "/v10/projects",
"team_id": "team_xxx"
}
}______________________________________________________________________
API参数参考
Common Parameters
team_id-团队背景(teamId查询值)slug-团队蛞蝓上下文(slug查询值)params-其他特定于端点的查询参数body/json_body-写入操作的端点负载
资源格式
- 项目:
id_or_name(例如:my-project) - 部署:
deployment_id或id_or_url(例如:dpl_abc123) - 环境变量:
environment_variable_id(例如:env_abc123)
______________________________________________________________________
身份验证指南
Vercel API Key Guide
身份验证通过以下方式在服务器端处理 fastmcp-credentials网关通过以下方式注入您的Vercel令牌 X-MCP-Cred-Fields 头作为JSON对象(例如。 {"apiToken": ""})--没有 auth_token 在任何工具调用中都需要参数。
步骤1:创建令牌
- 打开Vercel帐户令牌设置:https://vercel.com/account/tokens
- 创建个人访问令牌
- 复制并安全存储令牌
步骤2:配置网关
将令牌提供给MewCP网关,后者通过以下方式注入令牌 X-MCP-Cred-Api-Key 在每一个请求。
第三步:团队范围
如果使用团队资源,包括 team_id 和 slug 在您的工具调用中。
______________________________________________________________________
设置
pip install -r requirements.txt运行服务器
# stdio
python server.py
# sse
python server.py --transport sse --host 127.0.0.1 --port 8001
# streamable-http
python server.py --transport streamable-http --host 127.0.0.1 --port 8001______________________________________________________________________
故障排除
Common Issues
令牌缺失或无效
- 原因:令牌无效或过期,或丢失
X-MCP-Cred-Api-Key来自网关的标头 - 解决方案:验证网关是否配置了有效的Vercel令牌,然后重试
团队资源访问错误
- 原因:未调用团队范围的端点
team_id/slug - 解决方案:添加正确的团队范围参数
格式错误的请求有效载荷
- 原因:中缺少必填字段
body或无效类型 - 解决方案:根据Vercel端点文档验证有效载荷形状
未知端点路径
- 原因:中的API版本或路径错误
vercel_api_request - 解决方案:使用
list_vercel_api_calls发现有效的方法/路径对
______________________________________________________________________
资源
Links
- Vercel REST API文档:https://vercel.com/docs/rest-api
- Vercel代币管理:https://vercel.com/account/tokens
- FastMCP文档:https://gofastmcp.com/v2/getting-started/welcome
- 本地提取的端点目录:
vercel_mcp/vercel_endpoints.json
______________________________________________________________________
项目结构
cl-mcp-vercel/
|-- server.py
|-- requirements.txt
|-- README.md
`-- vercel_mcp/
|-- __init__.py
|-- cli.py
|-- config.py
|-- tools.py
|-- schemas.py
|-- service.py
`-- vercel_endpoints.json