Zephyr Review
БесплатноНе проверенA read-only MCP server that exposes Zephyr Scale Cloud test data to review a Jira story's test coverage, answering whether tests are adequate and passing.
Описание
A read-only MCP server that exposes Zephyr Scale Cloud test data to review a Jira story's test coverage, answering whether tests are adequate and passing.
README
A read-only Model Context Protocol server that exposes Zephyr Scale Cloud test data as review-oriented tools, so Claude (e.g. in Cowork) can review a story against its actual test coverage.
It answers: does this story have adequate, well-formed tests, and are they passing?
The story text (description, acceptance criteria) is expected to come from Jira (e.g. the Atlassian Rovo MCP). This server supplies the test-coverage half of the picture from Zephyr.
What it does (and does not)
- Read-only. Every tool issues only
GETrequests. No tool creates, updates, or deletes Zephyr data. "Draft new tests" is a Claude reasoning activity in the conversation, not a write call. - Assumes your team links test cases to Jira issues in Zephyr (the
issuelinksrelationship). If a story has no linked tests, coverage reads as empty.
Tools
| Tool | Purpose |
|---|---|
review_story_coverage(issueKey) |
Headline tool. Fans out over the linked test cases, their steps, and executions and returns one digested coverage bundle plus a pass/fail/not-run summary. Heavier — use when assessing coverage/quality/pass-fail. |
list_story_test_cases(issueKey) |
Lightweight, story-scoped listing: the test cases linked to a story, each with key, name/title, priority, and status. No steps or executions. Use when you just want the list/titles of a story's tests. |
get_test_case(testCaseKey) |
Full detail of one test case, including ordered steps (empty expected-result fields kept visible for quality review). |
list_story_executions(issueKey) |
Focused pass/fail view: each linked execution's status, cycle, and date. |
list_test_case_executions(testCaseKey) |
Full execution history of one test case, newest-first — every run across all cycles plus ad-hoc runs (not just the latest). Each execution carries status, cycle, date, comment, timing (execution/estimated ms), who ran it, environment, custom fields, and linked Jira issues. Test-case-scoped; use list_story_executions for a whole story. |
search_test_cases(projectKey, query) |
Project-wide discovery: test cases in a project whose key/name/objective match query (client-side filter — the Zephyr API has no full-text search). Not story-scoped; use only when you don't have an issue key. |
get_project(projectKey) |
Project identifier and metadata. |
Configuration
Set via environment variables (see .env.example):
| Variable | Required | Default | Notes |
|---|---|---|---|
ZEPHYR_API_TOKEN |
yes | — | JWT bearer token. Generate in Jira → profile → Zephyr API keys. The server fails fast if unset. |
ZEPHYR_REGION |
no | us |
One of us, eu, au, de. |
ZEPHYR_BASE_URL |
no | derived from region | Full base URL override; takes precedence over ZEPHYR_REGION. |
Regional base URLs:
us→https://api.zephyrscale.smartbear.com/v2(default)eu→https://eu.api.zephyrscale.smartbear.com/v2au→https://au.api.zephyrscale.smartbear.com/v2de→https://de.api.zephyrscale.smartbear.com/v2
The token maps to a Jira/Zephyr user; the server sees only what that user can see.
Usage
For using the server in an MCP client. Requires Node.js 18+. No clone or build needed — npx fetches and runs the published package.
Add to your MCP client config (Claude Cowork / Claude Desktop):
{
"mcpServers": {
"zephyr": {
"command": "npx",
"args": ["-y", "@pabloveintimilla/zephyr-mcp"],
"env": {
"ZEPHYR_API_TOKEN": "<your-token>",
"ZEPHYR_REGION": "us"
}
}
}
}
That's it — the client launches the server on demand.
Development
For working on the server itself: clone the repository and install dependencies.
git clone https://github.com/pabloveintimilla/zephyr-mcp.git
cd zephyr-mcp
npm install
npm run build
Run it:
ZEPHYR_API_TOKEN=<your-token> npm start # from built dist/
ZEPHYR_API_TOKEN=<your-token> npm run dev # from source, no build step
Run the tests:
npm test
Point an MCP client at your local build (instead of the published package):
{
"mcpServers": {
"zephyr": {
"command": "node",
"args": ["/absolute/path/to/zephyr-mcp/dist/index.js"],
"env": {
"ZEPHYR_API_TOKEN": "<your-token>",
"ZEPHYR_REGION": "us"
}
}
}
}
Spec-driven development with OpenSpec
This project uses OpenSpec for spec-driven
development. Do not start coding a feature directly — capture the intent as a change
first, then implement against it. This keeps openspec/specs/ (the source of truth for
current behavior) accurate and makes each change reviewable before code is written.
Layout:
openspec/specs/— the current, agreed behavior (one folder per capability).openspec/changes/— active changes in progress (proposal, design, specs delta, tasks).openspec/changes/archive/— completed changes, kept for history.
Workflow (run as slash commands in Claude Code, or with the openspec CLI):
- Explore —
/opsx:exploreto think through the problem before committing to a design. - Propose —
/opsx:proposeto create a change withproposal.md,design.md, a spec delta underspecs/, andtasks.md. - Apply —
/opsx:applyto implement the tasks, checking them off as you go. - Archive —
/opsx:archiveonce the work is done and verified; this syncs the spec delta intoopenspec/specs/and moves the change toarchive/.
Useful CLI commands:
openspec list # active changes
openspec status --change "<name>" # artifacts + task progress
openspec instructions <artifact> --change "<name>"
Publishing / Release
Publishing to npm is automated by GitHub Actions (.github/workflows/publish.yml). Publishing a GitHub Release builds the package and runs npm publish --provenance --access public.
One-time setup:
- Create an npm access token (Automation or Granular, with publish rights for
@pabloveintimilla/zephyr-mcp). - Add it as a repository secret named
NPM_TOKEN(Settings → Secrets and variables → Actions).
Each release:
- Bump the version:
npm version <patch|minor|major>(commits and tags). - Push with tags:
git push --follow-tags. - Create a GitHub Release for that tag — the workflow publishes it.
Verify: npx -y @pabloveintimilla/zephyr-mcp on a clean shell resolves the new version.
Reference
The Zephyr Scale Cloud OpenAPI spec is vendored at docs/zephyr.api.yml.
Установить Zephyr Review в Claude Desktop, Claude Code, Cursor
unyly install zephyr-review-mcpСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add zephyr-review-mcp -- npx -y @pabloveintimilla/zephyr-mcpFAQ
Zephyr Review MCP бесплатный?
Да, Zephyr Review MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Zephyr Review?
Нет, Zephyr Review работает без API-ключей и переменных окружения.
Zephyr Review — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Zephyr Review в Claude Desktop, Claude Code или Cursor?
Открой Zephyr Review на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Notion
Read and write pages in your workspace
автор: NotionLinear
Issues, cycles, triage — from Claude
автор: LinearGoogle Drive
Search and read your Drive files
автор: Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
автор: mindsdbCompare Zephyr Review with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории productivity
