Skip to main content
Glama

MCP Zephyr Server

A comprehensive Model Context Protocol (MCP) server for Zephyr Scale Cloud API that enables seamless integration with your test management workflows.

πŸš€ Features

Core Capabilities

  • Project Management: List and retrieve project details

  • Folder Organization: Create and manage hierarchical folder structures

  • Test Case Management: Create, read, and update operations for test cases

  • Test Steps Management: Get and append test steps (note: no individual step update/delete)

  • Test Script Management: Create and manage BDD/Gherkin test scripts (mutually exclusive with steps)

  • Reference Data: Access statuses and priorities for test case configuration

πŸ› οΈ Available Tools

Project Tools

  • list_projects - Get all Zephyr-integrated Jira projects

  • get_project - Retrieve detailed project information

Folder Tools

  • list_folders - List folders with project/folder filtering

  • get_folder - Get detailed folder information

  • create_folder - Create new folders with optional parent hierarchy

Test Case Tools

  • list_test_cases - List test cases with filtering (project, folder)

  • get_test_case - Retrieve detailed test case information

  • create_test_case - Create new test cases with full configuration

  • update_test_case - Update existing test cases

Test Steps Tools

  • get_test_steps - Get test steps (paged, 100 items max)

  • get_all_test_steps - Get all test steps (auto-pagination)

  • append_test_steps - Add new steps to existing sequence (max 100 per request)

Test Script Tools

  • get_test_script - Get BDD/Gherkin test script

  • create_test_script - Create/update test script (removes existing steps)

  • create_bdd_test_script - Helper for BDD script creation with validation

Reference Data Tools

  • list_statuses - Get all available statuses (Draft, Ready, Approved, etc.)

  • list_priorities - Get all available priorities (High, Medium, Low, etc.)

  • get_reference_data - Get both statuses and priorities in one call

Related MCP server: JIRA Zephyr MCP Server

πŸ“‹ Prerequisites

  • Node.js 18.0.0 or higher

  • Zephyr Scale Cloud account with API access

  • Jira project with Zephyr integration enabled

πŸ”§ Installation

  1. Clone or download this repository

  2. Install dependencies:

    npm install
  3. Set up environment variables:

    cp .env.example .env

    Edit .env and add your Zephyr API token:

    ZEPHYR_API_TOKEN=your_bearer_token_here
    ZEPHYR_REGION=us

πŸ”‘ Getting Your API Token

  1. Log in to your Jira Cloud instance

  2. Click on your profile picture in the bottom left

  3. Select "Zephyr API keys"

  4. Generate a new API token

  5. Copy the token to your .env file

πŸš€ Running the Server

Development Mode

npm run dev

Production Mode

npm start

With MCP Client

# Start the server
npm start

# In another terminal, use with your MCP client
# Configuration will be automatically discovered

πŸ”Œ Using This MCP Server

This package is an MCP server that communicates over stdio. It is designed to be launched by an MCP client (for example, the VS Code MCP extension or Claude Desktop). It will appear β€œidle” if you run it directly, because it waits for MCP protocol messages on stdin.

VS Code MCP Extension

Create or update your MCP config file (for example .vscode/mcp.json) to include this server:

{
  "servers": {
    "zephyr": {
      "type": "stdio",
      "command": "mcp-zephyr",
      "env": {
        "ZEPHYR_API_TOKEN": "YOUR_TOKEN_HERE",
        "ZEPHYR_REGION": "us"
      }
    }
  },
  "inputs": []
}

Then start the server from the MCP extension UI. It should remain in the Running state and be ready to receive tool calls.

Claude Desktop (MCP)

Add a server entry in your Claude Desktop MCP settings:

{
  "mcpServers": {
    "zephyr": {
      "command": "mcp-zephyr",
      "env": {
        "ZEPHYR_API_TOKEN": "YOUR_TOKEN_HERE",
        "ZEPHYR_REGION": "us"
      }
    }
  }
}

After saving, restart Claude Desktop. The server will be available for tool use in your chats.

Local CLI (for debugging)

If you want to see logs, run with stderr visible:

mcp-zephyr 2> server.log

The server logs are written to stderr to avoid interfering with MCP protocol messages on stdout.

🧰 Testing Individual Tools

For development and debugging, you can test individual tools without running the full MCP server using the test-tools.js script:

