Skip to main content
Glama
leorosignoli

JIRA Zephyr MCP Server

by leorosignoli

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

  1. read_jira_issue - Retrieve JIRA issue information

  2. create_test_plan - Create new test plans in Zephyr

  3. list_test_plans - Browse existing test plans

  4. create_test_cycle - Create test execution cycles

  5. list_test_cycles - View test cycles with execution status

  6. execute_test - Update test execution results

  7. get_test_execution_status - Check test execution progress

  8. link_tests_to_issues - Associate tests with JIRA issues

  9. 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)

  1. Clone the repository:

git clone https://github.com/your-username/jira-zephyr-mcp.git
cd jira-zephyr-mcp
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Configuration

  1. Copy the example environment file:

cp .env.example .env
  1. Configure 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-token

Getting API Tokens

JIRA API Token

  1. Go to Atlassian Account Settings

  2. Navigate to Security → API tokens

  3. Create a new API token

  4. Copy the token to your .env file

Zephyr API Token

  1. In JIRA, go to Apps → Zephyr Scale → API Access Tokens

  2. Generate a new token

  3. Copy the token to your .env file

Usage

Development

npm run dev

Production

npm start

Running 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

  1. Navigate to the project directory:

cd /path/to/jira-zephyr-mcp
  1. Build 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

  1. 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:latest

Note: 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 project

  • npm run dev - Run in development mode with file watching

  • npm run lint - Run ESLint

  • npm 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 schemas

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests for new functionality

  5. 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:

  1. Check the existing GitHub issues

  2. Create a new issue with detailed information

  3. 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 tools
create_multiple_test_casesC

Create multiple test cases in Zephyr at once

ParametersJSON Schema
NameRequiredDescriptionDefault
testCasesYesArray of test cases to create
continueOnErrorNoContinue creating remaining test cases if one fails (default: true)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesJIRA project key
nameYesTest case name
objectiveNoTest case objective/description (optional)
preconditionNoTest preconditions (optional)
estimatedTimeNoEstimated execution time in minutes (optional)
priorityNoTest case priority (optional)
statusNoTest case status (optional)
folderIdNoFolder ID to organize test case (optional)
labelsNoTest case labels (optional)
componentIdNoComponent ID (optional)
customFieldsNoCustom fields as key-value pairs (optional)
testScriptNoTest script with steps (optional)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTest cycle name
descriptionNoTest cycle description (optional)
projectKeyYesJIRA project key
versionIdYesJIRA version ID
environmentNoTest environment (optional)
startDateNoPlanned start date (ISO format, optional)
endDateNoPlanned end date (ISO format, optional)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTest plan name
descriptionNoTest plan description (optional)
projectKeyYesJIRA project key
startDateNoPlanned start date (ISO format, optional)
endDateNoPlanned end date (ISO format, optional)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
executionIdYesTest execution ID
statusYesExecution status
commentNoExecution comment (optional)
defectsNoLinked defect keys (optional)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
cycleIdYesTest cycle ID
formatNoReport format (default: JSON)

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseIdYesTest case ID or key

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
cycleIdYesTest cycle ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

list_test_cyclesC

List existing test cycles with execution status

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesJIRA project key
versionIdNoJIRA version ID (optional)
limitNoMaximum number of results (default: 50)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesJIRA project key
limitNoMaximum number of results (default: 50)
offsetNoNumber of results to skip (default: 0)

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesJIRA issue key (e.g., ABC-123)
fieldsNoSpecific fields to retrieve (optional)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesJIRA project key
queryNoSearch query (optional)
limitNoMaximum number of results (default: 50)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 13 tool updatesv1.0.0
    • First observedcreate_multiple_test_cases
    • First observedcreate_test_case
    • First observedcreate_test_cycle
    • First observedcreate_test_plan
    • First observedexecute_test
    • First observedgenerate_test_report
    • First observedget_test_case
    • First observedget_test_execution_status
    • First observedlink_tests_to_issues
    • First observedlist_test_cycles
    • First observedlist_test_plans
    • First observedread_jira_issue
    • First observedsearch_test_cases

TDQS

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    18
    26
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Integrates 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
    -

Latest Blog Posts

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