{
  "markdown": "# vercel-deployment-mcp\n\n[![CI](https://github.com/addiplus/vercel-deployment-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/addiplus/vercel-deployment-mcp/actions/workflows/ci.yml)\n\nA reference [Model Context Protocol](https://modelcontextprotocol.io) server for\nobserving Vercel projects and deployments over stdio.\n\nThis is a community reference implementation focused on deployment-workflow\npatterns. It is not a replacement for Vercel's own MCP offering. Its purpose\nis to demonstrate, in a small and readable codebase, how a deployment-focused\nMCP server can handle configuration cleanly and behave predictably on\nshort-lived infrastructure.\n\n## Tools\n\n| Tool | Description |\n| --- | --- |\n| `list_projects` | List projects visible to the configured account/team (search, limit) |\n| `get_project` | Fetch one project by ID or name |\n| `list_deployments` | List recent deployments (filter by project, state, limit) |\n| `get_deployment` | Fetch one deployment by ID or URL, including current state |\n\n`list_projects` and `list_deployments` each return a single page of up to\n`limit` results (default 20, max 100). There is no cursor pagination; narrow\nthe request with `search`, `projectId`, or `state` to see more specific\nresults.\n\n## Install\n\nFrom npm:\n\n```bash\nnpm install @addiplus/vercel-deployment-mcp\n```\n\nOr run it directly without installing:\n\n```bash\nnpx @addiplus/vercel-deployment-mcp\n```\n\nFrom source:\n\n```bash\ngit clone https://github.com/addiplus/vercel-deployment-mcp.git\ncd vercel-deployment-mcp\nnpm install\nnpm run build\nnpm test\n```\n\nBuilding and testing this repo requires Node 22+ (CI runs 22 and 24); the\npublished package runs on Node >=18 per `engines`.\n\n## Configuration\n\n| Variable | Required | Purpose |\n| --- | --- | --- |\n| `VERCEL_TOKEN` | yes | Vercel access token (create in account settings) |\n| `VERCEL_TEAM_ID` | no | Scope requests to a team |\n| `VERCEL_MCP_MIN_INTERVAL_MS` | no | Minimum milliseconds between the start of one Vercel API request and the next (default `250`) |\n| `VERCEL_MCP_MAX_CONCURRENT` | no | Maximum number of Vercel API requests in flight at once (default `4`) |\n\nOn an HTTP 429 with a numeric `Retry-After` header of 10 seconds or less, the\nserver waits that long and retries the request once; any other 429 is\nsurfaced as an error on the first attempt.\n\nExample client configuration (Claude Desktop / Claude Code):\n\n```json\n{\n  \"mcpServers\": {\n    \"vercel-deployment\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@addiplus/vercel-deployment-mcp\"],\n      \"env\": { \"VERCEL_TOKEN\": \"…\" }\n    }\n  }\n}\n```\n\nWhen running from a source checkout, use `\"command\": \"node\"` with\n`\"args\": [\"/path/to/vercel-deployment-mcp/dist/index.js\"]` instead.\n\n## Design principles\n\nDated 2026-07-10. Each claim below is implemented in code and verified by the\ntest suite where testable (`test/`); design properties cite the implementing\ncode.\n\n1. **Configuration values never appear in output.** The access token is read\n   only from the environment. Error messages are shaped, size-bounded, and\n   passed through a redaction guard so upstream API messages cannot echo the\n   value back (`src/vercel.ts`).\n2. **stdout belongs to the protocol.** All diagnostics go to stderr\n   (`src/index.ts`), so no log line can leak into a tool response.\n3. **Minimal footprint.** v0.1 tools are read-only observations of projects\n   and deployments; the server requests nothing beyond what those reads need.\n4. **Stateless by design.** Configuration is re-read from the environment on\n   every tool call (verified in `test/tools.test.ts`), so behavior is\n   identical on long-lived hosts and short-lived workers. The one piece of\n   module-level state is a request throttle (`src/vercel.ts`) that spaces out\n   and caps concurrent Vercel API calls; its interval and concurrency\n   settings are read once at first use, and it holds no credentials or\n   response data.\n\n## Roadmap\n\n- Deployment actions with an explicit out-of-band approval step (exploring the\n  patterns discussed in MCP spec issues #2919/#2920 around multi-round tool\n  results on stateless transports).\n- Standardizing how `server.json` describes stdio package install manifests\n  and how clients convert them into local configuration files (spec issue\n  #2963, registry issue #749).\n\n## License\n\nMIT\n",
  "bytes": 4317,
  "sha": "f94fe9a7aab9f652ad850749cd95315c66b410e49e2021e738aa57a62f5ac710",
  "repo_slug": "addiplus/vercel-deployment-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_addiplus_vercel_deployment_mcp_52bc49f3/readme"
}