List Available Tools

node test-tools.js --list

Test a Tool

# Simple tool without arguments
node test-tools.js list_projects

# Tool with arguments (pass JSON)
node test-tools.js list_projects '{"maxResults": 10}'

# Get specific project
node test-tools.js get_project '{"projectId": "PROJ1"}'

# Create a test case
node test-tools.js create_test_case '{"name": "Login Test", "projectKey": "PROJ"}'

# List test cases with filtering
node test-tools.js list_test_cases '{"projectKey": "PROJ", "maxResults": 5}'

# Get reference data
node test-tools.js get_reference_data

Note: Make sure your .env file is configured with ZEPHYR_API_TOKEN before running test tools.

πŸ“ Usage Examples

Basic Project Operations

// List all projects
{
  "tool": "list_projects",
  "arguments": {
    "maxResults": 50
  }
}

// Get specific project
{
  "tool": "get_project",
  "arguments": {
    "projectId": "PROJ"
  }
}

Folder Management

// Create a folder
{
  "tool": "create_folder",
  "arguments": {
    "name": "Smoke Tests",
    "projectKey": "PROJ",
    "parentFolderId": "123"
  }
}

Test Case Creation

// Create a comprehensive test case
{
  "tool": "create_test_case",
  "arguments": {
    "name": "User Login Test",
    "projectKey": "PROJ",
    "description": "Verify user can log in with valid credentials",
    "priorityName": "High",
    "statusName": "Ready",
    "folderId": "123",
    "component": "Authentication",
    "labels": ["smoke", "regression"],
    "objective": "Verify login functionality",
    "precondition": "User exists in system",
    "estimatedTime": 5
  }
}

Test Steps Management

// Append test steps
{
  "tool": "append_test_steps",
  "arguments": {
    "testCaseKey": "PROJ-T1",
    "steps": [
      {
        "description": "Navigate to login page",
        "expectedResult": "Login page is displayed"
      },
      {
        "description": "Enter valid username and password",
        "expectedResult": "Credentials are accepted"
      },
      {
        "description": "Click login button",
        "expectedResult": "User is logged in and redirected to dashboard"
      }
    ]
  }
}

BDD Test Script Creation

// Create BDD script with helper
{
  "tool": "create_bdd_test_script",
  "arguments": {
    "testCaseKey": "PROJ-T2",
    "feature": "User Authentication",
    "scenario": "Successful login with valid credentials",
    "steps": [
      "Given I am on the login page",
      "And I have valid user credentials",
      "When I enter my username and password",
      "And I click the login button",
      "Then I should be redirected to the dashboard",
      "And I should see my username displayed"
    ]
  }
}

Get Reference Data

// Get all statuses and priorities
{
  "tool": "get_reference_data"
}

⚠️ Important Notes

Test Steps vs Test Scripts

  • Mutually Exclusive: A test case can have either test steps OR a test script, not both

  • Script Creation Warning: Creating a test script automatically removes existing test steps

  • Step Limitations: Individual test steps cannot be updated or deleted, only appended in batches

API Constraints

  • Pagination: Most endpoints support pagination (max 1000 items per request)

  • Step Limits: Maximum 100 test steps can be added per request

  • Rate Limits: Respect Zephyr Cloud API rate limits

  • Region Support: US and EU regions supported via configuration

Data Format

  • Test Case Keys: Format [A-Z]+-T[0-9]+ (e.g., PROJ-T1)

  • Project Keys: Format [A-Z][A-Z_0-9]+ (e.g., PROJ, PROJ123)

  • Folder IDs: Numeric strings (e.g., "123")

  • Test Scripts: Gherkin format for BDD, plain text for simple scripts

πŸ§ͺ Testing

# Run tests
npm test

# Run tests in watch mode
npm run test:watch

# Run with coverage
npm test -- --coverage

πŸ” Code Quality

# Run linter
npm run lint

# Fix linting issues
npm run lint:fix

πŸ—οΈ Project Structure

