Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Lucius MCP

PYPI · LUCIUS-MCP · 4 COMPONENTS

MCP server for managing Allure TestOps tests, launches, plans, defects, and metadata.

0 this week 0 Trust /100

Last scanned (3 hours ago)

Scores higher than 0% of PyPI servers

Category Testing and QA

Recent critical change

CVE-2026-39892 affects this package (1 Aug 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

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 Security25
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to ivanostanin/lucius-mcp). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability74
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9162 tokens (~130/item across 70 items; 70 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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 70 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
What we tested

Checks we ran (15)

  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Checks we could not complete (1)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Malware scan in Supply Chain SecurityMalware scan not yet available for this package.

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

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.

  • 5 Nov 26 0
    • Malware scan: pass → unverified ▼ security
    • Package version: 0.16.8 → 0.16.9 functional
  • 4 Nov 26 0
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 0
    • Malware scan: pass → unverified ▼ security
    • Package version: 0.16.6 → 0.16.8 functional
    • Package version: 0.16.6 → 0.16.7 functional
  • 31 Oct 26 0
    • Malware scan: unverified → pass ▲ security
  • 30 Oct 26 0
    • Malware scan: pass → unverified ▼ security
  • 27 Oct 26 0
    • Stability: fail → pass ▲ security
  • 24 Oct 26 0
    • Malware scan: unverified → pass ▲ security
  • 22 Oct 26 0
    • Provenance: unverified → pass ▲ security
    • The attested source repository moved: ivanostanin/lucius-mcp security
Diagnostics

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 5 Nov 2026 · Analysed pypi/lucius-mcp@0.16.9

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo ivanostanin/lucius-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/ivanostanin/lucius-mcp/.github/workflows/release.yml@refs/tags/v0.16.9
Rekor log index 3693079086
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:bd57d98268a27bfd43324b73db7d3c1b4389443f4d0e7601b5c0babd4658be96

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend Known build tool 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 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 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 46 packages
Packages resolved 46
Stale 1
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 70 exposed · ~9,162 tokens

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 →

Tool Tokens
list_defects ~35

List all defects in the current project.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

No examples provided.

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.

NameTypeReqDescription
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.
NameTypeReqDescription
items––Entity-specific collection entries.
total–––

No examples provided.

list_launch_test_results ~184

List test results inside a launch, including manual execution metadata.

NameTypeReqDescription
failed_onlyboolean–When true, return only failed or broken results. Filtering is handled for you.
filter_id––Optional saved filter ID from TestOps.
launch_idintegeryesLaunch ID (required).
manual_onlyboolean–When true, return only manual results. Filtering is handled for you.
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Zero-based page index after optional filtering.
project_id––Optional override for the default Project ID.
search––Optional result-name search term.
sizeinteger–Number of results per page (max 100).
sort––Optional sort directives such as ['name,ASC'] or ['createdDate,DESC'].
NameTypeReqDescription
failed_only–––
items––Entity-specific collection entries.
launch_id–––
manual_only–––
page–––
size–––
total–––
total_pages–––

No examples provided.

list_launches ~115

List launches in a project.

NameTypeReqDescription
filter_id––Optional filter ID.
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Zero-based page index.
project_id––Optional override for the default Project ID.
search––Optional name search.
sizeinteger–Number of results per page (max 100).
sort––Sorting criteria in the format: property(,asc|desc). Example: ['createdDate,DESC']
NameTypeReqDescription
items–––
page–––
size–––
total–––
total_pages–––

No examples provided.

list_shared_steps ~110

List shared steps in a project to find existing ones.

NameTypeReqDescription
archivedboolean–Whether to include archived steps (default False).
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Page number (0-based, default 0).
project_id––Optional override for the default Project ID.
search––Optional search query to filter by name.
sizeinteger–Number of items per page (default 100).
NameTypeReqDescription
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

No examples provided.

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.

NameTypeReqDescription
name_filter––Optional name/description search.
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Zero-based page index.
project_id––Allure TestOps project ID to list test cases from.
sizeinteger–Number of results per page (max 100).
status––Optional status filter (exact match).
tags––Optional tag filters (exact match).
NameTypeReqDescription
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

No examples provided.

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.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Page number (0-based). Default is 0.
project_id––Allure TestOps project ID to fetch test layer schemas from.
sizeinteger–Page size (max 100). Default is 100.
NameTypeReqDescription
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

No examples provided.

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.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Page number (0-based). Default is 0.
sizeinteger–Page size (max 100). Default is 100.
NameTypeReqDescription
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

No examples provided.

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.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Page number (0-based)
sizeinteger–Page size
NameTypeReqDescription
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

No examples provided.

list_test_suites ~89

List hierarchy suites for a project tree.

NameTypeReqDescription
include_emptyboolean–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.
NameTypeReqDescription
items–––
total–––
tree–––

No examples provided.

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.

NameTypeReqDescription
add_test_case_ids––List of Test Case IDs to add
output_format––Output format: 'json' (default) or 'plain'.
plan_idintegeryesID of the test plan
remove_test_case_ids––List of Test Case IDs to remove
update_aql_filter––Update the AQL filter string
NameTypeReqDescription
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 ~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.

NameTypeReqDescription
attachment_idintegeryesAttachment ID discovered from a readable result or test case.
attachment_kindstringyesVerified 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.
NameTypeReqDescription
attachment_idintegeryesVerified attachment identifier.
attachment_kindstringyesVerified attachment owner kind.
content_lengthintegeryesPrepared attachment byte length.
content_typestringyesAttachment MIME type.
download_urlstringyesOpaque Lucius URL to HTTP GET before expires_at; no Allure bearer token is needed.
expires_atstringyesUTC expiry timestamp for the one-time download URL.
namestringyesSanitized 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 ~72

Reopen a launch and return updated launch details.

NameTypeReqDescription
api_token––Optional runtime API token override.
launch_idintegeryesLaunch ID (required).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
NameTypeReqDescription
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 ~123

Schedule manual reruns for selected launch results.

NameTypeReqDescription
assignees––Optional usernames to assign during manual rerun scheduling.
force_manualboolean–Force manual rerun mode when the upstream API supports it.
launch_idintegeryesLaunch ID containing the failed results (required).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
result_idsarrayyesOne or more launch result IDs to schedule for manual rerun.
NameTypeReqDescription
assignees–––
force_manual–––
launch_id–––
result_ids–––
scheduled_count–––

No examples provided.

run_test_plan ~144

Start a launch from an existing Test Plan. Runs the selected test plan by its ID and returns the created launch as a compact mutation summary enriched with the source plan context. Starting a launch is reversible: use delete_launch to remove it when unwanted.

NameTypeReqDescription
issues––Optional list of issue dictionaries.
launch_namestringyesName for the launch started from the plan
links––Optional list of external links (name, url, type).
output_format––Output format: 'json' (default) or 'plain'.
plan_idintegeryesID of the test plan to run
tags––Optional list of tags.
NameTypeReqDescription
autoclose–––
closed–––
created_date–––
external–––
id–––
known_defects_count–––
last_modified_date–––
manual_execution_guidance–––
name–––
new_defects_count–––
operation–––
plan_id––Source test plan ID for the started launch.
project_id–––
url–––

No examples provided.

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

NameTypeReqDescription
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'.
pageinteger–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.
sizeinteger–Number of results per page (max 100).
NameTypeReqDescription
itemsarrayyesMatching test cases.
pageintegeryesZero-based result page.
querystringyesQuery that produced these results.
sizeintegeryesRequested page size.
totalintegeryesTotal matching test cases.
total_pagesintegeryesNumber of result pages.

No examples provided.

start_manual_test_session ~77

Start a manual execution session for a launch.

NameTypeReqDescription
environment––Optional environment variables as [{key, value}, ...].
launch_idintegeryesLaunch ID (required).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
NameTypeReqDescription
environment–––
job_id–––
job_run_id–––
launch_id–––
project_id–––
test_session_id–––

No examples provided.

submit_manual_test_results ~257

Submit manual execution results for a manual session.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
resultsarrayyesManual 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_idintegeryesManual test session ID (required).
NameTypeReqDescription
result_ids–––
submitted_count–––
test_session_id–––

No examples provided.

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.

NameTypeReqDescription
issue_id–yesIssue key or internal issue-link ID to unlink
output_format––Output format: 'json' (default) or 'plain'.
test_case_idintegeryesID of the test case to unlink from
NameTypeReqDescription
already_unlinked–––
issue_id–––
status–––
test_case_id–––

No examples provided.

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.

NameTypeReqDescription
confirmboolean–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_idintegeryesThe shared step to unlink.
test_case_idintegeryesThe test case to modify.
NameTypeReqDescription
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 ~145

Update an existing custom field value. ⚠️ CAUTION: Destructive.

NameTypeReqDescription
cfv_idintegeryesCustom field value ID to update.
confirmboolean–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.
namestringyesNew name for the custom field value.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
NameTypeReqDescription
action––Requested operation name.
cfv_id–––
custom_field_id–––
custom_field_name–––
id–––
name–––
requires_confirmation–––

No examples provided.

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.

NameTypeReqDescription
closed––Set to true to close, false to reopen
defect_idintegeryesID of the defect to update
description––New markdown description
name––New defect name
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
closed–––
description–––
id–––
name–––
status–––
url–––

No examples provided.

update_defect_matcher ~87

Update a defect matcher's name or regex patterns. At least one field must be provided.

NameTypeReqDescription
matcher_idintegeryesID 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
NameTypeReqDescription
id–––
message_regex–––
name–––
trace_regex–––

No examples provided.

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.

NameTypeReqDescription
confirmboolean–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_idintegeryesThe shared step ID to update (required).
NameTypeReqDescription
action––Requested operation name.
changed–––
id–––
name–––
requires_confirmation–––
step_id–––
updated_fields–––
url–––

No examples provided.

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.

NameTypeReqDescription
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.
confirmboolean–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_idintegeryesThe 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
NameTypeReqDescription
action––Requested operation name.
changes–––
id–––
name–––
requires_confirmation–––
summary–––
test_case_id–––
url–––

No examples provided.

update_test_layer ~103

Update an existing test layer's name. ⚠️ CAUTION: Destructive.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed with update. Safety measure.
layer_idintegeryesID of the test layer to update.
namestringyesNew name for the test layer.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Allure TestOps project ID.
NameTypeReqDescription
action––Requested operation name.
changed–––
id–––
layer_id–––
name–––
requires_confirmation–––

No examples provided.

update_test_layer_schema ~113

Update an existing test layer schema. ⚠️ CAUTION: Destructive.

NameTypeReqDescription
confirmboolean–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_idintegeryesID of the test layer schema to update.
test_layer_id––New test layer ID to link to.
NameTypeReqDescription
action––Requested operation name.
changed–––
id–––
key–––
requires_confirmation–––
schema_id–––
test_layer_name–––

No examples provided.

update_test_plan ~66

Update the metadata of an existing Test Plan. Currently, supports updating the name of the plan.

NameTypeReqDescription
name––New name
output_format––Output format: 'json' (default) or 'plain'.
plan_idintegeryesID of the test plan
NameTypeReqDescription
id–––
name–––
url–––

No examples provided.

upload_test_results ~131

Upload external test results to an existing launch.

NameTypeReqDescription
launch_idintegeryesLaunch ID to receive the results (required).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
resultsarrayyesResult 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…
NameTypeReqDescription
failures–––
launch_id–––
requested_count–––
result_ids–––
uploaded_count–––

No examples provided.

Install

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

# add to Claude Code
claude mcp add ivanostanin-lucius-mcp -- uvx lucius-mcp
Common questions

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 70 tools: create_test_case, get_test_case_details, update_test_case, delete_test_case, delete_archived_test_cases, and 65 more. Their descriptions and schemas cost roughly 9,162 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 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Lucius MCP server under?

Lucius MCP declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.