Vercel Deployment Mcp

io.github.addiplus由 GitHub 账号 addiplus 发布v0.2.0更新于 Oct 24, 2026

Reference MCP stdio server for observing Vercel projects and deployments.

发布方自己的服务:Agent Permissions Index

概览

AI 生成的概览

一个本地 stdio MCP 服务器,让助手使用 Vercel API 令牌读取 Vercel 项目与部署信息。

可以做什么
列出配置账户或团队可见的项目,支持搜索与数量限制,并按 ID 或名称获取单个项目。列出近期部署,可按项目、状态或数量过滤,并按 ID 或 URL 获取单个部署及其当前状态。结果每次只返回一页,最多 100 条,没有游标分页,需要更精确的结果时应缩小过滤条件。
适用场景
适合在调试或审查发布时让助手查询 Vercel 项目与部署状态,而不必打开 Vercel 控制台。它是小型的社区参考实现,并非 Vercel 官方 MCP 服务的替代品。
运行要求
通过 stdio 在本地运行,通常用 npx 从 npm 包启动,或从源码检出后用 Node.js 18 及以上版本运行。需要在 VERCEL_TOKEN 环境变量中提供 Vercel API 访问令牌;VERCEL_TEAM_ID 可选,用于团队范围。可选限流设置 VERCEL_MCP_MIN_INTERVAL_MS 与 VERCEL_MCP_MAX_CONCURRENT。需要访问 Vercel API 的网络连接。
安装前请注意
Vercel API 令牌属于凭据,只应放在环境变量中,避免分享包含它的配置。工具被描述为只读查询,但令牌自身权限决定其可访问范围。Vercel 返回的部署 URL 可能包含团队标识。请求会发送给第三方 Vercel API。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Vercel Deployment Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

vercel-deployment-mcp

[CI]

A reference Model Context Protocol server for observing Vercel projects and deployments over stdio.

This is a community reference implementation focused on deployment-workflow patterns. It is not a replacement for Vercel's own MCP offering. Its purpose is to demonstrate, in a small and readable codebase, how a deployment-focused MCP server can handle configuration cleanly and behave predictably on short-lived infrastructure.

Tools

ToolDescription
list_projectsList projects visible to the configured account/team (search, limit)
get_projectFetch one project by ID or name
list_deploymentsList recent deployments (filter by project, state, limit)
get_deploymentFetch one deployment by ID or URL, including current state

list_projects and list_deployments each return a single page of up to limit results (default 20, max 100). There is no cursor pagination; narrow the request with search, projectId, or state to see more specific results.

Install

From npm:

bash
npm install @addiplus/vercel-deployment-mcp

Or run it directly without installing:

bash
npx @addiplus/vercel-deployment-mcp

From source:

bash
git clone https://github.com/addiplus/vercel-deployment-mcp.gitcd vercel-deployment-mcpnpm installnpm run buildnpm test

Running the test suite needs a newer Node than the server does. vitest 4.1.10 declares engines.node of ^20.0.0 || ^22.0.0 || >=24.0.0, and the vite 8.1.3 this lockfile pins narrows that to ^20.19.0 || >=22.12.0. The suite runs on the intersection of the two, ^20.19.0 || ^22.12.0 || >=24.0.0: the 20 line from 20.19.0, the 22 line from 22.12.0, and 24 and above. The 23 line is outside it, because vitest does not cover 23. CI runs 22 and 24. The published package itself still runs on Node >=18 per engines.

Configuration

VariableRequiredPurpose
VERCEL_TOKENyesVercel access token (create in account settings)
VERCEL_TEAM_IDnoScope requests to a team
VERCEL_MCP_MIN_INTERVAL_MSnoMinimum milliseconds between the start of one Vercel API request and the next (default 250)
VERCEL_MCP_MAX_CONCURRENTnoMaximum number of Vercel API requests in flight at once (default 4)

On an HTTP 429 with a numeric Retry-After header of 10 seconds or less, the server waits that long and retries the request once; any other 429 is surfaced as an error on the first attempt.

Limits

LimitValue
Longest search value4096 characters
Longest projectId, state, idOrName, idOrUrl value512 characters
Largest accepted protocol frame10485760 bytes
Highest accepted VERCEL_MCP_MIN_INTERVAL_MS60000

The frame limit counts the message and not the newline that delimits it, so a message of exactly 10485760 bytes is accepted. Everything before that newline is the message, a carriage return sitting just in front of it included.

Each of these limits has its own behaviour above the value in the table. An over-long argument fails input validation: the call comes back as a JSON-RPC -32602 invalid-params result, no Vercel API request is made, and nothing is written to stderr for it. A frame above the frame limit is dropped, one line on stderr says so, and the connection keeps serving. An interval above the ceiling is not refused, it is reduced to the ceiling: the server runs with the reduced value, and one line on stderr says so the first time it makes a Vercel API request. The same stderr report repeated back to back is written twice at most, the second time to say that further identical reports are suppressed.

initialize and ping are answered at any time. tools/list and tools/call are answered only once the client has completed the initialization handshake: an initialize request the server can answer, followed by notifications/initialized. Both halves are required, so the notification on its own completes nothing, and neither does an initialize the server rejects. A client that writes both halves and its first call in a single write is served, rather than being refused for not waiting for the initialize response. Before the handshake, those two methods are refused with JSON-RPC error -32600 and no Vercel API request is made.

Example client configuration (Claude Desktop / Claude Code):

json
{  "mcpServers": {    "vercel-deployment": {      "command": "npx",      "args": ["-y", "@addiplus/vercel-deployment-mcp"],      "env": { "VERCEL_TOKEN": "…" }    }  }}

When running from a source checkout, use "command": "node" with "args": ["/path/to/vercel-deployment-mcp/dist/index.js"] instead.

Design principles

First written 2026-07-10 and kept current with the code since; claim 1 was restated when error text began being redacted once, where it becomes client-visible. Each claim below is implemented in code and verified by the test suite where testable (test/); design properties cite the implementing code.

  1. Configured values never appear in an error. The access token is read only from the environment. Error text is shaped, size-bounded, and passed through a redaction guard once, where it becomes client-visible text, so an upstream API message cannot echo the token or the team id back (src/vercel.ts); the fixed hint appended after that bound is text this server writes and carries nothing to replace. A successful result is a fixed projection of the upstream body and is not redacted, so a team identifier that the Vercel API itself returns inside a deployment URL still appears there.
  2. stdout belongs to the protocol. All diagnostics go to stderr (src/index.ts), so no log line can leak into a tool response.
  3. Minimal footprint. The tools are read-only observations of projects and deployments; the server requests nothing beyond what those reads need.
  4. Stateless by design. Configuration is re-read from the environment on every tool call (verified in test/tools.test.ts), so behavior is identical on long-lived hosts and short-lived workers. The one piece of module-level state is a request throttle (src/vercel.ts) that spaces out and caps concurrent Vercel API calls; its interval and concurrency settings are read once at first use, and it holds no credentials or response data.

Roadmap

  • Deployment actions with an explicit out-of-band approval step (exploring the patterns discussed in MCP spec issues #2919/#2920 around multi-round tool results on stateless transports).
  • Standardizing how server.json describes stdio package install manifests and how clients convert them into local configuration files (spec issue #2963, registry issue #749).

License

MIT

来源:README.md,提交 6911b5b

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Vercel 集成