Skip to main content
Glama
alejandroviera

zephyr-squad-server-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JIRA_PATNoPersonal Access Token for authentication.
JIRA_BASE_URLYesJira base URL, e.g. https://jira.company.com (no /rest suffix).
JIRA_PASSWORDNoJira password or API token for basic-auth fallback.
JIRA_USERNAMENoJira username for basic-auth fallback.
ZEPHYR_TIMEOUTNoPer-request timeout in seconds.30
ZEPHYR_API_PATHNoZAPI base path on the Jira host./rest/zapi/latest
ZEPHYR_VERIFY_SSLNoVerify TLS certs. Set false for self-signed hosts.true

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_cyclesA

List test cycles for a project and version.

project accepts a Jira project key (e.g. SONY), a project name, or a numeric projectId. version accepts a version name, a numeric versionId, or -1/Unscheduled. Prefer the numeric ids when you have them, to skip a lookup. Returns a map keyed by versionId; each cycle entry is keyed by cycleId (the Ad hoc cycle is -1).

get_cycleA

Get a single test cycle's details by its numeric id.

Passing -1 returns the hardcoded Ad hoc cycle.

create_cycleA

Create a new test cycle.

Dates use Jira's dd/MMM/yy format (e.g. 4/Dec/12). project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup). The new cycle is created in version — pass it explicitly (use -1 only if you really want the Unscheduled version). Returns {id, responseMessage}.

update_cycleA

Update an existing test cycle's fields.

The cycle id is sent in the body (PUT /cycle, no id in the path) — only the fields you pass are included; omit a field to leave it unchanged. Dates use Jira's dd/MMM/yy format (e.g. 8/Aug/14). To change the version pass version (a name or id); a version name also needs project to resolve it (a numeric version needs neither). Returns {error, success, noPermission}.

delete_cycleA

Delete a test cycle by id (asynchronous; returns/polls a job token).

Set is_folder_cycle_delete=True only when deleting a cycle that lives inside a folder. This is an asynchronous ZAPI operation: it returns a jobProgressToken. With wait=True (default) the tool polls the job to completion and returns the final job-progress payload; with wait=False it returns the raw {jobProgressToken} so you can poll later with get_job_progress (type cycle_delete_job_progress).

export_cycleA

Get a download link for a cycle's executions as a CSV export.

project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). Pass folder_id to export a single folder within the cycle (omit for the whole cycle). Returns {url: "…/Cycle-RC1.csv"} — a download link, not the file bytes; hand the URL to the user or fetch it separately.

move_executions_to_folderA

Move executions from a cycle into an internal folder.

Moves all executions in the cycle when schedules is omitted, or only the listed execution ids when schedules is provided. project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). This is an asynchronous ZAPI operation: it returns a jobProgressToken. With wait=True (default) the tool polls the job to completion and returns the final job-progress payload; with wait=False it returns the raw {jobProgressToken} so you can poll later with get_job_progress.

copy_executions_to_cycleA

Copy executions into cycle cycle_id, preserving their original status and defect links.

Unlike add_tests_to_cycle_from_cycle, this tool carries over the execution status (PASS, FAIL, etc.) and defect associations from the source executions. Set clear_status_flag=True to reset statuses to UNEXECUTED, or clear_defect_mapping_flag=True to drop defect links on copy. If you want fresh UNEXECUTED executions without any prior results, prefer add_tests_to_cycle_from_cycle instead. project/version accept keys/names or ids (prefer ids to skip a lookup; -1 = Unscheduled). Async: with wait=True (default) polls to completion and returns the final job payload; with wait=False returns {jobProgressToken}.

list_cycle_foldersA

List the folders within a cycle.

project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). Returns a list of folders, each with ID, folderName, folderDescription, and execution summaries.

create_folderA

Create a folder under a cycle.

project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). Returns {id, responseMessage}.

update_folderA

Update a folder's name and/or description.

The API requires the folder's full context, so cycle_id and project/version (which accept keys/names or ids — prefer ids when you have them, to skip a lookup; -1 = Unscheduled) must be supplied alongside folder_id, the numeric ID from list_cycle_folders. Only the optional fields you pass are sent; omit one to leave it unchanged. Returns {id, responseMessage}.

