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 (2 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
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 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 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
add_test_result_attachment ~124

Upload evidence to a manual test result. The returned attachment_ids can be used as attachment_id values in submit_manual_test_results. Result-level evidence can also be uploaded after a manual result has been resolved.

NameTypeReqDescription
attachmentobjectyesAttachment payload using the repo-standard pattern: {name, content_type, content? | url?}.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
test_result_idintegeryesManual test result ID (required).
NameTypeReqDescription
attachment_ids–––
file_names–––
status_code–––
target_id–––
target_kind–––

No examples provided.

assign_test_cases_to_suite ~123

Assign test cases to a suite path in hierarchy. ⚠️ CAUTION: Destructive. Reassigning test cases changes their hierarchy location.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
project_id––Allure TestOps project ID.
suite_idintegeryesTarget suite/group node ID for assignment.
test_case_idsarrayyesList of test case IDs to assign to the suite.
tree_id––Target hierarchy tree ID. If omitted, default project tree is used.
NameTypeReqDescription
assigned_count–––
suite_id–––
test_case_ids–––
tree_id–––

No examples provided.

attach_file_to_launch ~208

Attach one file to an existing launch through a secure push or pull transfer. Push is available only from a persistent HTTP MCP server with an externally reachable HTTPS URL. It returns a short-lived one-use raw upload URL; POST bytes with exactly the returned content type and no TestOps bearer token. Pull reads a regular file below the deployment's configured import root.

NameTypeReqDescription
content_type––Required for push; optional for pull and inferred from the filename when absent.
launch_idintegeryesExisting launch ID that will receive the file.
namestringyesSafe display filename for the launch attachment.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
source_path––Required only for pull; relative paths resolve below LAUNCH_ATTACHMENT_IMPORT_ROOT.
transfer_modestring–push returns a one-use HTTPS upload URL; pull reads from the configured import root.
NameTypeReqDescription
attachment–––
content_type–––
expires_at–––
launch_idintegeryes–
max_file_bytes–––
namestringyes–
statestringyes–
upload_method–––
upload_url–––

No examples provided.

close_launch ~71

Close 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.

create_custom_field_value ~100

Create a new custom field value option.

NameTypeReqDescription
custom_field_id––Project-scoped custom field ID to create a value for.
custom_field_name––Custom field name to resolve when custom_field_id is not provided.
namestringyesName for the new custom field value.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
NameTypeReqDescription
custom_field_id–––
custom_field_name–––
id–––
name–––

No examples provided.

create_defect ~83

Create a new defect in the current project. Use this tool to register a known defect that can later be linked to failing test results through defect matchers (automation rules).

NameTypeReqDescription
description––Optional markdown description
namestringyesName / title of the defect
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
description–––
id–––
name–––
url–––

No examples provided.

create_defect_matcher ~137

Create a defect matcher (automation rule) for a defect. Matchers automatically link future failing test results to a defect when the test failure's error message or stack trace matches the provided regex patterns. At least one of ``message_regex`` or ``trace_regex`` must be supplied.

NameTypeReqDescription
defect_idintegeryesID of the parent defect
message_regex––Regex to match against error messages
namestringyesHuman-readable matcher rule name
output_format––Output format: 'json' (default) or 'plain'.
trace_regex––Regex to match against stack traces
NameTypeReqDescription
defect_id–––
id–––
message_regex–––
name–––
trace_regex–––

No examples provided.

create_launch ~117

Create a new launch in Allure TestOps.

NameTypeReqDescription
autoclose––Whether the launch auto-closes.
external––Whether the launch is external.
issues––Optional list of issue dictionaries.
links––Optional list of external links (name, url, type).
namestringyesLaunch name (required).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
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–––
project_id–––
url–––

No examples provided.

create_shared_step ~159

Create a new reusable Shared Step.

NameTypeReqDescription
namestringyesThe name of the shared step (e.g., "Login as Admin").
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
steps––Optional list of steps. Each step is a dictionary with: - action (str): The step description (e.g., "Enter username"). - expected (str, optional): The expected result. - attachments (list[dict], opti…
NameTypeReqDescription
id–––
name–––
project_id–––
url–––

No examples provided.

create_test_case ~370

Create a new test case in Allure TestOps.

NameTypeReqDescription
attachments––List of attachments.Example Base64: [{'name': 's.png', 'content': '<base64>', 'content_type': 'image/png'}]Example URL: [{'name': 'report.pdf', 'url': 'http://example.com/report.pdf', 'content_type':…
custom_fields––Dictionary of custom field names and their values (string or list of strings).Example: {'Layer': 'UI', 'Components': ['Auth', 'DB']}
description––A markdown description of the test case.
integration_id––Optional integration ID for issue linking (use list_integrations to find IDs). Required when multiple integrations exist. Mutually exclusive with integration_name.
integration_name––Optional integration name for issue linking (exact case-sensitive match). Required when multiple integrations exist. Mutually exclusive with integration_id.
issues––Optional list of issue keys to link (e.g., ['PROJ-123']).
namestringyesThe name of the test case.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
steps––List of steps. Each step must be a dict with 'action' and 'expected' keys. Example: [{'action': 'Login', 'expected': 'Dashboard visible'}]
tags––List of tag names.
test_layer_id––Optional test layer ID to assign (use list_test_layers to find IDs). If provided, the layer must exist in the project.
test_layer_name––Optional test layer name to assign (exact case-sensitive match). Mutually exclusive with test_layer_id.
NameTypeReqDescription
id–––
issues–––
name–––
url–––

No examples provided.

create_test_layer ~115

Create a new test layer in Allure TestOps. Test layers define taxonomy for categorizing test cases. Common examples include 'Unit', 'Integration', 'E2E', 'UI', 'API', etc.

NameTypeReqDescription
namestringyesName of the test layer (e.g., 'Unit', 'Integration', 'E2E').
output_format––Output format: 'json' (default) or 'plain'.
project_id––Allure TestOps project ID to create the test layer in.
NameTypeReqDescription
id–––
name–––

No examples provided.

create_test_layer_schema ~142

Create a new test layer schema to map a custom field key to a test layer. Test layer schemas define the mapping between custom field keys and test layers. This allows test cases with specific custom field values to be automatically assigned to the correct test layer.

NameTypeReqDescription
keystringyesThe schema key (e.g., custom field name like 'layer' or 'test_layer').
output_format––Output format: 'json' (default) or 'plain'.
project_idintegeryesAllure TestOps project ID to create the schema in.
test_layer_idintegeryesID of the test layer to link to this schema.
NameTypeReqDescription
id–––
key–––
test_layer_id–––
test_layer_name–––

No examples provided.

create_test_plan ~152

Create a new Test Plan in Allure TestOps. This tool allows creating a Test Plan, which is a collection of Test Cases to be executed. You can define the content of the plan either by: 1. Explicitly listing Test Case IDs (`test_case_ids`). 2. Providing an AQL (Allure Query Language) filter (`aql_filter`). 3. Both (explicit selection + dynamic filter).

NameTypeReqDescription
aql_filter––AQL query to select test cases
namestringyesName of the test plan
output_format––Output format: 'json' (default) or 'plain'.
test_case_ids––List of Test Case IDs to include
NameTypeReqDescription
aql_filter–––
id–––
name–––
test_case_ids–––
test_case_urls–––
url–––

No examples provided.

create_test_suite ~98

Create a new test suite node in the hierarchy tree.

NameTypeReqDescription
namestringyesSuite name to create in hierarchy.
output_format––Output format: 'json' (default) or 'plain'.
parent_suite_id––Parent suite/group node ID for nested suite creation.
project_id––Allure TestOps project ID.
tree_id––Target hierarchy tree ID. If omitted, default project tree is used.
NameTypeReqDescription
id–––
name–––
parent_suite_id–––
tree_id–––

No examples provided.

delete_archived_shared_steps ~69

Permanently delete all archived shared steps in the current project.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional Allure TestOps project ID override.
NameTypeReqDescription
action––Requested operation name.
deleted_count–––
requires_confirmation–––

No examples provided.

delete_archived_test_cases ~71

Permanently delete all archived/deleted test cases in the current project.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional Allure TestOps project ID override.
NameTypeReqDescription
action––Requested operation name.
deleted_count–––
requires_confirmation–––

No examples provided.

delete_custom_field_value ~130

Delete a custom field value. ⚠️ CAUTION: Destructive.

NameTypeReqDescription
cfv_idintegeryesCustom field value ID to delete.
confirmboolean–Must be set to True to proceed with deletion. 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.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
NameTypeReqDescription
action––Requested operation name.
cfv_id–––
id–––
requires_confirmation–––
status–––

No examples provided.

delete_defect ~96

Permanently delete a defect and all its associated matchers. This is a destructive operation. The ``confirm`` parameter must be set to ``true`` to actually perform the deletion.

NameTypeReqDescription
confirmboolean–Safety flag — must be set to true to confirm deletion
defect_idintegeryesID of the defect to delete
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
defect_id–––
id–––
status–––

No examples provided.

delete_defect_matcher ~96

Permanently delete a defect matcher (automation rule). This is a destructive operation. The ``confirm`` parameter must be set to ``true`` to actually perform the deletion.

NameTypeReqDescription
confirmboolean–Safety flag — must be set to true to confirm deletion
matcher_idintegeryesID of the matcher to delete
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
id–––
matcher_id–––
status–––

No examples provided.

delete_launch ~68

Delete a launch by ID. ⚠️ CAUTION: Destructive.

NameTypeReqDescription
launch_idintegeryesLaunch ID to delete (required).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
NameTypeReqDescription
launch_id–––
message–––
status–––

No examples provided.

delete_shared_step ~113

Delete a shared step from the library. ⚠️ CAUTION: Destructive. ⚠️ CAUTION: If this shared step is used by test cases, deleting it will break those references.

NameTypeReqDescription
confirmboolean–Must be True to proceed (safety measure).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
step_idintegeryesThe shared step ID to delete (required).
NameTypeReqDescription
action––Requested operation name.
id–––
requires_confirmation–––
status–––
step_id–––
url–––

No examples provided.

delete_test_case ~142

Archive an obsolete test case. ⚠️ CAUTION: Destructive. This performs a SOFT DELETE (archive). The test case can typically be recovered from the Allure UI if needed. ⚠️ CAUTION: This action removes the test case from active views. Historical data and launch associations may be affected.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed with deletion. Safety measure.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional Allure TestOps project ID override.
test_case_idintegeryesThe Allure test case ID to archive.
NameTypeReqDescription
action––Requested operation name.
error–––
name–––
requires_confirmation–––
status–––
test_case_id–––
url–––

No examples provided.

delete_test_layer ~92

Delete a test layer from Allure TestOps. ⚠️ CAUTION: Destructive.

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

No examples provided.

delete_test_layer_schema ~93

Delete a test layer schema from the project. ⚠️ CAUTION: Destructive.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed with deletion. Safety measure.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Allure TestOps project ID.
schema_idintegeryesID of the test layer schema to delete.
NameTypeReqDescription
action––Requested operation name.
id–––
requires_confirmation–––
schema_id–––
status–––

No examples provided.

delete_test_plan ~106

Delete a Test Plan. ⚠️ CAUTION: Destructive. Permanently removes the Test Plan from Allure TestOps. The operation is idempotent: if the plan does not exist, it returns success.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed with deletion. Safety measure.
output_format––Output format: 'json' (default) or 'plain'.
plan_idintegeryesID of the test plan to delete
NameTypeReqDescription
action––Requested operation name.
plan_id–––
requires_confirmation–––
status–––

No examples provided.

delete_test_suite ~140

Delete a test suite node from hierarchy. ⚠️ CAUTION: Destructive. This operation removes a hierarchy suite/group node. Allure TestOps handles nested entities according to its API behavior for tree groups.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed with deletion. Safety measure.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional Allure TestOps project ID override.
suite_idintegeryesSuite/group node ID to delete from hierarchy.
tree_id––Optional hierarchy tree ID. Use when the suite belongs to a non-default tree.
NameTypeReqDescription
action––Requested operation name.
requires_confirmation–––
status–––
suite_id–––

No examples provided.

delete_unused_custom_fields ~71

Delete custom fields that are unused by any test case in the current project.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional Allure TestOps project ID override.
NameTypeReqDescription
action––Requested operation name.
deleted_count–––
requires_confirmation–––

No examples provided.

generate_test_code ~225

Generate a current, framework-specific test snippet from a TestOps test case. Both target selections are required. The tool validates verified TestOps language/framework compatibility locally and synchronizes only requested test-case metadata before generation.

NameTypeReqDescription
frameworkstringyesRequired framework compatible with language. TypeScript choices: CodeceptJS, Cucumber, Jasmine, Jest, Mocha, Playwright, Vitest, WebdriverIO, ZeroStep. Compatibility is language-specific.
languagestringyesRequired target language. Choose Java, Python, TypeScript, JavaScript, Kotlin, PHP, or .NET. Backward-compatible aliases: java, python, ts, js, and dotnet.
metadata––Optional metadata to synchronize: Name, Tags, Custom fields, Members, Issues, Scenario. Omit for Name, Tags, Custom fields, Scenario; use [] to disable all.
output_format––Output format: 'json' (default) or 'plain'.
test_case_idintegeryesID of the TestOps test case to generate code for.
NameTypeReqDescription
code––Generated source-code snippet.
framework––Requested target testing framework.
language––Requested target programming language.
metadata––Canonical test-case metadata selections included in generated code.
test_case_id–––

No examples provided.

get_custom_fields ~130

Get available custom fields and their allowed values for the project. Use this tool to discover what custom fields are available (e.g., 'Layer', 'Priority') and what values are valid for them (e.g., 'UI', 'High'). This is essential before creating or updating test cases to ensure you use valid field names and values.

NameTypeReqDescription
name––Optional case-insensitive name filter to search for specific custom fields.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Allure TestOps project ID to fetch custom fields from.
NameTypeReqDescription
filter_name–––
items––Entity-specific collection entries.
total–––

No examples provided.

get_defect ~49

Retrieve detailed information about a specific defect.

NameTypeReqDescription
defect_idintegeryesID of the defect to retrieve
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
closed–––
description–––
id–––
name–––
status–––
url–––

No examples provided.

get_launch ~101

Retrieve a specific launch and summarize its details.

NameTypeReqDescription
include_execution_resultsboolean–Opt in to complete compact execution results, project trees, and snapshot diagnostics.
launch_idintegeryesLaunch ID (required).
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
tree_id––Optional project tree ID to expand; requires include_execution_results=true.
NameTypeReqDescription
assignees–––
autoclose–––
closed–––
core_test_result_index–––
created_by–––
created_date–––
defects–––
duration–––
environment–––
execution_snapshot–––
external–––
flat_test_results––Compact rows; each row id is the Test Result ID for get_test_result.
id–––
issues–––
jobs–––
known_defects_count–––
last_modified_by–––
last_modified_date–––
links–––
manual_execution_guidance–––
member_stats–––
muted_results–––
name–––
new_defects_count–––
partial–––
progress–––
project_id–––
result_defect_tree–––
result_timeline–––
retries–––
statistic–––
tags–––
testers–––
trees–––
unavailable_sections–––
unresolved_results–––
url–––
variables–––

No examples provided.

get_project ~102

Retrieve one project by name or list accessible projects. Name matching is case-insensitive. An exact match is preferred; an unambiguous partial match is accepted. Omit ``name`` to discover the available project IDs and names before making project-scoped calls.

NameTypeReqDescription
name––Project name to resolve. Omit it to list all projects available to the authenticated user.
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
abbr––Project abbreviation.
description–––
id–––
is_public––Whether the project is publicly visible.
items––Entity-specific collection entries.
name–––
total–––

No examples provided.

get_test_case_custom_fields ~72

Retrieve custom field values for a specific test case.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional override for the default Project ID.
test_case_idintegeryesThe ID of the test case to retrieve custom fields for
NameTypeReqDescription
custom_fields––Custom-field values as named entries or a value map.
test_case_id–––

No examples provided.

get_test_case_details ~137

Get complete details of a specific test case. Retrieves all information about a test case including its steps, tags, custom fields, and attachments. For each attachment, call prepare_attachment_download with its attachment_id, attachment_kind, and test_case_id, then HTTP GET the returned Lucius URL. Use this before updating a test case to understand its current state.

NameTypeReqDescription
output_format––Output format: 'json' (default) or 'plain'.
project_id––Allure TestOps project ID to list test cases from.
test_case_idintegeryesID of the test case to retrieve.
NameTypeReqDescription
attachments–––
custom_fields–––
description–––
id–––
name–––
precondition–––
status–––
steps–––
tags–––
url–––

No examples provided.

get_test_result ~122

Retrieve one complete TestOps result without recursively reading related results. Attachment references identify their verified owner. Call prepare_attachment_download with an attachment's attachment_id, attachment_kind, and owner context, then HTTP GET the returned Lucius URL before it expires.

NameTypeReqDescription
output_format––Output format: 'json' (default) or plain agent-readable detail.
project_id––Optional override for the default Project ID.
test_result_idintegeryesExact Test Result ID from the /tree/{test_result_id} URL path; ignore treeId query state.
NameTypeReqDescription
actual_launch_id–––
core–––
custom_fields–––
defects–––
environment–––
execution_steps–––
fixtures–––
issues–––
launch_url–––
members–––
partial–––
project_id–––
related_results–––
result_attachments–––
result_url–––
test_case–––
test_keys–––
test_result_id–––
unavailable_sections–––

No examples provided.

get_test_suite_contents ~129

Get test cases directly assigned to one test suite. This is a targeted hierarchy read. It does not enumerate unrelated suites or recursively traverse the project tree.

NameTypeReqDescription
expected_suite_name––Optional exact suite name used to confirm the target before reading its contents.
output_format––Output format: 'json' (default) or 'plain'.
project_id––Optional Allure TestOps project ID override.
suite_idintegeryesSuite/group node ID to inspect in hierarchy.
tree_id––Optional hierarchy tree ID. If omitted, the default project tree is used.
NameTypeReqDescription
assigned_count–––
suite_id–––
test_case_ids–––
tree_id–––

No examples provided.

link_defect_to_test_case ~168

Link a defect to a test case through a shared issue mapping. This operation ensures defect governance and test coverage are connected: the issue is linked to the defect and to the specified test case.

NameTypeReqDescription
defect_idintegeryesID of the defect to link
integration_id––Optional integration ID for issue mapping. Mutually exclusive with integration_name.
integration_name––Optional integration name for issue mapping. Mutually exclusive with integration_id.
issue_key––Issue key to use for linking (for example, PROJ-123). If omitted, the defect's existing issue mapping is reused.
output_format––Output format: 'json' (default) or 'plain'.
test_case_idintegeryesID of the test case to link
NameTypeReqDescription
already_linked–––
defect_id–––
defect_url–––
integration_id–––
issue_key–––
test_case_id–––
test_case_url–––

No examples provided.

link_shared_step ~185

Link a shared step to a test case. ⚠️ CAUTION: Destructive. Adds a reference to the shared step in the test case's step list. The shared step's actions will expand at execution time.

NameTypeReqDescription
confirmboolean–Must be set to True to proceed with linking. Safety measure.
output_format––Output format: 'json' (default) or 'plain'.
position––Where to insert the shared step (0-indexed, optional). 0 = Insert at beginning None = Append to end (default) N = Insert after step N (so it becomes the (N+1)th step)
project_id––Optional override for the default Project ID.
shared_step_idintegeryesThe ID of shared step to link.
test_case_idintegeryesThe ID of 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.

list_custom_field_values ~165

List available values for a custom field.

NameTypeReqDescription
custom_field_id––Project-scoped custom field ID to list values for.
custom_field_name––Custom field name to resolve when custom_field_id is not provided.
output_format––Output format: 'json' (default) or 'plain'.
page––Zero-based page index.
project_id––Optional override for the default Project ID.
query––Optional search query to filter values.
size––Number of items per page.
sort––Optional sort criteria, e.g. ['name,asc', 'id,desc']
test_case_search––Optional test case search filter to match values in test cases.
var_global––Optional filter for global values.
NameTypeReqDescription
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

No examples provided.

list_defect_matchers ~55

List all matchers (automation rules) for a given defect.

NameTypeReqDescription
defect_idintegeryesID of the parent defect
output_format––Output format: 'json' (default) or 'plain'.
NameTypeReqDescription
defect_id–––
items–––
page–––
size–––
total–––
total_pages–––

No examples provided.

list_defect_test_cases ~81

List test cases currently linked to a defect.

NameTypeReqDescription
defect_idintegeryesID of the defect whose linked test cases should be listed
output_format––Output format: 'json' (default) or 'plain'.
pageinteger–Zero-based page index
sizeinteger–Page size (1..100)
NameTypeReqDescription
defect_id–––
defect_url–––
items––Entity-specific collection entries.
page–––
size–––
total–––
total_pages–––

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.