mcp-zephyr/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ config.js              # Configuration management
β”‚   β”œβ”€β”€ zephyr-client.js       # API client with error handling
β”‚   β”œβ”€β”€ index.js               # Main MCP server entry point
β”‚   └── tools/                 # MCP tool implementations
β”‚       β”œβ”€β”€ project-tools.js
β”‚       β”œβ”€β”€ folder-tools.js
β”‚       β”œβ”€β”€ test-case-tools.js
β”‚       β”œβ”€β”€ test-steps-tools.js
β”‚       β”œβ”€β”€ test-script-tools.js
β”‚       └── reference-data-tools.js
β”œβ”€β”€ tests/                     # Unit tests
β”‚   β”œβ”€β”€ setup.js
β”‚   β”œβ”€β”€ config.test.js
β”‚   β”œβ”€β”€ zephyr-client.test.js
β”‚   └── tools/
β”‚       └── project-tools.test.js
β”œβ”€β”€ .env.example               # Environment template
β”œβ”€β”€ package.json               # Dependencies and scripts
β”œβ”€β”€ eslint.config.js           # ESLint configuration
β”œβ”€β”€ jest.config.js             # Jest test configuration
└── README.md                  # This file

πŸ”Œ MCP Integration

This server implements the Model Context Protocol specification:

  • Tool Discovery: Automatic tool listing via ListToolsRequestSchema

  • Tool Execution: Standardized tool calling via CallToolRequestSchema

  • Error Handling: Consistent error responses for all operations

  • JSON Schema: Input validation for all tool parameters

πŸ› Troubleshooting

Common Issues

  1. "ZEPHYR_API_TOKEN environment variable is required"

    • Ensure you've created .env file with a valid API token

    • Check that the token is not expired

  2. "Invalid testCaseKey format"

    • Test case keys must match pattern [A-Z]+-T[0-9]+

    • Examples: PROJ-T1, PROJECT123-T456

  3. "Request timeout"

    • Check your internet connection

    • Try reducing maxResults parameter for large requests

  4. "Test case not found"

    • Verify the test case key exists in your Zephyr instance

    • Ensure you have proper project permissions

Debug Mode

Enable debug logging by setting the environment variable:

DEBUG=* npm start

πŸ“„ License

MIT License - see LICENSE file for details.

🀝 Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests for new functionality

  5. Run the test suite

  6. Submit a pull request

πŸ†˜ Support

Available Tools

18 tools
append_test_stepsC

Append new test steps to a test case (max 100 steps per request)

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseKeyYesTest case key to append steps to (format: [A-Z]+-T[0-9]+)
stepsYesArray of test steps to append (max 100 steps)

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. It mentions the 'max 100 steps per request' constraint, which is useful. However, it doesn't address critical behaviors: whether this is idempotent, what permissions are required, how it handles duplicate steps, error conditions (e.g., invalid testCaseKey), or what the response looks like (success/failure indicators). For a mutation tool with zero annotation coverage, this leaves significant gaps.

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 purpose and includes a key constraint. Every word earns its place, making it easy for an agent 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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., idempotency, error handling), response format, and usage context relative to siblings. While concise, it doesn't provide enough context for reliable agent invocation in complex scenarios.

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 fully documents both parameters (testCaseKey format, steps structure with nested properties). The description adds minimal value beyond the schemaβ€”it reiterates the 'max 100 steps' limit already in the schema's maxItems, but doesn't provide additional context like example usage or edge cases. Baseline 3 is appropriate 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 action ('Append new test steps') and resource ('to a test case'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'update_test_case' or 'create_test_case' that might also modify test cases, leaving some ambiguity about when this specific append operation is preferred.

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., test case must exist), exclusions (e.g., cannot append to archived cases), or comparisons to sibling tools like 'update_test_case' or 'get_test_steps'. The agent must 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.

create_bdd_test_scriptC

Create a BDD test script using Gherkin format with helper validation

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseKeyYesTest case key (format: [A-Z]+-T[0-9]+)
featureNoFeature description for the BDD script
scenarioNoScenario description for the BDD script
stepsNoArray of Gherkin steps (must start with Given/When/Then/And/But)

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 only states what the tool creates, not how it behaves. It doesn't disclose whether this is a write operation, what permissions might be needed, what happens if validation fails, or what the output looks like. 'Helper validation' is mentioned but not explained.

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 states the core purpose without unnecessary elaboration. Every word earns its place, and it's appropriately front-loaded with the main action.

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 4 parameters and no annotations or output schema, the description is insufficient. It doesn't explain the creation process, validation behavior, error conditions, or relationship to sibling tools. The mention of 'helper validation' is too vague to be 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?

Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, meeting the baseline expectation when schema coverage is complete.

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 BDD test script') and specifies the format ('using Gherkin format with helper validation'), which distinguishes it from generic test script creation tools. However, it doesn't explicitly differentiate from sibling 'create_test_script' beyond mentioning the BDD/Gherkin aspect.

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 alternatives like 'create_test_script' or 'create_test_case'. The description mentions the format but doesn't explain the specific use cases for BDD test scripts versus other test artifacts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_folderC

