Developer docs

MCP server

@deployseal/mcp connects an assistant that speaks the Model Context Protocol, such as Claude, Cursor or VS Code, to your DeploySeal organisation. It reads reviews and issues through the public API and can file an issue, with one organisation API key. It cannot change an issue's status, comment, invite testers, sign off or seal: those stay with the people in the dashboard.

Setup

Create an API key under Settings → Integrations → API keys (Owner or Admin) with the read scope, plus write if the assistant may file issues. The key starts with ds_live_ and is shown once. Node 20 or later; the client starts the server over stdio.

Claude Code

claude mcp add deployseal -e DEPLOYSEAL_API_KEY=ds_live_… -- npx -y @deployseal/mcp

Claude Desktop, Cursor, Windsurf and others

The mcpServers block of the client's configuration file.

{
  "mcpServers": {
    "deployseal": {
      "command": "npx",
      "args": ["-y", "@deployseal/mcp"],
      "env": { "DEPLOYSEAL_API_KEY": "ds_live_…" }
    }
  }
}

VS Code

.vscode/mcp.json, with the key asked for once and kept out of the file.

{
  "servers": {
    "deployseal": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@deployseal/mcp"],
      "env": { "DEPLOYSEAL_API_KEY": "${input:deployseal-key}" }
    }
  },
  "inputs": [
    { "id": "deployseal-key", "type": "promptString", "description": "DeploySeal API key", "password": true }
  ]
}

Then ask, for example: What is still open on the spring release review?, Show me issue #12 with its history, or File a Medium bug on the checkout review: the Place order button is cut off on the confirm page.

Tools

ToolScopeWhat it answers
whoamianyThe organisation the key belongs to, the key’s name and its scopes.
list_reviewsreadEvery review, newest first, with its site, readiness level and gate. Optional status filter.
list_issuesreadIssues of one review, most severe first, one page at a time; filter by status or severity. The reply says when there is another page.
get_issuereadOne issue in full: description, steps, expected and actual behaviour, page, browser, screenshot link and status history.
file_issuewriteFiles a new issue in a review. The reporter is recorded as the API key; it syncs to the connected tracker like any other issue.
review_statusreadEverything outstanding on one review: readiness and gate, open issues by severity, each tester’s progress, each task’s results, signers and the seal, launch safeguards, and what still stands between it and a sealed record.
review_activityreadWhat happened on a review, newest first: launch, testers, issues, signatures, waivers, safeguards, reopens.
list_sitesreadEvery site with its environments and what the widget last reported: verified, last heartbeat, installer, widget version, build marker.
list_recordsreadSealed records, newest first: which version of what was sealed when, by whom, for which decision and release.
org_overviewreadThe organisation at a glance: the Home figures, what needs attention, and the recent reviews with readiness, gate and due dates.
search_issuesreadIssues across every review in one call: "all open High issues on any review". Filter by text, status, severity, open, blocking, site, review and filing date.
org_trendsreadFigures across reviews: filing to verified fix (median, p90), retest failure rate, which testers find the most and how much of it was verified, time to seal, a row per review.

A key with only the read scope makes the server read-only. The API calls a review a campaign on the wire; the tools say review, the word the dashboard uses.

Environment

VariableRequiredMeaning
DEPLOYSEAL_API_KEYyesThe organisation API key. Keep it in the client’s config or a secret store, never in a repository.
DEPLOYSEAL_API_URLnoOnly for self-hosted or preview deployments. Default https://api.deployseal.com.
DEPLOYSEAL_APP_URLnoWhere the issue links in replies point. Default https://deployseal.com.

Good to know

  • Every call is one request to the public API and counts against its rate limit. A 429 comes back as a tool error that says how long to wait.
  • file_issue creates a real issue: it reaches the review's developers like any other and syncs to the connected tracker if there is one. The tool asks the assistant to confirm with you before filing.
  • Revoking the key in DeploySeal stops the server at once; the next call returns a 401.
  • The server runs on your machine and talks only to the DeploySeal API. Nothing is sent anywhere else.

API keys are created under Settings → Integrations.

Open API keys