delete_folderA

Delete a folder from a cycle (asynchronous; returns/polls a job token).

folder_id is the numeric ID from list_cycle_folders; cycle_id is its parent cycle. project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). With wait=True (default) the tool polls the job to completion and returns the final job-progress payload; with wait=False it returns the raw {jobProgressToken} to poll later with get_job_progress.

list_executionsA

List the executions in a cycle (optionally narrowed to a folder).

project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). Returns {status, executions, recordsCount} where status maps status ids to their definitions.

update_executionA

Set an execution's status by its numeric id.

status is a ZAPI execution-status code: -1=UNEXECUTED, 1=PASS, 2=FAIL, 3=WIP, 4=BLOCKED, 5=PENDING, 6=APPROVED, 7=CANCELLED. Returns the updated execution.

search_executionsC

Run a ZQL query and return matching executions.

Example ZQL: project = "SONY" AND executionStatus = FAIL. Returns {executions, totalCount, ...}.

get_execution_status_countsA

Status-count rollup for a project/version (PASS/FAIL/WIP/BLOCKED/UNEXECUTED).

With cycles set (comma-separated cycle ids, e.g. "51,52") returns the status breakdown for those cycles. Without cycles, returns a per-cycle breakdown for every cycle in the version. project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). Useful for release Go/No-Go and compliance summaries.

get_execution_status_counts_by_assigneeB

Per-assignee status counts for the given cycle(s).

cycles is a comma-separated list of cycle ids. project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). Returns a map of assignee -> {UNEXECUTED, PASS, FAIL, WIP, BLOCKED}. Use to spot workload imbalance or reviewers/testers who are a bottleneck.

list_executions_by_issueB

List all executions of a single test issue, across every cycle.

issue accepts a Jira issue key (e.g. SONY-1386) or numeric id — passed straight through (the endpoint accepts either). Returns the test's full execution history, useful for flaky-test diagnosis and coverage checks.

list_execution_defectsB

List Jira defects currently linked to an execution.

execution_id is the numeric id from list_executions/search_executions. Returns a map keyed by execution id -> {defectKey -> defect summary}.

create_executionA

Schedule a test (create an execution) in a cycle.

issue is the Zephyr test issue (key or id; prefer the id when you have it). cycle_id is the target cycle (-1 = Ad hoc). project/version accept keys/names or ids (prefer ids when you have them, to skip a lookup; -1 = Unscheduled). Optionally set folder_id and assignee. Returns a map keyed by the new execution id.

add_tests_to_cycle_from_listA

Add an explicit list of tests to a cycle as new UNEXECUTED executions.

issues is a list of Zephyr Test issue keys/ids (e.g. ["PROJ-1", "PROJ-2"]); a comma-separated string is also accepted and split automatically. project/version accept keys/names or ids (prefer ids to skip a lookup; -1 = Unscheduled). Async: with wait=True (default) polls to completion and returns the final job payload; with wait=False returns {jobProgressToken}. New executions always start with status UNEXECUTED. To carry over existing execution statuses and defect links from another cycle, use copy_executions_to_cycle instead.

add_tests_to_cycle_from_filterB

Add tests matching a saved ZQL filter to a cycle as new UNEXECUTED executions.

search_id is the numeric id of a saved ZQL filter. project/version accept keys/names or ids (prefer ids to skip a lookup; -1 = Unscheduled). Async: with wait=True (default) polls to completion and returns the final job payload; with wait=False returns {jobProgressToken}. New executions always start with status UNEXECUTED.

add_tests_to_cycle_from_cycleA

Add tests from another cycle as new UNEXECUTED executions in this cycle.

Tests are sourced from from_cycle_id / from_version_id and can be narrowed by components, labels, priorities, statuses (comma-separated filter strings) and has_defects (bool). project/version accept keys/names or ids (prefer ids to skip a lookup; -1 = Unscheduled). Async: with wait=True (default) polls to completion and returns the final job payload; with wait=False returns {jobProgressToken}.

Important: new executions always start with status UNEXECUTED regardless of the source cycle's results. If you need to carry over the original execution statuses and defect links, use copy_executions_to_cycle instead.