Create a new folder in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the folder to create
projectKeyYesJira project key where the folder will be created
parentFolderIdNoOptional parent folder ID to create a subfolder
folderTypeNoFolder type (default: TEST_CASE)TEST_CASE

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 this is a creation tool, implying a write/mutation operation, but doesn't disclose any behavioral traits like required permissions, whether folder names must be unique, what happens on conflicts, rate limits, or what the response contains (no output schema). This leaves significant gaps for an agent to use it safely and effectively.

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 that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly. Every word earns its place.

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 (a write operation with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like error handling, permissions, or response format, which are crucial for an agent to use this tool effectively in context. The schema covers parameters well, but the overall tool context is underspecified.

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%, so all parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain the relationship between 'projectKey' and 'parentFolderId', or clarify 'folderType' usage). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

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 folder in a project'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'list_folders' or 'get_folder' beyond the creation aspect, nor does it specify what type of project system this is (Jira is only hinted at in the schema).

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 project), when not to use it (e.g., for updating folders), or refer to sibling tools like 'list_folders' for checking existing folders first. Usage is implied but not explicitly stated.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the test case
projectKeyYesJira project key where the test case will be created
descriptionNoDescription of the test case
folderIdNoFolder ID where the test case will be created
componentNoComponent ID for the test case
labelsNoLabels for the test case (single string or array of strings)
objectiveNoTest objective
preconditionNoTest precondition
estimatedTimeNoEstimated time in minutes (will be converted to milliseconds)

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 full burden for behavioral disclosure. 'Create a new test case' implies a write/mutation operation but provides no information about permissions needed, whether creation is reversible, what happens on failure, rate limits, or what the response contains. This is inadequate for a mutation tool with zero 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 extremely concise at just three words. It's front-loaded with the essential action and resource. There's zero wasted language or redundancy. For a tool with comprehensive schema documentation, this brevity is appropriate.

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 mutation tool with 9 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what a test case is in this system, how it differs from test scripts, what happens after creation, or any behavioral aspects. The agent would need to infer too much from just 'Create a new test case'.

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%, so all parameters are documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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 'Create a new test case' clearly states the action (create) and resource (test case), but it's generic and doesn't differentiate from sibling tools like 'create_test_script' or 'create_bdd_test_script'. It lacks specificity about what distinguishes a test case from other test artifacts in this 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?

No guidance is provided about when to use this tool versus alternatives like 'create_test_script' or 'create_bdd_test_script'. The description doesn't mention prerequisites, dependencies, or contextual factors that would help an agent decide between this and sibling creation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_test_scriptB

Create or update a test script for a test case (removes existing test steps)

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseKeyYesTest case key (format: [A-Z]+-T[0-9]+)
textYesTest script content (Gherkin format for bdd type, plain text for plain type)
typeNoScript type (default: bdd)bdd

TDQS

B3.2/5.0
Behavior3/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 that the tool 'removes existing test steps', indicating a destructive mutation, which is a critical behavioral trait. However, it lacks details on permissions, error handling, or response format, leaving gaps in transparency for a mutation tool.

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 a single, efficient sentence that front-loads the core action ('Create or update a test script') and includes a key behavioral note ('removes existing test steps'). It avoids redundancy and is appropriately sized for the tool's complexity, though it could be slightly more structured with usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's mutation nature, lack of annotations, and no output schema, the description is moderately complete. It covers the destructive behavior and basic purpose but omits details on permissions, error cases, or return values, which are important for a tool that modifies data without structured output documentation.

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, providing clear details for all parameters (testCaseKey, text, type). The description does not add any additional semantic meaning beyond what the schema already explains, such as clarifying parameter interactions or constraints, so it meets the baseline but does not enhance understanding.

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 or update a test script') and the target resource ('for a test case'), which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'create_bdd_test_script' or 'append_test_steps', which reduces clarity in distinguishing when to use this tool versus alternatives.

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 'create_bdd_test_script' or 'append_test_steps'. It mentions that it 'removes existing test steps', which hints at a destructive behavior, but does not specify scenarios or prerequisites for its use, leaving the agent without clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_test_stepsA

