upload_automation_results
Publish automated test execution results from a local ZIP of JSON files to Jira/Zephyr, creating a new test cycle for the project.
Instructions
Publish automated execution results from a local ZIP archive (POST multipart/form-data /automation/execution/{projectKey}). The archive must hold JSON files in Zephyr's custom results format: {"version": 1, "executions": [{"source", "result", "testCase": {"key"}}]}. Validation is strict only at the TOP level of an execution: an extra sibling of source/result such as executionTime is rejected with 400 "Invalid Custom Format JSON file", while an extra field inside "testCase" is silently accepted; "version" is not validated at all and "source" is optional (and readable back through no endpoint). Each execution's "result" is a status name — Default statuses: 'Not Executed', 'In Progress', 'Pass', 'Fail', 'Blocked' — case-sensitive internal names; instances may define custom ones. WARNING (verified live): an UNRECOGNIZED result value is NOT rejected — "PASS", "pass", "FAIL", "" and free text are all stored as Blocked with HTTP 200, so a single typo turns a green suite into a Blocked cycle silently; only an absent "result" key errors (400 "Test Result Status is required"). Test case keys are case-sensitive and must exist: one bad key rejects the whole archive and creates no partial cycle. Two executions of the SAME case become two separate run items, and several JSON files in one ZIP are merged into one cycle. A 400 "Invalid ZIP file" also means a structurally valid archive that contains no JSON at all. Always creates a NEW test cycle (test run) — it never appends to an existing one — and returns the API description of that cycle unchanged, or { uploaded: true } for an empty body.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path of the results .zip archive on the machine running this MCP server (absolute path recommended) | |
| projectKey | No | Jira project key, e.g. "PROJ"; defaults to ZEPHYR_DEFAULT_PROJECT_KEY when omitted | |
| autoCreateTestCases | No | Create the test cases referenced by the results that do not exist in the project yet (server default: false). Omitted from the query string entirely when not passed. Verified live: this only affects executions that identify the case by testCase.name with NO key — an explicit testCase.key that does not exist fails with 400 "Test Case with key X not found." whether the flag is true or false. |