link_execution_defectsA

Link Jira defect(s) to execution(s) (asynchronous; returns/polls a token).

executions are execution ids; defects are Jira issue keys (e.g. ABC-41). Each defect is attached to each execution. With wait=True (default) polls to completion; with wait=False returns {jobProgressToken}.

assign_executionA

Assign an execution to a user.

assignee is a Jira username/account id. (execution_id is the schedule id from list_executions.) Returns the API's (empty) acknowledgement.

delete_executionA

Delete an execution by its numeric id.

Args: execution_id: numeric id of the execution to delete.

Returns: {"success": "Successfully deleted execution(s) "}

list_test_stepsB

List the test steps of a Zephyr test issue.

issue accepts a Jira issue key (e.g. SONY-1386) or a numeric issueId (prefer the id when you have it, to skip a lookup). Returns {stepBeanCollection: [...]}.

create_test_stepA

Add a test step to a Zephyr test issue.

issue accepts a Jira issue key or numeric issueId (prefer the id when you have it, to skip a lookup). step is the action, data the test data, result the expected result. Returns the created step.

update_test_stepA

Update fields of an existing test step.

Only the provided fields are sent (omit to leave unchanged). step is the action, data the test data, result the expected result. issue accepts a key or id (prefer the id when you have it, to skip a lookup). Returns the updated step.

delete_test_stepB

Delete a test step. Returns the remaining steps for the issue.

list_step_resultsA

List the per-step results for an execution.

execution_id is the numeric id of an execution (from list_executions or search_executions). Returns the step-result records, each with a status code (-1=UNEXECUTED, 1=PASS, 2=FAIL, 3=WIP, 4=BLOCKED).

update_step_resultA

Set the status (and optional comment) of one step result.

Get step_result_id from list_step_results. status codes: -1=UNEXECUTED, 1=PASS, 2=FAIL, 3=WIP, 4=BLOCKED. Step results are created automatically when an execution is opened, so there is no separate create.

get_tests_by_requirementA

Find the Zephyr tests that cover one or more requirement issues.

requirements is a Jira issue key/id, or a comma-separated string / list of them (e.g. "PROJ-1,PROJ-2" or ["PROJ-1", "PROJ-2"]). Returns, per requirement, the linked tests and a defect count — use to flag orphaned requirements (empty tests) and to map AC coverage.

get_executions_by_testA

List executions for a given test issue (its execution history & defects).

test is a Jira test issue key or id. Use to flag tests that have never been executed (audit coverage).

get_executions_by_defectA

List executions linked to a given defect (incl. step-level defects).

defect is a Jira bug key or id. Returns {executions, totalCount}.

get_defect_statisticsA

Get execution/requirement/test statistics for one or more defects.

defects is a Jira key/id or a comma-separated string / list of them. Returns per-defect rollups (execution status totals, requirement & test counts) — useful for defect-density and closure-rate narratives.

list_projectsA

List all Jira projects visible to Zephyr (name/key -> projectId).

Returns {options: [{label, value, type}, ...]} where label is the project name and value is its numeric id. Use this to discover ids; most tools also accept a project key/name directly.

list_versionsA

List the versions of a project (name -> versionId).

project accepts a key, name, or numeric id (prefer the id when you have it, to skip a lookup). Returns {unreleasedVersions, releasedVersions} where each entry has label (version name) and value (versionId). -1 is the Unscheduled version.

get_zephyr_test_issue_typeA

Discover the Zephyr "Test" issue-type id per project (for use case 1.1).

Returns {options: [{label, type, value}, ...]} where label is the project key/name and value is that project's Zephyr Test issue-type id. Use this to find the issue-type id the Jira/Atlassian MCP needs when creating Zephyr Test issues (Zephyr does not create Jira issues itself).

get_job_progressA

Poll an asynchronous ZAPI job once by its progress token.

type identifies the job kind, e.g. bulk_execution_copy_move_job_progress (copy/move executions) or cycle_delete_job_progress. Returns the current progress payload (progress reaches 1.0 when complete; message holds the result).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/alejandroviera/zephyr-squad-server-mcp'

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