Get all test steps for a test case (handles pagination automatically)

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseKeyYesTest case key (format: [A-Z]+-T[0-9]+)

TDQS

A3.8/5.0
Behavior4/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 adds valuable context by stating 'handles pagination automatically,' which informs the agent about a key behavioral trait (automatic pagination) not covered elsewhere. This compensates well for the lack of annotations, though it could mention more about response format or error handling.

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 purpose and adds a useful behavioral note. Every word earns its place, with no redundancy or unnecessary elaboration, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is reasonably complete. It covers the purpose and a key behavioral aspect (pagination), but could be more comprehensive by mentioning output details or error cases, though not strictly required for a simple retrieval tool.

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, fully documenting the 'testCaseKey' parameter with format and pattern details. The description doesn't add any parameter-specific semantics beyond what the schema provides, so it meets the baseline of 3 without extra 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 ('Get') and resource ('all test steps for a test case'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from the sibling tool 'get_test_steps' (which likely retrieves a subset or different view), so it misses full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying it handles pagination automatically, which suggests it's for retrieving all steps without manual pagination. However, it doesn't provide explicit guidance on when to use this vs. 'get_test_steps' or other retrieval tools, leaving usage context partially inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_folderC

Get detailed information about a specific folder

ParametersJSON Schema
NameRequiredDescriptionDefault
folderIdYesFolder ID to retrieve

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 'detailed information' but doesn't specify what that includes, whether it's a read-only operation, error handling, or any constraints. This leaves key behavioral traits unclear for a tool that likely involves data retrieval.

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 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 'detailed information' entails, potential return values, or error scenarios. For a data retrieval tool with no structured output documentation, this leaves significant gaps in understanding how to use it effectively.

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 minimal meaning beyond the input schema, which has 100% coverage and clearly documents the 'folderId' parameter. The description implies the parameter identifies a 'specific folder' but doesn't provide additional context like format examples or usage notes, meeting 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 ('Get') and resource ('detailed information about a specific folder'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'list_folders' or other 'get_' tools like 'get_test_case', missing explicit differentiation that would warrant a score of 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. It doesn't mention when to choose 'get_folder' over 'list_folders' for folder information or specify prerequisites like needing a folder ID, which is a significant gap in usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectC

