zephyr-squad-cloud-mcp
v1.0.6
Published
MCP server for Zephyr Squad Cloud API with JWT authentication
Maintainers
Readme
Zephyr Squad Cloud MCP Server
A local MCP (Model Context Protocol) server that connects Claude to the Zephyr Squad Cloud API using per-request JWT authentication.
How JWT auth works
Each API call requires a freshly signed JWT token built from:
- Access Key →
issclaim +zapiAccessKeyheader - Secret Key → HMAC-SHA256 signing key
- Account ID →
subclaim - HTTP Method + Path + Query Params → SHA-256 hash →
qsh(Query String Hash) claim
This prevents replay attacks — every token is tied to the exact request it was made for.
Setup
1. Get your Zephyr API credentials
- Open any Jira project → navigate to the Zephyr section → click API keys
- Click Generate and copy both the Access Key and Secret Key
- Get your Account ID: go to your Jira profile; it's the last segment of the URL
2. Configure Claude Desktop
No installation needed. Just add the following to your claude_desktop_config.json:
{
"mcpServers": {
"zephyr": {
"command": "npx",
"args": ["-y", "zephyr-squad-cloud-mcp@latest"],
"env": {
"ZEPHYR_BASE_URL": "https://prod-api.zephyr4jiracloud.com/connect",
"ZEPHYR_ACCESS_KEY": "<your-access-key>",
"ZEPHYR_SECRET_KEY": "<your-secret-key>",
"ZEPHYR_ACCOUNT_ID": "<your-account-id>"
}
}
}
}npx will automatically download and run the latest version — no manual installs or updates required. Every time Claude Desktop restarts, it picks up the latest published version.
The config file is located at:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Available tools
| Tool | Description |
|------|-------------|
| zephyr_get_test_cycles | List test cycles for a project/version |
| zephyr_create_test_cycle | Create a new test cycle |
| zephyr_update_test_cycle | Update an existing test cycle |
| zephyr_delete_test_cycle | Delete a test cycle |
| zephyr_get_executions | Get executions in a cycle |
| zephyr_create_execution | Add a test case to a cycle |
| zephyr_get_execution | Get a single execution by ID |
| zephyr_update_execution_status | Update execution status (Pass/Fail/WIP/Blocked) |
| zephyr_bulk_update_execution_status | Update multiple executions at once |
| zephyr_get_test_steps | Get test steps for a test case |
| zephyr_add_test_step | Add a step to a test case |
| zephyr_update_test_step | Update an existing step |
| zephyr_delete_test_step | Delete a step |
| zephyr_get_step_results | Get step-level results for an execution |
| zephyr_update_step_result | Update a step result status |
| zephyr_get_folders | List folders in a cycle |
| zephyr_create_folder | Create a folder within a cycle |
Execution status IDs
| ID | Status | |----|--------| | -1 | Unexecuted | | 1 | Pass | | 2 | Fail | | 3 | WIP (In Progress) | | 4 | Blocked |
Example prompts
Get all test cycles for project 10001, version -1Create a test cycle called "Sprint 42 Regression" in project 10001Mark execution abc123 as Pass in cycle xyz, project 10001, version -1, issue 20005Get all test steps for issue 20005 in project 10001Requirements
- Node.js >= 18
- Zephyr Squad Cloud license on your Jira instance
