Releases: MimoJanra/TestOpsMCP
Release list
v2.1.7
[2.1.7] - 2026-07-14 - Revert SDK Downgrade, Route Around jitless zod Bug Instead
Fixed
2.1.6's downgrade toext-apps@1.6.0broke the widget handshake with a new error (i.parts is not iterable) — that version's wire protocol isn't compatible with the current Claude Desktop host. Reverted the pinned bundle back to1.7.4.- Internal zod crashes (
_zod/.defundefined) instead worked around via the SDK's ownallowUnsafeEval: trueApp option, which skips thezod.config({jitless:true})call in the constructor that appears to trigger them. Applied to all three widgets (dashboard, action picker, results display).
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.7
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.1.6
[2.1.6] - 2026-07-14 - Downgrade Pinned Widget SDK to Avoid jitless zod Crashes
Fixed
- Launch Dashboard widget crashing with shifting internal zod errors (
Cannot read properties of null (reading '_zod'),Cannot read properties of undefined (reading 'def')) on valid, non-null data. Traced toext-apps@1.7.x, which added an unconditionalzod.config({jitless:true})call in theAppconstructor (needed since the widget iframe's CSP blocks eval-based JIT compilation) — that code path appears to have bugs that surface intermittently depending on which fields are present. Pinned the bundle back to1.6.0, which predates that change and has the sameAppAPI shape our widgets use.
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.6
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.1.5
[2.1.5] - 2026-07-14 - Fix Widget Crash on Null Launch Status
Fixed
- Launch Dashboard widget still crashing with
Cannot read properties of null (reading '_zod')on some launches. Root cause: Allure returnsstatus: nullfor launches without a terminal status yet (e.g. still running), and that rawnullwas passed straight throughget_launch_dashboard/get_launch_detailsinto the widget's data payload, tripping the host's schema validation. Both tools now normalize status (string,{id,name}object, ornull) into a plain string, defaulting to"UNKNOWN".
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.5
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.1.4
[2.1.4] - 2026-07-14 - Pinned Widget SDK & Better Diagnostics
Fixed
- Launch Dashboard widget crashing with
Cannot read properties of null (reading '_zod'). The ext-apps SDK bundle was fetched unpinned from unpkg/jsdelivr ("latest"), so an upstream package release could silently change SDK internals underneath us — the same class of issue behind the two prior widget fixes (2.1.2,2.1.3). The bundle version is now pinned (1.7.4) and only bumped deliberately after verification. - Widget failures were hard to diagnose.
new App(...)/app.connect()weren't wrapped in error handling, so an SDK-internal throw could leave the widget blank with no explanation. The whole init flow is now guarded, and both server-side (bundle fetch attempts per CDN candidate) and client-side (console.errorwith the full error/stack) now log the actual reason a widget failed to render instead of just a generic fallback message.
Fixed
- Widgets still rendering blank after the ext-apps bundle fix. The
Appconstructor was called with a bare string (new App('launch-dashboard', {}, {})) instead of the required{name, version}info object, breaking the widget-host connection handshake so the host never revealed the iframe. Also replaced inlineonclick="..."handlers in the dashboard's action buttons withaddEventListener, since the widget sandbox's CSP blocks inline event handler attributes. AddedautoResize: trueso widget height tracks rendered content.
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.4
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.1.3
[2.1.3] - 2026-07-14 - Widget Handshake Fix
Fixed
- Widgets still rendering blank after the ext-apps bundle fix. The
Appconstructor was called with a bare string (new App('launch-dashboard', {}, {})) instead of the required{name, version}info object, breaking the widget-host connection handshake so the host never revealed the iframe. Also replaced inlineonclick="..."handlers in the dashboard's action buttons withaddEventListener, since the widget sandbox's CSP blocks inline event handler attributes. AddedautoResize: trueso widget height tracks rendered content.
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.3
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.1.2
[2.1.2] - 2026-07-14 - Widget Rendering Fix
Fixed
- Interactive widgets (dashboard, action picker, results display) rendering blank. The ext-apps SDK bundle was fetched from
dist/app-with-deps.js, but the published package places it atdist/src/app-with-deps.js— every CDN candidate 404'd, so the server always silently fell back to a minimal stub that doesn't implement the real widget host handshake. Corrected the CDN paths so the real SDK loads.
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.2
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.1.1
What's Changed
- No changes
Full Changelog: v2.1.0...v2.1.1
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.1
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.1.0
[2.1.0] - 2026-06-19 - Project Search, Launch Cleanup & Tool Discoverability
Added
-
find_project— find a project by name or code (case-insensitive substring match). Resolves a human-readable name/code (e.g.TSi) to its numeric project ID without paging throughlist_projectsor guessing IDs. Scans/api/projectclient-side since the Allure TestOps API exposes no server-side project name filter; returnsmatches,count,scanned, and atruncatedflag when more matches may exist beyondlimit(default 20) or the 5000-project scan cap. -
remove_test_cases_from_launch— remove test cases from a launch (e.g. to trim a launch with too many cases or duplicates, including already-started ones). Resolves eachtest_case_idto its test result(s) in the launch — including retries — and removes them.mode="hide"(default) excludes the results from the report but keeps the data (POST /api/testresult/bulk/hide, non-destructive);mode="delete"permanently deletes them (DELETE /api/testresult/{id}). Since the Allure API has no bulk test-result delete,deleteissues one request per result and reports per-result failures underfailed. Returnsremoved_count,removed_result_ids,not_found_test_case_ids, andtruncated. -
initializenow returns aninstructionsfield — the MCP handshake response includes a capability overview (tool groups, how to resolve names→IDs, thesearch_testops_operations/execute_testops_operationfallback for the 600+ endpoints, and safety notes). MCP clients add this to the model's system prompt, so Claude knows what the server can do instead of inferring it from bare tool names. Directly improves tool discoverability. -
Tool count: 112 → 114.
Fixed
llms.txtlisted the removedupdate_launch_environmenttool — dropped from the Launches group (it was removed in 2.0.3) and the group count corrected.
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.1.0
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.0.3
What's Changed
- No changes
Full Changelog: v2.0.2...v2.0.3
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.0.3
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide
v2.0.2
What's Changed
- No changes
Full Changelog: v2.0.1...v2.0.2
Docker Image
docker pull ghcr.io/mimojanra/testopsmcp:v2.0.2
docker pull ghcr.io/mimojanra/testopsmcp:latestPlatforms: linux/amd64, linux/arm64 · Setup guide