Lucius MCP
PYPI · LUCIUS-MCP · 4 COMPONENTS · SCANNED SEP 21
MCP server for managing Allure TestOps tests, launches, plans, defects, and metadata.
Recent critical change
CVE-2026-39892 affects this package (1 Aug 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security75
- No malware found by supply-chain analysis.Pass
- CVE check failed: an unpatched critical CVE affects this package; the score is capped at 0. See how to fix → View diagnostics → Fail
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 3 of 49 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 3 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability75
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 8923 tokens (~129/item across 69 items; 69 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 15 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 69 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the Lucius MCP server?
Lucius MCP runs locally as a PyPI package, launched with uvx lucius-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · lucius-mcp
claude mcp add ivanostanin-lucius-mcp -- uvx lucius-mcp
{
"mcpServers": {
"ivanostanin-lucius-mcp": {
"command": "uvx",
"args": [
"lucius-mcp"
]
}
}
} {
"servers": {
"ivanostanin-lucius-mcp": {
"command": "uvx",
"args": [
"lucius-mcp"
]
}
}
} codex mcp add ivanostanin-lucius-mcp -- uvx lucius-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ivanostanin-lucius-mcp": {
"type": "local",
"command": [
"uvx",
"lucius-mcp"
],
"enabled": true
}
}
} openclaw mcp add ivanostanin-lucius-mcp --command uvx --arg lucius-mcp
mcp_servers:
ivanostanin-lucius-mcp:
command: "uvx"
args: ["lucius-mcp"] {
"McpServers": {
"ivanostanin-lucius-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"lucius-mcp"
]
}
}
} assistant mcp add ivanostanin-lucius-mcp -t stdio -c uvx -a lucius-mcp
{
"mcpServers": {
"ivanostanin-lucius-mcp": {
"command": "uvx",
"args": [
"lucius-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 17 Sept 26 0
- Tool safety: pass → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
- Stability: pass → 0.80 functional
- Package version: 0.15.5 → 0.15.6 functional
- 16 Sept 26 0
- Stability: 0.97 → pass security
- 15 Sept 26 0
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 0
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 0
- Stability: pass → 0.87 functional
- 11 Sept 26 0
- Stability: 0.97 → pass security
- 10 Sept 26 0
- Stability: pass → 0.97 functional
- 9 Sept 26 0
- Stability: 0.97 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Stability: 0.97 → pass security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
- Package version: 0.15.4 → 0.15.5 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed pypi/lucius-mcp@0.15.6
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Vulnerabilities 13 findings
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-537c-gmf6-5ccf | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes | |
| GHSA-g6cj-pr64-35w5 | CVE-2026-69247 | high | yes | |
| GHSA-jwv3-5hgf-82ww | CVE-2026-69249 | high | yes | |
| GHSA-m2h6-j472-rp4c | CVE-2026-69248 | medium | yes | |
| GHSA-m959-cc7f-wv43 | CVE-2026-34073 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N | yes |
| GHSA-p423-j2cm-9vmq | CVE-2026-39892 | medium | yes | |
| GHSA-r6ph-v2qm-q3c2 | CVE-2026-26007 | high | yes | |
| PYSEC-2026-2141 | CVE-2026-26007 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N | yes |
| PYSEC-2026-35 | CVE-2026-34073 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N | yes |
| PYSEC-2026-3552 | CVE-2026-69247 | none | yes | |
| PYSEC-2026-3553 | CVE-2026-69249 | none | yes | |
| PYSEC-2026-3554 | CVE-2026-69248 | none | yes | |
| PYSEC-2026-36 | CVE-2026-39892 | critical | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 49 packages
| Packages resolved | 49 |
|---|---|
| Stale | 2 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
list_defects List Defects ~35
List all defects in the current project.
| Name | Type | Req | Description |
|---|---|---|---|
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | Entity-specific collection entries. |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_integrations List Integrations ~99
List available integrations (issue trackers) in Allure TestOps. Use this tool to discover which integrations (Jira, GitHub, etc.) are configured and available for linking issues to test cases.
| Name | Type | Req | Description |
|---|---|---|---|
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. When provided (or from environment default), integrations are filtered to those available for that project. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | Entity-specific collection entries. |
| total | – | – | – |
No examples provided.
list_launch_test_results List Launch Test Results ~184
List test results inside a launch, including manual execution metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| failed_only | boolean | – | When true, return only failed or broken results. Filtering is handled for you. |
| filter_id | – | – | Optional saved filter ID from TestOps. |
| launch_id | integer | yes | Launch ID (required). |
| manual_only | boolean | – | When true, return only manual results. Filtering is handled for you. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Zero-based page index after optional filtering. |
| project_id | – | – | Optional override for the default Project ID. |
| search | – | – | Optional result-name search term. |
| size | integer | – | Number of results per page (max 100). |
| sort | – | – | Optional sort directives such as ['name,ASC'] or ['createdDate,DESC']. |
| Name | Type | Req | Description |
|---|---|---|---|
| failed_only | – | – | – |
| items | – | – | Entity-specific collection entries. |
| launch_id | – | – | – |
| manual_only | – | – | – |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_launches List Launches ~115
List launches in a project.
| Name | Type | Req | Description |
|---|---|---|---|
| filter_id | – | – | Optional filter ID. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Zero-based page index. |
| project_id | – | – | Optional override for the default Project ID. |
| search | – | – | Optional name search. |
| size | integer | – | Number of results per page (max 100). |
| sort | – | – | Sorting criteria in the format: property(,asc|desc). Example: ['createdDate,DESC'] |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | – |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_shared_steps List Shared Steps ~110
List shared steps in a project to find existing ones.
| Name | Type | Req | Description |
|---|---|---|---|
| archived | boolean | – | Whether to include archived steps (default False). |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Page number (0-based, default 0). |
| project_id | – | – | Optional override for the default Project ID. |
| search | – | – | Optional search query to filter by name. |
| size | integer | – | Number of items per page (default 100). |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | Entity-specific collection entries. |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_test_cases List Test Cases ~140
List all test cases in a project. Returns a paginated list of test cases with their IDs, names, and tags. Use this to review existing test documentation in a project.
| Name | Type | Req | Description |
|---|---|---|---|
| name_filter | – | – | Optional name/description search. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Zero-based page index. |
| project_id | – | – | Allure TestOps project ID to list test cases from. |
| size | integer | – | Number of results per page (max 100). |
| status | – | – | Optional status filter (exact match). |
| tags | – | – | Optional tag filters (exact match). |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | Entity-specific collection entries. |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_test_layer_schemas List Test Layer Schemas ~120
List test layer schemas for a project. Test layer schemas map custom field keys to test layers within a project. They determine which test layer is assigned when a specific custom field value is used.
| Name | Type | Req | Description |
|---|---|---|---|
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Page number (0-based). Default is 0. |
| project_id | – | – | Allure TestOps project ID to fetch test layer schemas from. |
| size | integer | – | Page size (max 100). Default is 100. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | Entity-specific collection entries. |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_test_layers List Test Layers ~109
List test layers to discover available test layer taxonomy. Test layers define the taxonomy for categorizing test cases (e.g., Unit, Integration, E2E). Use this to find layer IDs and names before creating or updating test cases.
| Name | Type | Req | Description |
|---|---|---|---|
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Page number (0-based). Default is 0. |
| size | integer | – | Page size (max 100). Default is 100. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | Entity-specific collection entries. |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_test_plans List Test Plans ~82
List Test Plans for the current project. Retrieves a paginated list of Test Plans, showing their IDs, names, and the number of test cases they contain.
| Name | Type | Req | Description |
|---|---|---|---|
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Page number (0-based) |
| size | integer | – | Page size |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | Entity-specific collection entries. |
| page | – | – | – |
| size | – | – | – |
| total | – | – | – |
| total_pages | – | – | – |
No examples provided.
list_test_suites List Test Suites ~89
List hierarchy suites for a project tree.
| Name | Type | Req | Description |
|---|---|---|---|
| include_empty | boolean | – | Whether to include suites that have no nested child suites. Default is True. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Allure TestOps project ID. |
| tree_id | – | – | Target hierarchy tree ID. If omitted, default project tree is used. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | – | – | – |
| total | – | – | – |
| tree | – | – | – |
No examples provided.
manage_test_plan_content Manage Test Plan Content ~119
Modify the content (Test Cases) of an existing Test Plan. Allows adding or removing specific Test Cases by ID, or updating the underlying AQL filter query.
| Name | Type | Req | Description |
|---|---|---|---|
| add_test_case_ids | – | – | List of Test Case IDs to add |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| plan_id | integer | yes | ID of the test plan |
| remove_test_case_ids | – | – | List of Test Case IDs to remove |
| update_aql_filter | – | – | Update the AQL filter string |
| Name | Type | Req | Description |
|---|---|---|---|
| add_test_case_ids | – | – | – |
| add_test_case_urls | – | – | – |
| aql_filter | – | – | – |
| plan_id | – | – | – |
| remove_test_case_ids | – | – | – |
| remove_test_case_urls | – | – | – |
| url | – | – | – |
No examples provided.
prepare_attachment_download Prepare Attachment Download ~182
Prepare one verified attachment download, then HTTP GET its returned Lucius URL. Call this after get_test_result or get_test_case_details provides an attachment ID, kind, and owner context. The returned download URL is one-time and short-lived: HTTP GET it before expires_at without an Allure bearer token. Prepare again if the URL expires or was already retrieved.
| Name | Type | Req | Description |
|---|---|---|---|
| attachment_id | integer | yes | Attachment ID discovered from a readable result or test case. |
| attachment_kind | string | yes | Verified attachment kind: test_result, fixture_result, or test_case. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| test_case_id | – | – | Required owner ID for test_case attachments. |
| test_result_id | – | – | Required owner ID for test_result or fixture_result attachments. |
| Name | Type | Req | Description |
|---|---|---|---|
| attachment_id | integer | yes | Verified attachment identifier. |
| attachment_kind | string | yes | Verified attachment owner kind. |
| content_length | integer | yes | Prepared attachment byte length. |
| content_type | string | yes | Attachment MIME type. |
| download_url | string | yes | Opaque Lucius URL to HTTP GET before expires_at; no Allure bearer token is needed. |
| expires_at | string | yes | UTC expiry timestamp for the one-time download URL. |
| name | string | yes | Sanitized attachment filename. |
| test_case_id | – | – | Owner context for test-case attachments. |
| test_result_id | – | – | Owner context for result or fixture attachments. |
No examples provided.
reopen_launch Reopen Launch ~72
Reopen a launch and return updated launch details.
| Name | Type | Req | Description |
|---|---|---|---|
| api_token | – | – | Optional runtime API token override. |
| launch_id | integer | yes | Launch ID (required). |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| Name | Type | Req | Description |
|---|---|---|---|
| autoclose | – | – | – |
| closed | – | – | – |
| created_date | – | – | – |
| external | – | – | – |
| id | – | – | – |
| known_defects_count | – | – | – |
| last_modified_date | – | – | – |
| manual_execution_guidance | – | – | – |
| name | – | – | – |
| new_defects_count | – | – | – |
| operation | – | – | – |
| project_id | – | – | – |
| url | – | – | – |
No examples provided.
rerun_test_results_manually Rerun Test Results Manually ~123
Schedule manual reruns for selected launch results.
| Name | Type | Req | Description |
|---|---|---|---|
| assignees | – | – | Optional usernames to assign during manual rerun scheduling. |
| force_manual | boolean | – | Force manual rerun mode when the upstream API supports it. |
| launch_id | integer | yes | Launch ID containing the failed results (required). |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| result_ids | array | yes | One or more launch result IDs to schedule for manual rerun. |
| Name | Type | Req | Description |
|---|---|---|---|
| assignees | – | – | – |
| force_manual | – | – | – |
| launch_id | – | – | – |
| result_ids | – | – | – |
| scheduled_count | – | – | – |
No examples provided.
search_test_cases Search Test Cases ~477
Search for test cases by name, tag, or AQL query. Find test cases matching your search criteria. Supports simple name/tag search or advanced AQL (Allure Query Language) for complex filtering. Simple Query Syntax (use 'query' parameter): - Plain text: Searches in test case names (case-insensitive) - tag:value: Filters by exact tag match - Combined: "login tag:smoke" finds test cases with "login" in name AND "smoke" tag Important: see https://docs.qameta.io/allure-testops/advanced/aql/ for the full AQL syntax reference. AQL Syntax (use 'aql' parameter): - Operators: and, or, not - Precedence: and binds tighter than or; use parentheses to group - Strings are double-quoted; numbers are unquoted; booleans are true/false - Comparison operators: =, !=, ~= (contains), in, not in - Field examples: status, tag, name, createdBy, automated, layer
| Name | Type | Req | Description |
|---|---|---|---|
| aql | – | – | Raw AQL (Allure Query Language) for complex searches. Important: see https://docs.qameta.io/allure-testops/advanced/aql/ for the full AQL syntax reference.Supports AND, OR, NOT operators, parentheses… |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| page | integer | – | Zero-based page index. |
| project_id | – | – | Allure TestOps project ID to list test cases from. |
| query | – | – | Simple search query. Examples: 'login flow', 'tag:smoke', 'tag:smoke tag:regression', 'authentication tag:security'. Ignored when 'aql' is provided. |
| size | integer | – | Number of results per page (max 100). |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | Matching test cases. |
| page | integer | yes | Zero-based result page. |
| query | string | yes | Query that produced these results. |
| size | integer | yes | Requested page size. |
| total | integer | yes | Total matching test cases. |
| total_pages | integer | yes | Number of result pages. |
No examples provided.
start_manual_test_session Start Manual Test Session ~77
Start a manual execution session for a launch.
| Name | Type | Req | Description |
|---|---|---|---|
| environment | – | – | Optional environment variables as [{key, value}, ...]. |
| launch_id | integer | yes | Launch ID (required). |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| Name | Type | Req | Description |
|---|---|---|---|
| environment | – | – | – |
| job_id | – | – | – |
| job_run_id | – | – | – |
| launch_id | – | – | – |
| project_id | – | – | – |
| test_session_id | – | – | – |
No examples provided.
submit_manual_test_results Submit Manual Test Results ~199
Submit manual execution results for a manual session.
| Name | Type | Req | Description |
|---|---|---|---|
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| results | array | yes | Manual result payloads. When an item includes result_id from list_launch_test_results, the service resolves that existing launch result in place through TestOps' test-result run controller. After rer… |
| test_session_id | integer | yes | Manual test session ID (required). |
| Name | Type | Req | Description |
|---|---|---|---|
| result_ids | – | – | – |
| submitted_count | – | – | – |
| test_session_id | – | – | – |
No examples provided.
unlink_issue_from_test_case Unlink Issue From Test Case ~121
Unlink an issue from a test case. This operation is idempotent: if the issue is already unlinked, it still returns a successful confirmation. Supply the issue key (for example, ``PROJ-123``) or the internal issue-link ID returned by Allure TestOps.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | – | yes | Issue key or internal issue-link ID to unlink |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| test_case_id | integer | yes | ID of the test case to unlink from |
| Name | Type | Req | Description |
|---|---|---|---|
| already_unlinked | – | – | – |
| issue_id | – | – | – |
| status | – | – | – |
| test_case_id | – | – | – |
No examples provided.
unlink_shared_step Unlink Shared Step ~130
Remove a shared step reference from a test case. ⚠️ CAUTION: Destructive. Removes the link to the shared step. The test case will no longer include those steps at execution time.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be set to True to proceed with unlinking. Safety measure. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| shared_step_id | integer | yes | The shared step to unlink. |
| test_case_id | integer | yes | The test case to modify. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | – | – | Requested operation name. |
| error | – | – | – |
| requires_confirmation | – | – | – |
| shared_step_id | – | – | – |
| shared_step_url | – | – | – |
| status | – | – | – |
| steps | – | – | Serialized scenario steps. |
| test_case_id | – | – | – |
| test_case_url | – | – | – |
No examples provided.
update_custom_field_value Update Custom Field Value ~145
Update an existing custom field value. ⚠️ CAUTION: Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| cfv_id | integer | yes | Custom field value ID to update. |
| confirm | boolean | – | Must be set to True to proceed with update. Safety measure. |
| custom_field_id | – | – | Project-scoped custom field ID (optional, resolves by name if missing). |
| custom_field_name | – | – | Custom field name to resolve when custom_field_id is not provided. |
| name | string | yes | New name for the custom field value. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | – | – | Requested operation name. |
| cfv_id | – | – | – |
| custom_field_id | – | – | – |
| custom_field_name | – | – | – |
| id | – | – | – |
| name | – | – | – |
| requires_confirmation | – | – | – |
No examples provided.
update_defect Update Defect ~102
Update an existing defect's name, description, or status. At least one field must be provided. Fields set to null/None are left unchanged.
| Name | Type | Req | Description |
|---|---|---|---|
| closed | – | – | Set to true to close, false to reopen |
| defect_id | integer | yes | ID of the defect to update |
| description | – | – | New markdown description |
| name | – | – | New defect name |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| Name | Type | Req | Description |
|---|---|---|---|
| closed | – | – | – |
| description | – | – | – |
| id | – | – | – |
| name | – | – | – |
| status | – | – | – |
| url | – | – | – |
No examples provided.
update_defect_matcher Update Defect Matcher ~87
Update a defect matcher's name or regex patterns. At least one field must be provided.
| Name | Type | Req | Description |
|---|---|---|---|
| matcher_id | integer | yes | ID of the matcher to update |
| message_regex | – | – | New message regex |
| name | – | – | New matcher name |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| trace_regex | – | – | New trace regex |
| Name | Type | Req | Description |
|---|---|---|---|
| id | – | – | – |
| message_regex | – | – | – |
| name | – | – | – |
| trace_regex | – | – | – |
No examples provided.
update_shared_step Update Shared Step ~152
Update an existing shared step. ⚠️ CAUTION: Destructive. ⚠️ IMPORTANT: Changes propagate to ALL test cases using this shared step. Only provided fields will be updated. Omitted fields remain unchanged. Repeated calls with the same data are idempotent.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be set to True to proceed with update. Safety measure. |
| description | – | – | New description (optional). |
| name | – | – | New name for the shared step (optional). |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| step_id | integer | yes | The shared step ID to update (required). |
| Name | Type | Req | Description |
|---|---|---|---|
| action | – | – | Requested operation name. |
| changed | – | – | – |
| id | – | – | – |
| name | – | – | – |
| requires_confirmation | – | – | – |
| step_id | – | – | – |
| updated_fields | – | – | – |
| url | – | – | – |
No examples provided.
update_test_case Update Test Case ~471
Update an existing test case in Allure TestOps. ⚠️ CAUTION: Destructive. Performs a partial update: only supplied fields are sent to the API. When provided, ``steps`` replace all existing steps, and ``attachments`` replace all existing global attachments. Omit a field to preserve its current value.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | – | – | New list of global attachments. Each dict has 'name' and 'content' (base64) or 'url'. |
| automated | – | – | Set whether the test case is automated |
| clear_issues | – | – | If True, remove ALL issues from the test case. |
| confirm | boolean | – | Must be set to True to proceed with update. Safety measure. |
| custom_fields | – | – | Dictionary of custom fields to update (Name -> Value or list of values) |
| description | – | – | New description |
| expected_result | – | – | Global expected result for the test case |
| integration_id | – | – | Optional integration ID for issue linking (use list_integrations to find IDs). Required when multiple integrations exist and adding issues. Mutually exclusive with integration_name. |
| integration_name | – | – | Optional integration name for issue linking (exact case-sensitive match). Required when multiple integrations exist and adding issues. Mutually exclusive with integration_id. |
| issues | – | – | List of issue keys to ADD (e.g. ['PROJ-123']). |
| links | – | – | New list of external links. Each dict has 'name', 'url', and optional 'type'. |
| name | – | – | New name for the test case |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| precondition | – | – | New precondition |
| project_id | – | – | Optional override for the default Project ID. |
| remove_issues | – | – | List of issue keys to REMOVE. |
| status_id | – | – | ID of the test case status |
| steps | – | – | New list of steps. Each step is a dict with 'action', 'expected', and optional 'attachments' list. |
| tags | – | – | New list of tags |
| test_case_id | integer | yes | The ID of the test case to update |
| test_layer_id | – | – | ID of the test layer |
| test_layer_name | – | – | Name of the test layer |
| workflow_id | – | – | ID of the workflow |
| Name | Type | Req | Description |
|---|---|---|---|
| action | – | – | Requested operation name. |
| changes | – | – | – |
| id | – | – | – |
| name | – | – | – |
| requires_confirmation | – | – | – |
| summary | – | – | – |
| test_case_id | – | – | – |
| url | – | – | – |
No examples provided.
update_test_layer Update Test Layer ~103
Update an existing test layer's name. ⚠️ CAUTION: Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be set to True to proceed with update. Safety measure. |
| layer_id | integer | yes | ID of the test layer to update. |
| name | string | yes | New name for the test layer. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Allure TestOps project ID. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | – | – | Requested operation name. |
| changed | – | – | – |
| id | – | – | – |
| layer_id | – | – | – |
| name | – | – | – |
| requires_confirmation | – | – | – |
No examples provided.
update_test_layer_schema Update Test Layer Schema ~113
Update an existing test layer schema. ⚠️ CAUTION: Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be set to True to proceed with update. Safety measure. |
| key | – | – | New schema key. |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Allure TestOps project ID. |
| schema_id | integer | yes | ID of the test layer schema to update. |
| test_layer_id | – | – | New test layer ID to link to. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | – | – | Requested operation name. |
| changed | – | – | – |
| id | – | – | – |
| key | – | – | – |
| requires_confirmation | – | – | – |
| schema_id | – | – | – |
| test_layer_name | – | – | – |
No examples provided.
update_test_plan Update Test Plan ~66
Update the metadata of an existing Test Plan. Currently, supports updating the name of the plan.
| Name | Type | Req | Description |
|---|---|---|---|
| name | – | – | New name |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| plan_id | integer | yes | ID of the test plan |
| Name | Type | Req | Description |
|---|---|---|---|
| id | – | – | – |
| name | – | – | – |
| url | – | – | – |
No examples provided.
upload_test_results Upload Test Results ~131
Upload external test results to an existing launch.
| Name | Type | Req | Description |
|---|---|---|---|
| launch_id | integer | yes | Launch ID to receive the results (required). |
| output_format | – | – | Output format: 'json' (default) or 'plain'. |
| project_id | – | – | Optional override for the default Project ID. |
| results | array | yes | Result objects to append to the launch. Every item requires test_case_id (int) and status (passed, failed, broken, skipped, or unknown). Optional fields: start, stop, duration, message, name, and ful… |
| Name | Type | Req | Description |
|---|---|---|---|
| failures | – | – | – |
| launch_id | – | – | – |
| requested_count | – | – | – |
| result_ids | – | – | – |
| uploaded_count | – | – | – |
No examples provided.
What is the Lucius MCP server?
Lucius MCP is listed in the public MCP registry as io.github.ivanostanin/lucius-mcp. MCP server for managing Allure TestOps tests, launches, plans, defects, and metadata. This page covers its PyPI package (lucius-mcp).
What tools does the Lucius MCP server expose?
Lucius MCP exposes 69 tools: create_test_case, get_test_case_details, update_test_case, delete_test_case, delete_archived_test_cases, and 64 more. Their descriptions and schemas cost roughly 8,923 tokens of context every time the server is loaded.
Is the Lucius MCP server still maintained?
Lucius MCP is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.