Integrates with Zephyr Scale for Jira to fetch and update test case information, including test steps, labels, objectives, priorities, and other metadata.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zephyr Scale MCP ServerShow me the test steps and priority for RADAR-T1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zephyr Scale MCP Server
Model Context Protocol (MCP) server that integrates with Zephyr Scale test management tool for Jira. This server allows Claude Desktop and other MCP clients to fetch and update test case information directly from Zephyr Scale.
→ - Get up and running in 5 minutes
Features
Read Operations:
Fetch test case information with steps, labels, details, priority, and status
Get complete raw test case object from API
Write Operations:
Update test case labels
Update any test case field (objective, precondition, priority, etc.)
Automatic handling of mandatory fields
Developer Friendly:
Support for both WSL2 and Windows environments
Easy integration with Claude Desktop
Natural language interactions in chat
Prerequisites
Node.js (v16 or higher)
npm or yarn
Zephyr Scale API token
TypeScript (included as dev dependency)
For WSL2 users: WSL2 with Ubuntu or similar distro
Installation
Clone or navigate to the project directory:
Install dependencies:
Build the TypeScript code:
Configuration
1. Get Your Zephyr Scale API Token
Log in to your Jira/Zephyr Scale account
Navigate to API token settings
Generate a new API token
Copy the token for the next step
2. Configure Claude Desktop
For detailed step-by-step instructions, see the
Edit your Claude Desktop configuration file:
Windows:
C:\Users\YourUsername\AppData\Roaming\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
WSL2 Configuration Example:
Windows Configuration Example:
See QUICK_START.md for complete configuration examples and troubleshooting.
Usage
With Claude Desktop
Once configured in Claude Desktop, restart the application. The tools will be available for use in your chat.
Fetching Test Case Information
Ask Claude naturally:
Returns:
Test case name and key
All labels
Objective/description
Preconditions
Priority and status
Complete test steps with instructions and expected results
Updating Test Case Labels
Ask Claude to update labels:
Note: When updating labels, Claude will first fetch the current test case information to understand the context, then update the labels.
Updating Other Test Case Fields
For advanced updates (objective, precondition, priority, etc.):
Claude will:
Fetch the complete test case details
Modify the requested fields
Update the test case with all mandatory fields intact
Available Tools
get_zephyr_steps
Fetches complete test case information including labels, details, and test steps from Zephyr Scale.
Input:
testCaseKey(string): The test case ID (e.g., "RADAR-T1")
Output:
JSON object containing:
testCaseKey: Test case IDname: Test case namelabels: Array of labels assigned to the test caseobjective: Test objective/description from Detailsprecondition: Prerequisites for the testpriority: Priority levelstatus: Current test case statussteps: Array of test steps with:index: Step numberinstruction: Step descriptionexpectedResult: Expected outcometestData: Test data (if applicable)
update_test_case_labels
Updates the labels for a specific test case in Zephyr Scale.
Input:
testCaseKey(string): The test case ID (e.g., "RADAR-T1")labels(array of strings): List of labels to set for the test case
Output:
Success message confirming the labels were updated
Important Notes:
This tool REPLACES all existing labels with the new list provided
To add a label, you must include all existing labels plus the new one
To remove a label, provide the list without it
To remove all labels, provide an empty array
[]
Example Usage:
"Update RADAR-T1 labels to: smoke-test, regression, high-priority"
"Set labels for RADAR-T5 to: critical, P1"
"Remove all labels from RADAR-T10"
get_test_case_details
Fetches the complete raw test case object from Zephyr Scale API.
Input:
testCaseKey(string): The test case ID (e.g., "RADAR-T1")
Output:
Complete JSON object with all test case fields as returned by Zephyr API
Use Case:
Get the full test case structure including all mandatory fields
Useful before making updates to ensure all required fields are present
Returns raw API response for maximum flexibility
update_test_case
Updates a test case with a complete payload to satisfy mandatory field requirements.
Input:
testCaseKey(string): The test case ID (e.g., "RADAR-T1")payload(object): The complete test case object with modified fields
Output:
Success message confirming the update
Workflow:
Use
get_test_case_detailsto fetch the current test caseModify the desired fields in the returned object
Use
update_test_casewith the modified object
Important Notes:
Zephyr API requires all mandatory fields to be present in PUT requests
This tool accepts the complete payload to avoid "missing mandatory field" errors
Best practice: Always fetch details first, then update
Example Usage:
"Update the objective for RADAR-T1 to 'Test login functionality'"
"Change priority of RDR-T23 to High"
"Update precondition for RADAR-T5"
Development
Build
Compile TypeScript to JavaScript:
Watch Mode
Automatically recompile on changes:
Project Structure
API Integration
Base URL:
https://api.zephyrscale.smartbear.com/v2Endpoints:
GET /testcases/{testCaseKey}- Fetch test case details, labels, and metadataGET /testcases/{testCaseKey}/teststeps- Fetch test stepsPUT /testcases/{testCaseKey}- Update test case details (including labels)
Authentication: Bearer token via Authorization header
Troubleshooting
For common issues and solutions, see the
"ZEPHYR_API_KEY environment variable is not set"
Make sure you have set the ZEPHYR_API_KEY correctly in your Claude Desktop configuration.
WSL2: Set it in the bash command: ZEPHYR_API_KEY='your_token'
Windows: Set it in the env section of the config
"Server disconnected" or "Cannot attach to MCP server"
Check the logs:
Common causes:
Incorrect Node.js path (WSL2 users: use full path like
/home/user/.nvm/versions/node/v22.17.1/bin/node)Missing
dist/index.jsfile (runnpm run build)Invalid API token
"Cannot find module" errors
Run npm install to ensure all dependencies are installed, then rebuild:
"node: command not found" (WSL2 only)
When using WSL2, don't use just node - use the full path to your Node.js binary:
License
ISC
Support
For issues or questions, refer to the MCP SDK documentation or Zephyr Scale API documentation.