Get detailed information about a specific Zephyr project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID or key to retrieve

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 only states it retrieves 'detailed information' without specifying what that includes (e.g., metadata, permissions, status), whether it's read-only, requires authentication, or has rate limits. This leaves significant behavioral gaps.

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 with no wasted words. It's appropriately sized and front-loaded, making it easy to understand 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 no annotations and no output schema, the description is incomplete for a tool that presumably returns complex project data. It doesn't explain what 'detailed information' entails, leaving the agent uncertain about the return format or content.

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, fully documenting the 'projectId' parameter. The description adds no additional parameter details beyond implying retrieval of a 'specific' project, so it meets the baseline of 3 without compensating or adding 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 ('Get') and resource ('detailed information about a specific Zephyr project'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'list_projects' or 'get_test_case', which would require 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 like 'list_projects' for listing all projects or other 'get_' tools for different resources. It only states what it does, not when it's appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reference_dataB

Get all reference data (statuses and priorities) in a single call

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/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 states it 'gets' data (implying read-only) but doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or response format. The description is minimal and misses key operational context for a tool with no annotation support.

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 front-loads the core action and resource, making it easy to parse. Every part of the sentence adds value by specifying scope and efficiency.

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 no annotations and no output schema, the description is incomplete for effective tool use. It lacks details on return values, error conditions, or behavioral constraints. For a data-fetching tool in a testing context, more context is needed to guide the agent properly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing on the tool's purpose instead. This meets the baseline for zero-parameter tools.

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 ('Get') and resource ('reference data'), specifying it includes 'statuses and priorities' in a 'single call'. It distinguishes from siblings like list_statuses and list_priorities by combining them, but doesn't explicitly contrast with other data-fetching tools like get_project or get_test_case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing both statuses and priorities together, as opposed to using separate list_statuses or list_priorities tools. However, it lacks explicit guidance on when to choose this over alternatives or any prerequisites, leaving some ambiguity for the agent.

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
testCaseKeyYesTest case key to retrieve (format: [A-Z]+-T[0-9]+)

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 detailed information, implying a read-only operation, but doesn't specify aspects like authentication requirements, rate limits, error handling, or what 'detailed information' includes. This leaves significant gaps for a tool that likely interacts with a test management system.

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 and wastes no space, making it easy for an agent 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 test case management and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, potential side effects, or how this tool fits into broader workflows with siblings like 'update_test_case', leaving the agent with insufficient context for effective use.

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. Since schema description coverage is 100% (the 'testCaseKey' parameter is fully documented with type, description, and pattern), the baseline score of 3 is appropriate, as the schema handles the heavy lifting without additional value from the description.

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 unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_test_steps' or 'list_test_cases', which also retrieve test-related information but with different scopes.

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, context for selecting this over similar tools like 'get_test_steps' or 'list_test_cases', or any exclusions, leaving the agent to infer usage based on the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_scriptB

Get the test script (Gherkin format) for a test case

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseKeyYesTest case key (format: [A-Z]+-T[0-9]+)

TDQS

B3.1/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 states it's a retrieval operation ('Get'), implying read-only behavior, but doesn't disclose any behavioral traits like authentication requirements, error conditions, rate limits, or what happens if the test case doesn't exist. For a tool with zero annotation coverage, this leaves significant gaps.

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 purpose and includes essential qualifiers (Gherkin format, test case) without unnecessary elaboration. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, 100% schema coverage, no output schema), the description is adequate but incomplete. It specifies the resource and format but lacks behavioral context (e.g., error handling, return format details). For a read operation with no annotations, it should ideally mention what's returned or common usage scenarios.

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 'testCaseKey' fully documented in the schema (including format and pattern). The description doesn't add any parameter semantics beyond what's in the schema, so it meets the baseline of 3 where 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 ('test script') with specific format information ('Gherkin format') and target ('for a test case'). It distinguishes from siblings like 'get_test_case' or 'get_test_steps' by focusing on the script content rather than metadata or steps. However, it doesn't explicitly contrast with 'create_test_script' or 'create_bdd_test_script'.

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 'get_test_case', 'get_test_steps', and 'create_test_script', there's no indication of when this retrieval of Gherkin scripts is preferred over other read operations or when it might be inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_stepsB

Get test steps for a test case (paged response, 100 items per page)

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseKeyYesTest case key (format: [A-Z]+-T[0-9]+)
maxResultsNoMaximum number of steps to return (default: 50, max: 100)
startAtNoStarting position for pagination (default: 0)

TDQS

B3.3/5.0
Behavior3/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 adds value by specifying 'paged response, 100 items per page', which clarifies pagination behavior and a default page size not fully detailed in the schema (where maxResults has a default of 50). However, it doesn't cover other aspects like error handling, authentication needs, or rate limits, leaving gaps for a tool with mutation-adjacent operations in the sibling list.

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 purpose ('Get test steps for a test case') and adds key behavioral detail ('paged response, 100 items per page') without waste. Every word earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no annotations, and no output schema, the description is moderately complete. It covers the basic purpose and pagination behavior but lacks details on error cases, return format, or how it differs from siblings like 'get_all_test_steps'. For a read operation in a context with mutation tools, more guidance on safe usage would improve completeness.

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%, providing detailed parameter info like formats, defaults, and constraints. The description adds minimal semantics by implying pagination context for 'maxResults' and 'startAt', but doesn't explain parameter interactions or usage beyond what's in the schema. With high schema coverage, the baseline is 3, and the description doesn't significantly enhance understanding.

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 ('test steps for a test case'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from the sibling tool 'get_all_test_steps', which appears to serve a similar function but potentially without pagination or with different parameters, leaving some ambiguity about when to choose one over the other.

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 'get_all_test_steps' or 'get_test_case'. It mentions pagination, which hints at usage for large datasets, but lacks explicit when/when-not instructions or prerequisites, such as whether the test case must exist or be accessible.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_foldersB

List folders in a project or specific folder

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyNoJira project key to filter folders
folderIdNoParent folder ID to list subfolders
maxResultsNoMaximum number of results to return (default: 50, max: 1000)
startAtNoStarting position for pagination (default: 0)

TDQS

B3.1/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 lacks behavioral details. It doesn't disclose that this is a read-only operation (implied by 'List'), pagination behavior (hinted by parameters but not explained), rate limits, authentication needs, or what happens if no folders exist (e.g., returns empty list). The description adds minimal context beyond the basic action.

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 front-loads the core purpose ('List folders') and immediately specifies the scope, making it easy to parse. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks guidance on usage, behavioral traits, and output expectations. For a list operation with pagination parameters, more context on result format or error cases would improve completeness.

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%, providing full parameter documentation. The description adds marginal value by implying the relationship between 'projectKey' and 'folderId' (listing in a project OR specific folder), but doesn't clarify mutual exclusivity or default behavior when neither is provided. Baseline 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 ('List') and resource ('folders'), specifying the scope ('in a project or specific folder'). It distinguishes from siblings like 'get_folder' (singular retrieval) and 'list_projects' (different resource), though it doesn't explicitly contrast with 'list_test_cases' or other list tools.

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 project access), exclusions (e.g., cannot list all folders across projects), or comparisons to siblings like 'list_projects' for project-level navigation or 'get_folder' for single-folder details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_prioritiesB

