You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add find_project, remove_test_cases_from_launch, and initialize instructions
- find_project: resolve a project by name/code (e.g. "TSi") to its numeric ID
via a client-side scan of /api/project (no server-side name filter exists).
- remove_test_cases_from_launch: trim test cases from a launch by hiding
(default, non-destructive) or permanently deleting their test results.
- initialize now returns an `instructions` capability overview so MCP clients
tell the model what the server can do, improving tool discoverability.
Tool count 112 -> 114. Docs (README, RELEASES, API.md, llms.txt, llms-full.txt,
CHANGELOG) synced; validation tests and an initialize-instructions test added.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
-**`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 through `list_projects` or guessing IDs. Scans `/api/project` client-side since the Allure TestOps API exposes no server-side project name filter; returns `matches`, `count`, `scanned`, and a `truncated` flag when more matches may exist beyond `limit` (default 20) or the 5000-project scan cap.
15
+
16
+
-**`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 each `test_case_id` to 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, `delete` issues one request per result and reports per-result failures under `failed`. Returns `removed_count`, `removed_result_ids`, `not_found_test_case_ids`, and `truncated`.
17
+
18
+
-**`initialize` now returns an `instructions` field** — the MCP handshake response includes a capability overview (tool groups, how to resolve names→IDs, the `search_testops_operations`/`execute_testops_operation` fallback 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.
19
+
20
+
- Tool count: 112 → 114.
21
+
22
+
### Fixed
23
+
24
+
-**`llms.txt` listed the removed `update_launch_environment` tool** — dropped from the Launches group (it was removed in 2.0.3) and the group count corrected.
Copy file name to clipboardExpand all lines: docs/API.md
+40-9Lines changed: 40 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -235,9 +235,25 @@ Add a test plan to a launch.
235
235
236
236
---
237
237
238
+
### 10. `remove_test_cases_from_launch`
239
+
240
+
Remove test cases from a launch. Resolves each `test_case_id` to its test result(s) in the launch (including retries) and removes them — use to trim a launch that has too many cases or duplicates.
241
+
242
+
#### Parameters
243
+
244
+
| Parameter | Type | Required | Description |
245
+
|-----------|------|----------|-------------|
246
+
|`launch_id`| integer | ✓ | Launch ID to remove test cases from |
247
+
|`test_case_ids`| integer[]| ✓ | Test case IDs to remove |
248
+
|`mode`| string ||`hide` (default) excludes results from the report but keeps the data; `delete` permanently deletes them |
249
+
250
+
Returns `removed_count`, `removed_result_ids`, `not_found_test_case_ids`, and `truncated`. In `delete` mode, any per-result failures are listed under `failed`. No bulk-delete API exists, so `delete` issues one `DELETE` per result.
251
+
252
+
---
253
+
238
254
## Test Results Management Tools
239
255
240
-
### 10. `list_test_results`
256
+
### 11. `list_test_results`
241
257
242
258
List test results in a launch with optional status filter.
243
259
@@ -252,7 +268,7 @@ List test results in a launch with optional status filter.
252
268
253
269
---
254
270
255
-
### 11. `get_test_result`
271
+
### 12. `get_test_result`
256
272
257
273
Get detailed information about a single test result.
258
274
@@ -264,7 +280,7 @@ Get detailed information about a single test result.
264
280
265
281
---
266
282
267
-
### 12. `assign_test_result`
283
+
### 13. `assign_test_result`
268
284
269
285
Assign a test result to a team member.
270
286
@@ -277,7 +293,7 @@ Assign a test result to a team member.
277
293
278
294
---
279
295
280
-
### 13. `mute_test_result`
296
+
### 14. `mute_test_result`
281
297
282
298
Mute a failing test result (mark as known issue).
283
299
@@ -405,7 +421,22 @@ List all accessible projects.
405
421
406
422
---
407
423
408
-
### 28. `get_project`
424
+
### 28. `find_project`
425
+
426
+
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 — instead of paging through `list_projects` or guessing IDs.
427
+
428
+
#### Parameters
429
+
430
+
| Parameter | Type | Required | Description |
431
+
|-----------|------|----------|-------------|
432
+
|`query`| string | ✓ | Name or code to match (case-insensitive substring) |
433
+
|`limit`| integer || Max matches to return (1–100, default 20) |
434
+
435
+
Returns `matches` (array of `{id, name, code}`), `count`, `scanned`, and `truncated` (`true` if more matches may exist beyond `limit` or the scan cap).
436
+
437
+
---
438
+
439
+
### 29. `get_project`
409
440
410
441
Get project details and settings.
411
442
@@ -417,7 +448,7 @@ Get project details and settings.
417
448
418
449
---
419
450
420
-
### 29. `get_project_stats`
451
+
### 30. `get_project_stats`
421
452
422
453
Get project statistics (test count, runs, automation %).
// serverInstructions is returned in the initialize response so MCP clients can
363
+
// surface an overview of this server's capabilities to the model. It is meant
364
+
// to answer "what can I do here, and how do I find it" up front, so the model
365
+
// does not have to guess from bare tool names.
366
+
constserverInstructions=`Allure TestOps integration for test management. You have 100+ dedicated tools plus a search/execute fallback that covers 600+ API endpoints — if you don't see a dedicated tool, assume the capability still exists and find it before giving up.
- Async tasks: long operations return a task_id immediately — poll get_task_status, see list_running_tasks, cancel_task.
377
+
- AI: analyze_launch_failures.
378
+
379
+
Finding things:
380
+
- Most tools take numeric IDs. To turn a human name/code into an ID: find_project (projects), list_launches (launches in a project), list_test_cases or search_test_cases (cases).
381
+
- For anything without a dedicated tool, call search_testops_operations with your intent, then execute_testops_operation to run the operation it returns.
382
+
383
+
Safety:
384
+
- Destructive tools (delete_*, bulk_delete_*, and remove_test_cases_from_launch with mode=delete) permanently remove data — confirm intent first and prefer non-destructive options (e.g. remove_test_cases_from_launch with mode=hide) when unsure.
385
+
- If no API token is configured, use configure_allure_token (stored for the session only).`
0 commit comments