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
| Tool | Scope | What it answers |
|---|---|---|
| whoami | any | The organisation the key belongs to, the key’s name and its scopes. |
| list_reviews | read | Every review, newest first, with its site, readiness level and gate. Optional status filter. |
| list_issues | read | Issues 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_issue | read | One issue in full: description, steps, expected and actual behaviour, page, browser, screenshot link and status history. |
| file_issue | write | Files 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_status | read | Everything 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_activity | read | What happened on a review, newest first: launch, testers, issues, signatures, waivers, safeguards, reopens. |
| list_sites | read | Every site with its environments and what the widget last reported: verified, last heartbeat, installer, widget version, build marker. |
| list_records | read | Sealed records, newest first: which version of what was sealed when, by whom, for which decision and release. |
| org_overview | read | The organisation at a glance: the Home figures, what needs attention, and the recent reviews with readiness, gate and due dates. |
| search_issues | read | Issues 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_trends | read | Figures 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
| Variable | Required | Meaning |
|---|---|---|
| DEPLOYSEAL_API_KEY | yes | The organisation API key. Keep it in the client’s config or a secret store, never in a repository. |
| DEPLOYSEAL_API_URL | no | Only for self-hosted or preview deployments. Default https://api.deployseal.com. |
| DEPLOYSEAL_APP_URL | no | Where 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