List all available test case priorities (e.g., High, Medium, Low)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 only states it lists priorities without behavioral details. It doesn't disclose if this is a read-only operation, how data is returned (e.g., format, pagination), or any constraints like authentication needs or rate limits, leaving significant gaps for a tool with zero 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 sentence that front-loads the purpose with no wasted words. It directly states the action and resource, and the parenthetical examples are concise and relevant, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks behavioral context like return format or usage guidelines. For a basic list tool, this is acceptable but leaves room for improvement in guiding the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by providing examples of priorities (e.g., High, Medium, Low), which clarifies the output semantics beyond the tool name, earning a score above the baseline of 3 for zero-parameter tools.

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 the resource 'test case priorities', with examples like 'High, Medium, Low' that clarify the type of data returned. It distinguishes from siblings like list_folders or list_statuses by specifying priorities, but doesn't explicitly contrast with other list tools beyond the resource type.

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. It doesn't mention prerequisites, dependencies, or compare to other list tools like list_statuses or list_test_cases, leaving the agent to infer usage based on the resource name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsC

List all Zephyr-integrated Jira projects

ParametersJSON Schema
NameRequiredDescriptionDefault
maxResultsNoMaximum number of results to return (default: 50, max: 1000)
startAtNoStarting position for pagination (default: 0)

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. It only states the basic action without mentioning pagination behavior (implied by parameters but not described), authentication needs, rate limits, or what 'Zephyr-integrated' specifically entails, leaving significant gaps for a listing operation.

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 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 the returned project list includes (e.g., fields, structure), how pagination works in practice, or any error conditions, which are important for a listing tool with pagination parameters.

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, thoroughly documenting both parameters with defaults and constraints. The description adds no parameter-specific information beyond what's in the schema, so it meets the baseline score of 3 without compensating 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 ('all Zephyr-integrated Jira projects'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_project' (which likely retrieves a single project) or 'list_folders' (which lists a different resource type), missing full sibling distinction.

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 when to choose 'list_projects' over 'get_project' for single-project retrieval or how it relates to other listing tools like 'list_folders' or 'list_test_cases', 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_statusesB

List all available test case statuses (e.g., Draft, Ready, Approved)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/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 states it's a list operation, implying read-only behavior, but doesn't disclose any behavioral traits like whether it requires authentication, rate limits, pagination, or the format of returned data. The description is minimal and lacks essential context for safe use.

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 purpose ('List all available test case statuses') and adds clarifying examples without unnecessary details. Every word earns its place, making it highly concise and well-structured.

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 low complexity (0 parameters, no output schema, no annotations), the description is incomplete. It lacks behavioral transparency (e.g., auth needs, return format) and usage guidelines, leaving gaps that could hinder an AI agent's ability to invoke it correctly in context with siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, but it does provide context about what's being listed (statuses with examples), slightly exceeding the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('List all available') and resource ('test case statuses'), with concrete examples ('e.g., Draft, Ready, Approved'). It distinguishes from siblings like list_folders, list_priorities, and list_projects by specifying it's about statuses.

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 on when to use this tool versus alternatives is provided. While it's implied this is for retrieving status metadata, there's no mention of prerequisites, related operations, or when not to use it (e.g., for creating or updating statuses).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_test_casesC

