JIRA Zephyr MCP Server
Provides comprehensive integration with JIRA's Zephyr test management system, enabling test plan and cycle management, test execution, issue linking, and test reporting capabilities.
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., "@JIRA Zephyr MCP Servershow me the test execution status for cycle 'Q4 Regression'"
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.
JIRA Zephyr MCP Server
A Model Context Protocol (MCP) server that provides comprehensive integration with JIRA's Zephyr test management system. This server enables seamless test management operations including creating test plans, managing test cycles, executing tests, and reading JIRA issues.
Features
Core Capabilities
Test Plan Management: Create and list test plans in Zephyr
Test Cycle Management: Create and manage test execution cycles
JIRA Integration: Read JIRA issue details and metadata
Test Execution: Update test execution results and status
Progress Tracking: Monitor test execution progress and statistics
Issue Linking: Associate test cases with JIRA issues
Reporting: Generate comprehensive test execution reports
Available Tools
read_jira_issue - Retrieve JIRA issue information
create_test_plan - Create new test plans in Zephyr
list_test_plans - Browse existing test plans
create_test_cycle - Create test execution cycles
list_test_cycles - View test cycles with execution status
execute_test - Update test execution results
get_test_execution_status - Check test execution progress
link_tests_to_issues - Associate tests with JIRA issues
generate_test_report - Create test execution reports
Related MCP server: Zephyr Scale MCP Server
Prerequisites
Node.js 18.0.0 or higher
JIRA instance with Zephyr Scale or Zephyr Squad
Valid JIRA API credentials
Zephyr API access token
Integration with Cursor
Clone the project, then add the following to your Cursor configuration:
{
"mcpServers": {
"jira-zephyr": {
"command": "node",
"args": ["/path/to/jira-zephyr-mcp/dist/index.js"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@company.com",
"JIRA_API_TOKEN": "your-jira-api-token",
"ZEPHYR_API_TOKEN": "your-zephyr-api-token"
}
}
}
}Using Docker
Alternatively, you can configure Cursor to run the MCP server in Docker (ensure the image is built first):
{
"mcpServers": {
"jira-zephyr": {
"command": "docker",
"args": ["run", "--rm", "-i","-e","JIRA_BASE_URL","-e","JIRA_USERNAME","-e","JIRA_API_TOKEN","-e","ZEPHYR_API_TOKEN", "jira-zephyr-mcp"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@company.com",
"JIRA_API_TOKEN": "your-jira-api-token",
"ZEPHYR_API_TOKEN": "your-zephyr-api-token"
}
}
}
}Installation (for development)
Clone the repository:
git clone https://github.com/your-username/jira-zephyr-mcp.git
cd jira-zephyr-mcpInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
Copy the example environment file:
cp .env.example .envConfigure your JIRA and Zephyr credentials in
.env:
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_USERNAME=your-email@company.com
JIRA_API_TOKEN=your-jira-api-token
ZEPHYR_API_TOKEN=your-zephyr-api-tokenGetting API Tokens
JIRA API Token
Navigate to Security → API tokens
Create a new API token
Copy the token to your
.envfile
Zephyr API Token
In JIRA, go to Apps → Zephyr Scale → API Access Tokens
Generate a new token
Copy the token to your
.envfile
Usage
Development
npm run devProduction
npm startRunning with Docker
You can containerize and run the MCP server using Docker.
Prerequisites
Docker installed on your system
The project cloned locally
Building the Docker Image
Navigate to the project directory:
cd /path/to/jira-zephyr-mcpBuild the Docker image:
docker build -t jira-zephyr-mcp:latest .You can specify a different tag if desired, e.g., -t jira-zephyr-mcp:v1.0.0.
Running the Container
Run the container with required environment variables:
docker run -d --name jira-zephyr-mcp \
-e JIRA_BASE_URL=https://your-domain.atlassian.net \
-e JIRA_USERNAME=your-email@company.com \
-e JIRA_API_TOKEN=your-jira-api-token \
-e ZEPHYR_API_TOKEN=your-zephyr-api-token \
jira-zephyr-mcp:latestNote: For integration with systems like Cursor, use the Docker configuration shown in the 'Integration with Cursor' section above. Ensure the image is built with the desired tag that matches your Cursor config. The server communicates via stdio, so ensure your setup supports this when running in a container.
Tool Usage Examples
Reading JIRA Issues
// Read basic issue information
await readJiraIssue({ issueKey: "ABC-123" });
// Read specific fields
await readJiraIssue({
issueKey: "ABC-123",
fields: ["summary", "status", "assignee"]
});Creating Test Plans
await createTestPlan({
name: "Release 2.0 Test Plan",
description: "Comprehensive testing for release 2.0",
projectKey: "ABC",
startDate: "2024-01-15",
endDate: "2024-01-30"
});Managing Test Cycles
// Create a test cycle
await createTestCycle({
name: "Sprint 10 Testing",
description: "Testing for sprint 10 features",
projectKey: "ABC",
versionId: "10001",
environment: "Production"
});
// List test cycles
await listTestCycles({
projectKey: "ABC",
limit: 25
});Test Execution
// Update test execution status
await executeTest({
executionId: "12345",
status: "PASS",
comment: "All tests passed successfully"
});
// Get execution status
await getTestExecutionStatus({ cycleId: "67890" });Generating Reports
// Generate JSON report
await generateTestReport({
cycleId: "67890",
format: "JSON"
});
// Generate HTML report
await generateTestReport({
cycleId: "67890",
format: "HTML"
});Error Handling
The server implements comprehensive error handling:
Input validation using Zod schemas
API error mapping and user-friendly messages
Network timeout handling
Authentication error detection
Development
Scripts
npm run build- Build the TypeScript projectnpm run dev- Run in development mode with file watchingnpm run lint- Run ESLintnpm run typecheck- Run TypeScript type checking
Project Structure
src/
├── index.ts # Main MCP server entry point
├── clients/ # API clients
│ ├── jira-client.ts # JIRA REST API client
│ └── zephyr-client.ts # Zephyr API client
├── tools/ # MCP tool implementations
│ ├── jira-issues.ts # JIRA issue tools
│ ├── test-plans.ts # Test plan management
│ ├── test-cycles.ts # Test cycle management
│ └── test-execution.ts # Test execution tools
├── types/ # TypeScript type definitions
│ ├── jira-types.ts # JIRA API types
│ └── zephyr-types.ts # Zephyr API types
└── utils/ # Utility functions
├── config.ts # Configuration management
└── validation.ts # Input validation schemasContributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Submit a pull request
Security
Never commit API tokens or credentials to the repository
Use environment variables for all sensitive configuration
Regularly rotate API tokens
Implement proper access controls in your JIRA instance
License
MIT License - see LICENSE file for details
Support
For issues and questions:
Check the existing GitHub issues
Create a new issue with detailed information
Include error logs and configuration (without sensitive data)
Roadmap
Support for Zephyr Squad (in addition to Zephyr Scale)
Bulk test execution operations
Advanced reporting with charts and metrics
Test case creation and management
Integration with CI/CD pipelines
Custom field support for test management
Available Tools
13 toolscreate_multiple_test_casesC
Create multiple test cases in Zephyr at once
| Name | Required | Description | Default |
|---|---|---|---|
| testCases | Yes | Array of test cases to create | |
| continueOnError | No | Continue creating remaining test cases if one fails (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a write operation (implied but not stated), what permissions are required, how errors are handled, rate limits, or what the response format looks like. 'Create multiple... at once' suggests batch processing but lacks operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens on partial success (though the 'continueOnError' parameter hints at this), what the return value contains, error conditions, or system limitations. The schema does heavy lifting, but the description should provide more operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds no parameter-specific information beyond what's already documented in the comprehensive schema, which details all fields, requirements, and optional parameters including the complex testScript object structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create multiple test cases') and target system ('in Zephyr'), with the 'at once' phrase distinguishing it from the sibling 'create_test_case' tool. However, it doesn't explicitly mention the batch nature or contrast with the single-case sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus the 'create_test_case' sibling, nor any prerequisites, error handling considerations, or system constraints. The description merely restates the tool's name without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_test_caseC
Create a new test case in Zephyr
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | JIRA project key | |
| name | Yes | Test case name | |
| objective | No | Test case objective/description (optional) | |
| precondition | No | Test preconditions (optional) | |
| estimatedTime | No | Estimated execution time in minutes (optional) | |
| priority | No | Test case priority (optional) | |
| status | No | Test case status (optional) | |
| folderId | No | Folder ID to organize test case (optional) | |
| labels | No | Test case labels (optional) | |
| componentId | No | Component ID (optional) | |
| customFields | No | Custom fields as key-value pairs (optional) | |
| testScript | No | Test script with steps (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states this is a creation operation but doesn't mention required permissions, whether the operation is idempotent, what happens on failure, rate limits, or what the response looks like (especially important since there's no output schema). For a mutation tool with 12 parameters, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence with no wasted words. It's front-loaded with the core purpose. However, for a tool with 12 parameters and complex nested objects, this brevity comes at the cost of completeness, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters with nested objects), absence of annotations, and lack of output schema, the description is insufficiently complete. It doesn't explain the relationship between this tool and sibling tools, doesn't provide behavioral context for a mutation operation, and offers no guidance on error handling or response format. The description fails to compensate for the missing structured information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema descriptions. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new test case') and the target system ('in Zephyr'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from its sibling 'create_multiple_test_cases' or explain when to use one versus the other, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_multiple_test_cases' for batch operations or 'create_test_cycle'/'create_test_plan' for related test management functions. There's no mention of prerequisites, dependencies, or typical use cases, leaving the agent with insufficient context for appropriate tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_test_cycleC
Create a new test execution cycle
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Test cycle name | |
| description | No | Test cycle description (optional) | |
| projectKey | Yes | JIRA project key | |
| versionId | Yes | JIRA version ID | |
| environment | No | Test environment (optional) | |
| startDate | No | Planned start date (ISO format, optional) | |
| endDate | No | Planned end date (ISO format, optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states this is a creation operation but doesn't mention permission requirements, whether this creates a draft or active cycle, what happens on duplicate names, or what the expected response looks like. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point without any wasted words. It's appropriately sized for a creation tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what a test cycle is in this system, what happens after creation, or how this fits into the broader testing workflow. The agent would need to guess about behavioral aspects and expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional parameter context beyond what's in the schema, such as explaining relationships between parameters (e.g., how projectKey and versionId relate) or providing examples. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create') and resource ('new test execution cycle'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'create_test_plan' or explain what differentiates a test cycle from other test artifacts in the system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus alternatives like 'create_test_plan' or 'list_test_cycles'. It doesn't mention prerequisites, sequencing (e.g., should a test plan exist first?), or typical workflow context, leaving the agent to infer usage patterns from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_test_planC
Create a new test plan in Zephyr
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Test plan name | |
| description | No | Test plan description (optional) | |
| projectKey | Yes | JIRA project key | |
| startDate | No | Planned start date (ISO format, optional) | |
| endDate | No | Planned end date (ISO format, optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool creates a new test plan, implying a write operation, but doesn't disclose any behavioral traits such as required permissions, whether creation is idempotent, error handling, or what happens on success (e.g., returns a plan ID). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Create a new test plan') and specifies the context ('in Zephyr'). There is zero waste or redundancy, making it easy to parse quickly. Every word earns its place, and it's appropriately sized for a simple creation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a write operation with 5 parameters) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions or outcomes, and while the schema documents parameters, the description fails to add context for usage or integration with siblings. For a creation tool in a test management system, more guidance is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema provides. Schema description coverage is 100%, with all parameters documented (e.g., 'name', 'projectKey', optional dates in ISO format). The description doesn't explain parameter relationships, constraints, or usage examples. Baseline is 3 since the schema does the heavy lifting, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('new test plan in Zephyr'), making the purpose immediately understandable. It distinguishes from siblings like 'create_test_case' or 'create_test_cycle' by specifying it's for test plans, though it doesn't explicitly contrast with them. The description avoids tautology by not just restating the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a JIRA project), compare to similar tools like 'list_test_plans' for viewing existing plans, or specify use cases (e.g., for organizing test cases). Usage is implied only by the action 'create', with no explicit context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_testC
Update test execution results
| Name | Required | Description | Default |
|---|---|---|---|
| executionId | Yes | Test execution ID | |
| status | Yes | Execution status | |
| comment | No | Execution comment (optional) | |
| defects | No | Linked defect keys (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Update' implies a mutation operation, but the description doesn't state whether this requires specific permissions, whether changes are reversible, what happens to existing data not mentioned, or any rate limits. It lacks critical context for a mutation tool, such as side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action ('Update test execution results'), making it easy to scan. Every word earns its place by conveying the essential purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 4 parameters) and lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, side effects, or error handling, nor does it explain return values or usage context. For a mutation tool, this leaves significant gaps in understanding how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (executionId, status, comment, defects) with descriptions and constraints. The description adds no additional meaning beyond what's in the schema, such as explaining relationships between parameters or usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update test execution results' clearly states the verb (update) and resource (test execution results). It distinguishes from sibling tools like 'get_test_execution_status' (read-only) and 'create_test_cycle' (creation rather than updating). However, it doesn't specify what aspects are updated beyond 'results' (e.g., status, comments, defects), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing executionId), when not to use it (e.g., for creating new executions), or explicit alternatives among siblings like 'get_test_execution_status' for reading status or 'link_tests_to_issues' for linking defects. Usage is implied only by the verb 'update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_test_reportC
Generate test execution report
| Name | Required | Description | Default |
|---|---|---|---|
| cycleId | Yes | Test cycle ID | |
| format | No | Report format (default: JSON) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Generate' implies a read-only or creation operation, but the description doesn't specify if it's a read (e.g., retrieving a report) or a write (e.g., creating a new report), nor does it cover permissions, side effects, or output format. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('Generate test execution report') with zero wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of generating a report (which may involve data processing and formatting), the lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the report contains, how it's generated, or what the return value looks like, leaving critical gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for 'cycleId' and 'format' (including enum values and default). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 without compensating or adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Generate test execution report' states the verb ('Generate') and resource ('test execution report'), which provides a basic understanding of the tool's purpose. However, it lacks specificity about what constitutes a 'test execution report' and doesn't differentiate from sibling tools like 'get_test_execution_status' or 'execute_test', making it somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a test cycle ID), exclusions, or comparisons to siblings like 'get_test_execution_status' or 'execute_test', leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_caseC
Get detailed information about a specific test case
| Name | Required | Description | Default |
|---|---|---|---|
| testCaseId | Yes | Test case ID or key |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'detailed information' but doesn't specify what details are included (e.g., metadata, steps, results), whether it's a read-only operation, or any constraints like authentication needs or rate limits. This leaves behavioral traits unclear for a tool that likely queries a database.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. This efficiency is ideal for a simple retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a test case retrieval tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, the return format, or error handling, which are crucial for an agent to use this effectively in a testing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'testCaseId' documented as 'Test case ID or key'. The description adds no additional meaning beyond this, such as format examples or where to find the ID. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('detailed information about a specific test case'), making the purpose understandable. However, it doesn't distinguish this tool from potential siblings like 'search_test_cases' or 'get_test_execution_status', which might also retrieve test case information but with different scopes or formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'search_test_cases' (for multiple cases) and 'get_test_execution_status' (for status info), there's no indication that this tool is for single-case details, leaving the agent to guess based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_execution_statusC
Get test execution progress and statistics
| Name | Required | Description | Default |
|---|---|---|---|
| cycleId | Yes | Test cycle ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves 'progress and statistics' but doesn't clarify whether this is a read-only operation, what data format is returned, if there are rate limits, or authentication requirements. This leaves significant gaps for a tool that likely interacts with test execution data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'progress and statistics' entail (e.g., metrics, statuses, timestamps), how results are structured, or potential errors. For a tool with one parameter but no output details, this leaves too much unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'cycleId' documented as 'Test cycle ID'. The description adds no additional parameter semantics beyond this, so it meets the baseline for adequate but unremarkable coverage when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('test execution progress and statistics'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'execute_test' or 'generate_test_report', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a test cycle ID), exclusions, or relationships to sibling tools like 'list_test_cycles' or 'execute_test', leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_tests_to_issuesC
Associate test cases with JIRA issues
| Name | Required | Description | Default |
|---|---|---|---|
| testCaseId | Yes | Test case ID | |
| issueKeys | Yes | JIRA issue keys to link |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'associates' test cases with issues, implying a mutation operation, but doesn't specify whether this creates new links, overwrites existing ones, requires permissions, or has side effects (e.g., updating JIRA issue status). For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It front-loads the core purpose efficiently, making it easy to parse. Every word earns its place by conveying essential information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation operation linking two systems), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, side effects, or return values, leaving gaps that could hinder an agent's ability to use it correctly. For a tool with this context, more detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions in the input schema. The description adds no additional meaning beyond what the schema provides (e.g., format examples, constraints, or usage context for parameters). According to the rules, with high schema coverage, the baseline is 3 even without param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Associate') and resources ('test cases with JIRA issues'), making the purpose immediately understandable. It distinguishes itself from siblings like 'create_test_case' or 'read_jira_issue' by focusing on linking existing entities. However, it doesn't specify the directionality or nature of the association (e.g., bidirectional linking, adding tests to issues), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing test cases and JIRA issues), exclusions, or how it differs from sibling tools like 'execute_test' or 'generate_test_report'. Without context, an agent might misuse it or overlook related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_test_cyclesC
List existing test cycles with execution status
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | JIRA project key | |
| versionId | No | JIRA version ID (optional) | |
| limit | No | Maximum number of results (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'List' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the execution status information takes. The description is minimal and lacks important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point without any wasted words. It's appropriately sized for a listing tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'execution status' entails, doesn't mention authentication requirements, and provides no guidance on result format or limitations. The description should do more to compensate for the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all parameters well-documented in the schema itself. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline for high schema coverage without providing additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('existing test cycles') with the additional qualifier 'with execution status', which provides specific functionality. However, it doesn't explicitly differentiate from sibling tools like 'list_test_plans' or 'search_test_cases', which would require more specific scope definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_test_plans' or 'search_test_cases'. There's no mention of prerequisites, context, or exclusions that would help an agent choose between these similar listing/searching tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_test_plansC
List existing test plans
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | JIRA project key | |
| limit | No | Maximum number of results (default: 50) | |
| offset | No | Number of results to skip (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List') but does not mention critical details such as whether this is a read-only operation, pagination behavior (implied by limit/offset but not explained), error conditions, or authentication needs. This leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence ('List existing test plans'), which is front-loaded and wastes no words. It efficiently communicates the core purpose without unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a list operation with parameters), lack of annotations, and no output schema, the description is incomplete. It fails to explain return values, error handling, or behavioral nuances, relying solely on the input schema. For a tool with no structured behavioral hints, this leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all three parameters (projectKey, limit, offset) with their types and defaults. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for adequate but not enhanced coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List existing test plans' clearly states the verb ('List') and resource ('test plans'), making the purpose understandable. However, it lacks specificity about scope (e.g., all test plans vs. filtered) and does not differentiate from sibling tools like 'list_test_cycles' or 'search_test_cases', leaving room for ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'search_test_cases' or 'list_test_cycles'. The description implies usage for listing test plans but offers no context on prerequisites, exclusions, or specific scenarios, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_jira_issueC
Read JIRA issue details and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | JIRA issue key (e.g., ABC-123) | |
| fields | No | Specific fields to retrieve (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Read' implies a safe operation, it doesn't specify authentication requirements, rate limits, error handling, or what 'details and metadata' includes (e.g., fields like status, assignee, comments). This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool with two parameters. It doesn't explain the return format, error cases, or behavioral nuances, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear documentation for both parameters (issueKey and fields). The description adds no additional meaning beyond what the schema provides, such as examples of common fields or default behavior when 'fields' is omitted. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Read') and resource ('JIRA issue details and metadata'), making the tool's function immediately understandable. However, it doesn't distinguish this tool from potential siblings like 'get_test_case' or 'get_test_execution_status' that might also read JIRA data, missing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'link_tests_to_issues' and 'search_test_cases' that might involve JIRA issues, there's no indication of context, prerequisites, or exclusions for this read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_test_casesC
Search for test cases in a project
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | JIRA project key | |
| query | No | Search query (optional) | |
| limit | No | Maximum number of results (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'search' but doesn't specify if this is read-only, requires authentication, has rate limits, or describes the return format (e.g., pagination, error handling). This is a significant gap for a tool with parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, directly stating the tool's function without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like safety, permissions, or result format, which are crucial for an agent to use it correctly in a search operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying a search context, which is already clear from the name and schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search for') and resource ('test cases in a project'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_test_case' or 'list_test_plans', which might have overlapping functionality, so it doesn't reach a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'get_test_case' or 'list_test_plans'. It lacks context on prerequisites, exclusions, or specific scenarios, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v1.0.0- First observed
create_multiple_test_cases - First observed
create_test_case - First observed
create_test_cycle - First observed
create_test_plan - First observed
execute_test - First observed
generate_test_report - First observed
get_test_case - First observed
get_test_execution_status - First observed
link_tests_to_issues - First observed
list_test_cycles - First observed
list_test_plans - First observed
read_jira_issue - First observed
search_test_cases
TDQS
Every tool has a clearly distinct purpose targeting specific Zephyr test management resources and actions. The tools cover creation, retrieval, listing, execution, reporting, and linking operations with no overlap or ambiguity between them.
All tools follow a consistent verb_noun naming pattern throughout (e.g., create_test_case, list_test_cycles, get_test_execution_status). The naming convention is perfectly uniform and predictable across all 13 tools.
With 13 tools, this server is well-scoped for comprehensive test management operations in Zephyr. Each tool earns its place by covering distinct aspects of test case, test cycle, test plan, and execution management without being excessive.
The tool set provides complete CRUD/lifecycle coverage for Zephyr test management, including creation, reading, listing, updating (via execute_test), and reporting operations. It also integrates with JIRA issues and covers all major workflows without any apparent gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage test suites, run tests, view results, and automate QA workflows via AI with testRigor.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables comprehensive test management in Zephyr Scale Cloud, including creating and managing test cases, executing tests with step-by-step results, organizing test cycles and plans, and performing advanced JQL searches.1826MIT
- FlicenseNot gradedqualityDmaintenanceEnables comprehensive test management through SmartBear Zephyr Scale's REST API, supporting automated workflows for test cases, cycles, executions, folders, and linking tests to Jira issues through natural language.3-
- FlicenseNot gradedqualityNot gradedmaintenanceIntegrates with the Zephyr Scale test management tool for Jira to fetch and update test case information, including steps, labels, and priorities. It enables users to manage test cases through natural language interactions within Claude Desktop and other MCP clients.0-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Zephyr Scale Cloud for test management, including test cases, cycles, plans, folders, priorities, and statuses via the MCP protocol.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/leorosignoli/jira-zephyr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server