List test cases with optional filtering by project and folder

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyNoJira project key to filter test cases
folderIdNoFolder ID to filter test cases
maxResultsNoMaximum number of results to return (default: 50, max: 1000)
startAtNoStarting position for pagination (default: 0)

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. It mentions optional filtering but doesn't describe return format, pagination behavior, error conditions, authentication requirements, or rate limits. For a list operation with 4 parameters, 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 a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized and front-loaded with the main purpose.

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 list operation with 4 parameters and no output schema, the description is insufficient. It doesn't explain what format the results come in, whether there's pagination (implied by parameters but not stated), or how to interpret the output. With no annotations and missing output schema, more completeness is needed.

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 input schema already documents all parameters thoroughly. The description adds minimal value by mentioning project and folder filtering but doesn't provide additional context beyond what's in the 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 ('List test cases') and mentions optional filtering by project and folder, which provides specific verb+resource information. However, it doesn't explicitly distinguish this tool from similar siblings like 'get_test_case' or 'list_folders', which would require more differentiation for a score of 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 mentions optional filtering parameters but provides no guidance on when to use this tool versus alternatives like 'get_test_case' for single cases or 'list_projects' for project listing. There's no context about prerequisites, typical use cases, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_test_caseC

Update an existing test case

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseKeyYesTest case key to update (format: [A-Z]+-T[0-9]+)
nameNoUpdated name of the test case
descriptionNoUpdated description of the test case
folderIdNoUpdated folder ID
componentNoUpdated component ID
labelsNoUpdated labels (single string or array of strings)
objectiveNoUpdated test objective
preconditionNoUpdated test precondition
estimatedTimeNoUpdated estimated time in minutes (will be converted to milliseconds)

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 'update' which implies mutation, but doesn't disclose permission requirements, whether changes are reversible, error handling, or what happens to unspecified fields. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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 mutation tool with 9 parameters and no annotations or output schema, the description is inadequate. It doesn't explain what 'update' entails operationally, what permissions are needed, how partial updates work, or what the response contains. The agent would need to guess about important behavioral aspects.

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 9 parameters well-documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline score of 3 where 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 action ('update') and resource ('existing test case'), making the purpose unambiguous. However, it doesn't differentiate this tool from sibling tools like 'create_test_case' or explain what distinguishes updating from creating.

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_test_case' or 'get_test_case'. It doesn't mention prerequisites (e.g., needing an existing test case key) or contextual constraints, leaving the agent to infer usage from the tool 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. 18 tool updates
    • First observedappend_test_steps
    • First observedcreate_bdd_test_script
    • First observedcreate_folder
    • First observedcreate_test_case
    • First observedcreate_test_script
    • First observedget_all_test_steps
    • First observedget_folder
    • First observedget_project
    • First observedget_reference_data
    • First observedget_test_case
    • First observedget_test_script
    • First observedget_test_steps
    • First observedlist_folders
    • First observedlist_priorities
    • First observedlist_projects
    • First observedlist_statuses
    • First observedlist_test_cases
    • First observedupdate_test_case

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there is some overlap between 'get_all_test_steps' and 'get_test_steps' which could cause confusion as both retrieve test steps with different pagination approaches. All other tools target specific resources and actions without ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, such as 'create_test_case', 'get_project', 'list_folders', and 'update_test_case'. This predictability makes it easy for agents to understand and select the appropriate tool.

Tool Count4/5

With 18 tools, the count is slightly high but reasonable for a test management domain, covering projects, folders, test cases, steps, scripts, and reference data. It might feel a bit heavy, but each tool appears to serve a specific function without obvious redundancy.

Completeness5/5

The tool set provides comprehensive coverage for test management, including CRUD operations for projects, folders, test cases, and test steps, along with listing reference data and handling test scripts. There are no apparent gaps that would hinder agent workflows in this domain.

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 integration with Xray Cloud APIs for comprehensive test management including creating and managing test cases, test executions, test plans, and test sets. Supports CI/CD automation and test result tracking through GraphQL APIs.
    23
    67
    3
    ISC
  • 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/donyfs/mcp-zephyr'

If you have feedback or need assistance with the MCP directory API, please join our Discord server