lucius-mcp 0.2.2__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. lucius_mcp-0.4.0.dist-info/METADATA +124 -0
  2. {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/RECORD +53 -25
  3. src/client/__init__.py +16 -0
  4. src/client/client.py +559 -14
  5. src/client/exceptions.py +23 -0
  6. src/client/generated/README.md +29 -0
  7. src/client/generated/__init__.py +6 -0
  8. src/client/generated/api/__init__.py +3 -0
  9. src/client/generated/api/integration_controller_api.py +5285 -0
  10. src/client/generated/api/test_layer_controller_api.py +1746 -0
  11. src/client/generated/api/test_layer_schema_controller_api.py +1415 -0
  12. src/client/generated/docs/IntegrationControllerApi.md +1224 -0
  13. src/client/generated/docs/TestLayerControllerApi.md +407 -0
  14. src/client/generated/docs/TestLayerSchemaControllerApi.md +350 -0
  15. src/client/overridden/test_case_custom_fields_v2.py +254 -0
  16. src/services/__init__.py +16 -0
  17. src/services/custom_field_value_service.py +301 -0
  18. src/services/integration_service.py +205 -0
  19. src/services/launch_service.py +306 -0
  20. src/services/search_service.py +1 -1
  21. src/services/shared_step_service.py +34 -17
  22. src/services/test_case_service.py +769 -117
  23. src/services/test_layer_service.py +427 -0
  24. src/tools/__init__.py +53 -0
  25. src/tools/create_custom_field_value.py +38 -0
  26. src/tools/create_test_case.py +68 -19
  27. src/tools/create_test_layer.py +33 -0
  28. src/tools/create_test_layer_schema.py +39 -0
  29. src/tools/delete_custom_field_value.py +57 -0
  30. src/tools/delete_test_case.py +5 -4
  31. src/tools/delete_test_layer.py +44 -0
  32. src/tools/delete_test_layer_schema.py +44 -0
  33. src/tools/get_custom_fields.py +2 -1
  34. src/tools/get_test_case_custom_fields.py +34 -0
  35. src/tools/launches.py +198 -0
  36. src/tools/link_shared_step.py +18 -12
  37. src/tools/list_custom_field_values.py +72 -0
  38. src/tools/list_integrations.py +77 -0
  39. src/tools/list_test_layer_schemas.py +43 -0
  40. src/tools/list_test_layers.py +38 -0
  41. src/tools/search.py +9 -6
  42. src/tools/shared_steps.py +23 -8
  43. src/tools/test_layers.py +21 -0
  44. src/tools/unlink_shared_step.py +19 -5
  45. src/tools/update_custom_field_value.py +55 -0
  46. src/tools/update_test_case.py +113 -23
  47. src/tools/update_test_layer.py +44 -0
  48. src/tools/update_test_layer_schema.py +51 -0
  49. src/utils/__init__.py +4 -0
  50. src/utils/links.py +13 -0
  51. lucius_mcp-0.2.2.dist-info/METADATA +0 -290
  52. {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/WHEEL +0 -0
  53. {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/entry_points.txt +0 -0
  54. {lucius_mcp-0.2.2.dist-info → lucius_mcp-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,124 @@
1
+ Metadata-Version: 2.4
2
+ Name: lucius-mcp
3
+ Version: 0.4.0
4
+ Summary: Allure TestOps MCP Server
5
+ Project-URL: Homepage, https://github.com/ivanostanin/lucius-mcp
6
+ Project-URL: Documentation, https://github.com/ivanostanin/lucius-mcp#readme
7
+ Project-URL: Repository, https://github.com/ivanostanin/lucius-mcp.git
8
+ Project-URL: Issues, https://github.com/ivanostanin/lucius-mcp/issues
9
+ Project-URL: Changelog, https://github.com/ivanostanin/lucius-mcp/blob/main/CHANGELOG.md
10
+ Project-URL: Releases, https://github.com/ivanostanin/lucius-mcp/releases
11
+ Author-email: Ivan Ostanin <ivan@ostanin.me>
12
+ License-Expression: Apache-2.0
13
+ License-File: LICENSE
14
+ Keywords: allure,allure-testops,fastmcp,mcp,mcp-server,model-context-protocol,testops
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Environment :: Console
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Natural Language :: English
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Topic :: Software Development
23
+ Classifier: Topic :: Software Development :: Quality Assurance
24
+ Classifier: Topic :: Software Development :: Testing
25
+ Classifier: Topic :: Utilities
26
+ Classifier: Typing :: Typed
27
+ Requires-Python: >=3.14
28
+ Requires-Dist: fastmcp>=2.14.4
29
+ Requires-Dist: httpx>=0.28.1
30
+ Requires-Dist: pydantic-settings>=2.12.0
31
+ Requires-Dist: pydantic>=2.12.5
32
+ Requires-Dist: python-dateutil>=2.9.0.post0
33
+ Requires-Dist: python-json-logger>=2.0.7
34
+ Requires-Dist: rich>=13.7.0
35
+ Requires-Dist: starlette==0.52.1
36
+ Requires-Dist: uvicorn>=0.40.0
37
+ Requires-Dist: wsproto>=1.3.2
38
+ Provides-Extra: dev
39
+ Requires-Dist: allure-pytest>=2.15.3; extra == 'dev'
40
+ Requires-Dist: faker>=40.1.2; extra == 'dev'
41
+ Requires-Dist: mypy>=1.19.1; extra == 'dev'
42
+ Requires-Dist: openapi-generator-cli>=7.19.0; extra == 'dev'
43
+ Requires-Dist: pre-commit>=4.0.0; extra == 'dev'
44
+ Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
45
+ Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
46
+ Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
47
+ Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
48
+ Requires-Dist: pytest>=9.0.2; extra == 'dev'
49
+ Requires-Dist: respx>=0.22.0; extra == 'dev'
50
+ Requires-Dist: ruff>=0.14.14; extra == 'dev'
51
+ Requires-Dist: twine>=6.2.0; extra == 'dev'
52
+ Description-Content-Type: text/markdown
53
+
54
+ # Lucius MCP Server
55
+
56
+ A specialized Model Context Protocol (MCP) server for Allure TestOps, built with `FastMCP` and `Starlette`.
57
+
58
+ ## 🎯 Motivation
59
+
60
+ Allure TestOps is a powerful tool with a huge API. When you're using an AI agent to manage your tests, it can easily get
61
+ lost in the details or fail because of a small technical mistake.
62
+
63
+ Lucius makes this easier by giving your AI tools that are simple to use and hard to break:
64
+
65
+ - **Clear Tools**: Every tool is designed for a specific task, like "finding a test case" or "updating a launch".
66
+ - **Helpful Errors**: If an AI makes a mistake, Lucius doesn't just return a code—it provides an "Agent Hint" that
67
+ explains exactly what went wrong and how to fix it.
68
+ - **Solid Foundation**: We follow a clean "Thin Tool" structure, meaning the logic is consistent and easy for both
69
+ humans and AI to follow.
70
+
71
+ ## 🛠️ Supported Tools
72
+
73
+ | Tool Category | Description | All Tools |
74
+ |:-----------------------|:-------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
75
+ | **Test Case Mgmt** | Full lifecycle for test documentation. | `create_test_case`, `update_test_case`, `delete_test_case`, `get_test_case_details`, `list_test_cases`, `get_test_case_custom_fields` |
76
+ | **Search & Discovery** | Advanced search and project metadata discovery. | `search_test_cases`, `get_custom_fields`, `list_integrations` |
77
+ | **Shared Steps** | Create and manage reusable sequence sequences. | `create_shared_step`, `list_shared_steps`, `update_shared_step`, `delete_shared_step`, `link_shared_step`, `unlink_shared_step` |
78
+ | **Test Layers** | Manage test taxonomy and auto-mapping schemas. | `list_test_layers`, `create_test_layer`, `update_test_layer`, `delete_test_layer`, `list_test_layer_schemas`, `create_test_layer_schema`, `update_test_layer_schema`, `delete_test_layer_schema` |
79
+ | **Custom Fields** | Project-level management of custom field values. | `list_custom_field_values`, `create_custom_field_value`, `update_custom_field_value`, `delete_custom_field_value` |
80
+ | **Launch Mgmt** | Execution tracking and launch statistics. | `create_launch`, `get_launch`, `list_launches` |
81
+
82
+ ## 🚀 Quick Start
83
+
84
+ 1. **Install uv**: `curl -LsSf https://astral.sh/uv/install.sh | sh`
85
+ 2. **Setup Credentials**: Create a `.env` file with `ALLURE_ENDPOINT`, `ALLURE_PROJECT_ID`, and `ALLURE_API_TOKEN`.
86
+ 3. **Run Server**: `uv run start`
87
+
88
+ ### 🔌 Claude Desktop Integration
89
+
90
+ The easiest way to use Lucius in Claude Desktop is via the `.mcpb` bundle:
91
+
92
+ 1. Download the latest `lucius-mcp.mcpb` from Releases.
93
+ 2. Open with Claude Desktop.
94
+ 3. Configure your Allure credentials in the UI.
95
+
96
+ ### 💻 Claude Code Integration
97
+
98
+ To add Lucius to Claude Code, use the following command from within your project directory:
99
+
100
+ ```bash
101
+ claude mcp add testops-mcp --transport stdio \
102
+ --env ALLURE_ENDPOINT=https://example.testops.cloud\
103
+ --env ALLURE_PROJECT_ID=123 \
104
+ --env ALLURE_API_TOKEN=your_token \
105
+ --env MCP_MODE=stdio \
106
+ -- uvx --from lucius-mcp --refresh start
107
+ ```
108
+
109
+ For detailed setup, including Claude Desktop (MCPB) integration, see [Setup Guide](docs/setup.md).
110
+
111
+ ## 📂 Documentation
112
+
113
+ Full documentation is available in the [docs/](docs/index.md) folder:
114
+
115
+ - [Architecture & Design](docs/architecture.md)
116
+ - [Tool Reference](docs/tools.md)
117
+ - [Configuration & Setup](docs/setup.md)
118
+ - [Development Guide](docs/development.md)
119
+ - [AI Agent Protocol](docs/agent-documentation-protocol.md)
120
+
121
+ ## 🤝 Contributing
122
+
123
+ Contributions are welcome! Please see the [Contribution Guidelines](CONTRIBUTING.md) and
124
+ the [Development Guide](docs/development.md) for more details.
@@ -1,23 +1,24 @@
1
1
  src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  src/main.py,sha256=JPT9QfOVOj5BGGVJtq6megXZqibTIHRV3zY38jQeI5g,2580
3
3
  src/version.py,sha256=ZAzHiNwu2X1UtwUkcHNmKrXBwRJeVvXbpdfi7wtv3DY,76
4
- src/client/__init__.py,sha256=L0qijQKzYI4ONrhKHv13ET2-Z12HcbgDKN6gHJ7gAVU,1410
5
- src/client/client.py,sha256=P94kg3Q0NzK2gDpSKlYxxC4QRo004k3kygVYmJaq0JU,51420
6
- src/client/exceptions.py,sha256=2iGpxxeiIkptvhptGFoqABI0cOLhGpIWX6c-I9Qc0yM,1498
7
- src/client/generated/README.md,sha256=u4zJ5sHRWRgZhAqtNYQGj8r8aRlMfeOJa61dA0bXwiY,85836
8
- src/client/generated/__init__.py,sha256=UM-tfbMX_J3GFEtxZlxdxsnpj8mPHPJ1Dj-T-bi9vDE,98122
4
+ src/client/__init__.py,sha256=G0G2BKEw93Wd6VveUQRtYxxjLyPnQgDn2K_1heOYBEo,1786
5
+ src/client/client.py,sha256=sgUsVVD064ujN3g27OslmvODZAGjYHSEKL8LY_729T0,72732
6
+ src/client/exceptions.py,sha256=Rl6RcuhpJoxYn1sTedseKolQfngiGCF1T6-araQUyhw,2177
7
+ src/client/generated/README.md,sha256=V_gkgGSNGOUBQPbvjFQvaNphH9gmfX2l2vmjkeQ3GC4,90765
8
+ src/client/generated/__init__.py,sha256=LUKu_SITT_ZTRonW4mxLg_HzMls3xHT7CSCEkQfH6-0,98580
9
9
  src/client/generated/api_client.py,sha256=0m1Ax05egObKEi4V-APnDamj0FZVE5Z4isSu8QPIP8Y,27910
10
10
  src/client/generated/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
11
11
  src/client/generated/configuration.py,sha256=nJvRx1KvWIkb7B0u-PSKRtwmm8JTFPgBz1CpKlp5Gno,17823
12
12
  src/client/generated/exceptions.py,sha256=ZpDRfPSo4xseVbDop1tZQhxJrUweRUcuCHI-pociYmg,6516
13
13
  src/client/generated/rest.py,sha256=U6oxD5gY8dkbGrByetRZRb8UVU7IuFldQULHDM5xrF4,6470
14
- src/client/generated/api/__init__.py,sha256=1K0GST-qYJevppRL2VRBcmLcRA1q4pXOLseyEi6BtkY,2086
14
+ src/client/generated/api/__init__.py,sha256=Id_y-UTcdmpMoxK9Qdx4VuBYmnd6p2qadQxiARQzedw,2360
15
15
  src/client/generated/api/custom_field_controller_api.py,sha256=Cu5yPnHHR8DH3MjY1bVF3W2QkhWQsKqSWg75rMo7BpQ,99963
16
16
  src/client/generated/api/custom_field_project_controller_api.py,sha256=itwkdD7cLKOIx2h4k_77lItQyETzhWtiqvjSoKfOpzE,90527
17
17
  src/client/generated/api/custom_field_project_controller_v2_api.py,sha256=iXJtWSwq87b_QOU9WB8srvZijqr9tSOfGGuNhlh2Adc,25852
18
18
  src/client/generated/api/custom_field_schema_controller_api.py,sha256=owULmpUNYCMGVLJKv_3m6fHwCc4J55Cep0TSXgHwfok,65843
19
19
  src/client/generated/api/custom_field_value_controller_api.py,sha256=VGCT9QAlYUB137PbSw1Qi--mtJFLkxKvCU1_UY4x6ZI,122414
20
20
  src/client/generated/api/custom_field_value_project_controller_api.py,sha256=Re_IpphBdpMFky0I81E2mGSzatsUl4wmk4CtN873cd4,73080
21
+ src/client/generated/api/integration_controller_api.py,sha256=8jsSppAyrgSxo2XAa6iVu9WK9bQGEJY7EONrpkdVn2g,207858
21
22
  src/client/generated/api/launch_controller_api.py,sha256=UwUVvnDMl7WKeGffa2aWJy93V6tiNeyLm5lX0maVPlA,320808
22
23
  src/client/generated/api/launch_search_controller_api.py,sha256=b1k3YJrwJYknRpfAVv3ZNTWcObJrfzobjWjt3J1Y7vc,24638
23
24
  src/client/generated/api/project_controller_api.py,sha256=ykBhUwbv5oRJKx0BpP-FgR_CPU01rckJAMs2eej43h0,113644
@@ -33,6 +34,8 @@ src/client/generated/api/test_case_overview_controller_api.py,sha256=amyz7cRN5bJ
33
34
  src/client/generated/api/test_case_scenario_controller_api.py,sha256=ajdjmwRtB5dkb7ya2VZXnp9l5Hw-PpZFNK4WnHKBcaE,115728
34
35
  src/client/generated/api/test_case_search_controller_api.py,sha256=_qOZCmAd_esdDvAS_NHxICF0H-PZZXp2oRDEhi8ehVQ,25705
35
36
  src/client/generated/api/test_case_tag_controller_api.py,sha256=UEpnjq7pEzEbD8mVAKCrKiE6mJFTidkVeQuBNc_PhaU,21661
37
+ src/client/generated/api/test_layer_controller_api.py,sha256=6ZDK_WSbhGy45QwepnvQaiNIAh55DtvpDEYpG1iMbLY,66919
38
+ src/client/generated/api/test_layer_schema_controller_api.py,sha256=Jvf_dr2KDznDMyackmUXwJGf6ecYL93ftMdlEGAslrE,54561
36
39
  src/client/generated/docs/AccessGroupBulkDto.md,sha256=Vu4AJSBP-_PFXF0j9Zmz4AMGbxCJuc2iQyYDK_nt8KA,989
37
40
  src/client/generated/docs/AccessGroupCreateDto.md,sha256=HJKwQNlyaP2uFb6E3AAXC4_WTt1sH0yW0FnRlNJAcTI,1147
38
41
  src/client/generated/docs/AccessGroupDto.md,sha256=icYh1HU2B1u3Z0z-yGq4F9LCzSDiokIJPJGs1ijOaF8,1107
@@ -213,6 +216,7 @@ src/client/generated/docs/ImportRequestDto.md,sha256=mB2FCmufT6YS6prvLvMet6i6PSt
213
216
  src/client/generated/docs/ImportRequestInfoDto.md,sha256=Ta82s9wUQCLyhJVblQxWuwWV4GChyHoWoCjGlXlzTTA,1175
214
217
  src/client/generated/docs/ImportRequestStateDto.md,sha256=ipWzEfB_VakOw72kMGaY-H9uiSSa9DSq-5IjOnz_TGQ,339
215
218
  src/client/generated/docs/ImportRequestTypeDto.md,sha256=ay7oEl41tbrrLGNuQbqETr6qxfrWQCjj8bn6M8by_3g,244
219
+ src/client/generated/docs/IntegrationControllerApi.md,sha256=mSt0rgkSBoKA00SA2UPybphETXlyFS1dQjlJkMH00bM,42211
216
220
  src/client/generated/docs/IntegrationCreateDto.md,sha256=gxAsZdjJjTjEAb-b03n4cb-acWHewBIosBpPKebTor0,1235
217
221
  src/client/generated/docs/IntegrationDto.md,sha256=lIHYlAuccGDTwvz4DLtRFLiQmid8-9b_OICzC_ly8hQ,1145
218
222
  src/client/generated/docs/IntegrationExportCreateDto.md,sha256=Mr9u5uJ6Qam7D93KKNAp8nWgPDWtS_090vJbWsX9qNY,1498
@@ -601,9 +605,11 @@ src/client/generated/docs/TestKeyImportFieldMapping.md,sha256=iqAckrgvUtOkzWW62r
601
605
  src/client/generated/docs/TestKeySchemaCreateDto.md,sha256=CEl3pbSdmaaCN-UeNr4Hbk6NBgP3cuQXxkqhpxuNWGU,1071
602
606
  src/client/generated/docs/TestKeySchemaDto.md,sha256=vm3Y47JH4Lbe34jQqmEYSpyq_eXF9ag3wRbVhj9me0g,1286
603
607
  src/client/generated/docs/TestKeySchemaPatchDto.md,sha256=LBIc2HYWzUHuFzNsMct-JPmg54uhxjkGLbocaBdPvQg,1049
608
+ src/client/generated/docs/TestLayerControllerApi.md,sha256=54am6JEDuAsVyZLlw_QgqFb4M6N0yMpilEzzPON11EI,12870
604
609
  src/client/generated/docs/TestLayerCreateDto.md,sha256=K2eDgc9lFoTTtk050z-FrzOI7ERHLJLTP63h4ulmNF8,948
605
610
  src/client/generated/docs/TestLayerDto.md,sha256=HxvwDGOxKQOGEj8DOdjrjllXCfstq5Um4HZ7jCi6gzI,1093
606
611
  src/client/generated/docs/TestLayerPatchDto.md,sha256=ycPN_vRSLsz1JgsccZiuMYasthocBKuhSfFIgM-g3Rw,946
612
+ src/client/generated/docs/TestLayerSchemaControllerApi.md,sha256=GScfBisbMyvG83i7AZU7-AxbnIX_2Xvd3jkru1VKG9E,11009
607
613
  src/client/generated/docs/TestLayerSchemaCreateDto.md,sha256=HC5LDCw0j2pfBdPzulwzQilB2hL2wyPABpSE7R4A3z0,1096
608
614
  src/client/generated/docs/TestLayerSchemaDto.md,sha256=GmGeA0bi-CFRfHRi_mmCwX73UtWoXsNAIsjMVAO1cs0,1288
609
615
  src/client/generated/docs/TestLayerSchemaPatchDto.md,sha256=vLucMqrWoRz8GZ0JgaYlRuLnt4Tiomv50eC_E1KcJfE,1074
@@ -1421,28 +1427,50 @@ src/client/generated/models/workflow_row_dto.py,sha256=lJaFfDmJISi6JTG5pvc2TKG_j
1421
1427
  src/client/generated/models/workflow_schema_create_dto.py,sha256=hgXdh72-pgT8QQeebQyXiwo4u5mYQOib8NCy_2UG4V8,2795
1422
1428
  src/client/generated/models/workflow_schema_dto.py,sha256=pK6kpb7vIHE4dkdBrS2G871tnt2abuAumdB8i_M5-gk,3807
1423
1429
  src/client/generated/models/workflow_schema_patch_dto.py,sha256=m4RDERQlbWY997XTMgufFp5vQgYEQRmkJ8jMQNhZjr4,2729
1424
- src/services/__init__.py,sha256=Lq29htiPlTQ-_gqsZQz_E4HB13KMYs2SgMsq2m9biLU,44
1430
+ src/client/overridden/test_case_custom_fields_v2.py,sha256=3bzOTWaOAUAJftDdHVSA76QjvyvOiWOnPcupMDV5WqE,10464
1431
+ src/services/__init__.py,sha256=7dy-IPW2JLnxhXZtG0ORAYz5altjcYpo1nslEoZcNdk,512
1425
1432
  src/services/attachment_service.py,sha256=_aQ-CAOCCDth_sWz1EyDw4W-1POQDsQ28YYCHUEXAlA,3890
1426
- src/services/search_service.py,sha256=KW8pzZ9_oo3nd9yam5Eh-Gp7eXKIQ6lKeYr3e5RHKCs,7853
1427
- src/services/shared_step_service.py,sha256=CSHLnf4ziuWG3XfeCHYokuVT-0t3T4ZwJzSs3W0cY4U,12722
1428
- src/services/test_case_service.py,sha256=Pkk9XWIqog22gzsoHbVWFJqAQZ_UVRIw374BfuWfAlI,43411
1429
- src/tools/__init__.py,sha256=29cJwQ92Yg7FOH0lJA6VPRcj8HNJvw1vQpaSndP5894,1308
1430
- src/tools/create_test_case.py,sha256=FNRZA4EwrcnrmBikqTSmYKDKxv6AcCYcyeTDrTGAg1I,3195
1431
- src/tools/delete_test_case.py,sha256=kAWNAFN5on5jt7dCuWt4i-k8C8QKobtMMfgHizjbcH0,2058
1432
- src/tools/get_custom_fields.py,sha256=VxAikxd2GayOqw09Bm2E6jBQreBVPCJBLPLJNTHI-Ic,1749
1433
- src/tools/link_shared_step.py,sha256=m6jKudXeBnS4fC47ULVjuwsBisDyPVgJHuNFjDuRrE8,3734
1434
- src/tools/search.py,sha256=XnMQjBBpqIDhNz2YxiJroAnqSV48JJmvsNlA7USb-2g,13754
1435
- src/tools/shared_steps.py,sha256=VYNEC4TBhZyTp_vZypOtsHjvXpwtf_wUx0C9bCY86p8,7193
1436
- src/tools/unlink_shared_step.py,sha256=Zrr8UgFzpIs76kiHAQGt3JMXIRY943Yh323FNYH05Eg,2554
1437
- src/tools/update_test_case.py,sha256=y3wc5PexfjFEshZHmGQ2MeqhvxopE7G_YES2Vq2IPAA,5349
1438
- src/utils/__init__.py,sha256=glRWiaIBWJlS2bST5-OId63xVmA13P_wp6YcQ1B83ws,38
1433
+ src/services/custom_field_value_service.py,sha256=TN0M5f5bZ5zGklQszcIOhoQBO0cxCi-mhiwccKr8-1c,12407
1434
+ src/services/integration_service.py,sha256=cge8itF93udcYp1bnwPU5tDW2XGLuvo0eDpOMWwp5gs,7455
1435
+ src/services/launch_service.py,sha256=dhf_NTSoUYNMimVvatVnYQvUQa4V2EoslGPTZfOhu9Y,11573
1436
+ src/services/search_service.py,sha256=H_j4Cpq-trDYh9P3DD3yU57gTftdxx-YN7O_zf5umio,7832
1437
+ src/services/shared_step_service.py,sha256=nQ3zZ5U6uzxdMaGePXhEAP96CTlDNX5o09bVFDfBneY,13501
1438
+ src/services/test_case_service.py,sha256=zAjRQT3k6AF0sImUUXmSQ-4Rm6BnWGpYRoV5Cw-Q9t0,72089
1439
+ src/services/test_layer_service.py,sha256=VWRaNd3FOvy3oXZl3_uyV6kiWgioETnVl3jQ1Sd8uLY,15264
1440
+ src/tools/__init__.py,sha256=6A9mDb5KxttSNHjwUxzSZz2hXRGxieSi7Fl6Ddq8Tro,3025
1441
+ src/tools/create_custom_field_value.py,sha256=F6xbOwyS2nxuiVTP9QEZIO3QhTSaqUQ-s3ZsUT23pzE,1539
1442
+ src/tools/create_test_case.py,sha256=HLZ09d0MEAyRI5D89cOVBtSmov4SXvXCMjNKEhQxoKs,5220
1443
+ src/tools/create_test_layer.py,sha256=6l8eP6bGqyOILJvOAhbCClht_FSYHLcgxCeNdwYMZhc,1111
1444
+ src/tools/create_test_layer_schema.py,sha256=QuHvBgSYqyyPPSDtMaijOuM1Lzt8mH3u96owTNyLMhA,1569
1445
+ src/tools/delete_custom_field_value.py,sha256=9LY-YHhIcmtVRaIm29bfCoK7vPOV-7fuOuC-7YFaFE8,2268
1446
+ src/tools/delete_test_case.py,sha256=fSGrCMcHGRg6ZnruCYlcQNRCiY_riwvJLFLIx3Xz_UM,2132
1447
+ src/tools/delete_test_layer.py,sha256=lnzDMdA68pxKikGT9ZehYbLQ6DHcgO2H5kWZIPy3v3o,1594
1448
+ src/tools/delete_test_layer_schema.py,sha256=PZ7mPxTidRAedp_gPaaliumVG5k8HwTVgJ9_yGI_TVM,1662
1449
+ src/tools/get_custom_fields.py,sha256=jTbPzzFDUWZNWB1TbThpq8z5OnxaW24eK2-FX0Ba_Oc,1782
1450
+ src/tools/get_test_case_custom_fields.py,sha256=vcEj5CWaBtvva-buN2WEGBNuwzgXNHj9nOsrn2jOcO4,1336
1451
+ src/tools/launches.py,sha256=-fvV-CgJ2OKrUKHdFZHRoufIxzZq3N8JsYrFcmtfedc,7345
1452
+ src/tools/link_shared_step.py,sha256=Q_-5UbHSHGERC4xzr-6Fyvg3AePDe6nba8ckRQbHxK0,3903
1453
+ src/tools/list_custom_field_values.py,sha256=Q7Yt0KACDsyiw_N1fzq0FJTAHM5GYrTmfOefElKoSUE,3170
1454
+ src/tools/list_integrations.py,sha256=NIAHIJv7aSj6gP_1LGjhEic7kapchj4IAi78nRhVB6g,3055
1455
+ src/tools/list_test_layer_schemas.py,sha256=ju5fjXMXGho9jJ8TRXYooFHMzJDThhyFso0z8OZPgas,1580
1456
+ src/tools/list_test_layers.py,sha256=nH_VIJHt5kxfmD5z6_N4UER3anvNY3D-ukPo3HL15hk,1202
1457
+ src/tools/search.py,sha256=hmjruKOLvShs_35O5j6gUcCOwDMNMJU8g4AVWIKz3nc,13898
1458
+ src/tools/shared_steps.py,sha256=0R9HQg6w0dLp3KVyhvNPxyBa7gufHMbGlb33XaApwhY,7994
1459
+ src/tools/test_layers.py,sha256=lnvL-wKkexQ5sldC_3P-fWOZXCQDPBbDB03Cu1VudJ0,793
1460
+ src/tools/unlink_shared_step.py,sha256=xXyWI-dLKDUfkBCPz4GWpIl78nuPK-wOhzBPYg5N44I,3245
1461
+ src/tools/update_custom_field_value.py,sha256=TFI-5k-0L3Kve2UIvlAYtR_YAJFWXhx0tRB5EtV0skU,2358
1462
+ src/tools/update_test_case.py,sha256=o3ZG4LqYGPnktiENM8zM1IeL57pAwOVbNVD5bOAs2As,10137
1463
+ src/tools/update_test_layer.py,sha256=dJgs16qwcaQgLumrRyjti1CJ7TwEniqpW739EcCKE78,1760
1464
+ src/tools/update_test_layer_schema.py,sha256=9QlNPjoUDBxeuCHdpoTnFM6xiAW98rJvjtzXI0sgcGk,2168
1465
+ src/utils/__init__.py,sha256=puuJIVHt6RMo6xvMBsvGydGJuW0b6v1zi6rBexmOVGM,114
1439
1466
  src/utils/auth.py,sha256=CfQws2BUct_wmPPbe_COTjHqoeKRfF0PcCs_8pkINjQ,3334
1440
1467
  src/utils/config.py,sha256=q6PUlkfgpFEzrzspbmAYcvBbFOgOIDp5RTk5XcR4IGk,1412
1441
1468
  src/utils/error.py,sha256=kUsp62qbz_Q1pz6dGblGTi0rNixJOiF-Vtp19punh7Q,6347
1469
+ src/utils/links.py,sha256=yPIqofIYbTnglOJ_4xUa-UvPB0S5blARjTClsMzv49w,538
1442
1470
  src/utils/logger.py,sha256=8ZKOitFjwBRwDfD8wt0hfwIkS-rrrw2bjX5CaxgaZ9g,2504
1443
1471
  src/utils/schema_hint.py,sha256=tQkoWTQG7rGbS-pA5Hve-wdb3Sx0869IOy9DCHU_3QM,1811
1444
- lucius_mcp-0.2.2.dist-info/METADATA,sha256=9i3YovTiDFI0niZuMZ04YdEENi7BCmSCAyWLHerGSPs,9234
1445
- lucius_mcp-0.2.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1446
- lucius_mcp-0.2.2.dist-info/entry_points.txt,sha256=Y-XfajjPTM5lObHWqsMYRsLrJRsILKpFGgwBcefRZvw,41
1447
- lucius_mcp-0.2.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1448
- lucius_mcp-0.2.2.dist-info/RECORD,,
1472
+ lucius_mcp-0.4.0.dist-info/METADATA,sha256=kwjuYzKKk_rxFB4CE8cMkUJdyKav3gs46ih2OWOgejc,6842
1473
+ lucius_mcp-0.4.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1474
+ lucius_mcp-0.4.0.dist-info/entry_points.txt,sha256=Y-XfajjPTM5lObHWqsMYRsLrJRsILKpFGgwBcefRZvw,41
1475
+ lucius_mcp-0.4.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1476
+ lucius_mcp-0.4.0.dist-info/RECORD,,
src/client/__init__.py CHANGED
@@ -4,14 +4,21 @@ from .client import (
4
4
  AllureClient,
5
5
  AttachmentStepDtoWithName,
6
6
  BodyStepDtoWithSteps,
7
+ FindAll29200Response,
8
+ LaunchCreateDto,
9
+ LaunchDto,
10
+ PageLaunchDto,
11
+ PageLaunchPreviewDto,
7
12
  PageSharedStepDto,
8
13
  PageTestCaseDto,
9
14
  ScenarioStepCreatedResponseDto,
10
15
  ScenarioStepCreateDto,
16
+ ScenarioStepPatchDto,
11
17
  SharedStepAttachmentRowDto,
12
18
  SharedStepCreateDto,
13
19
  SharedStepDto,
14
20
  SharedStepPatchDto,
21
+ StepWithExpected,
15
22
  TestCaseAttachmentRowDto,
16
23
  TestCaseCreateV2Dto,
17
24
  TestCaseDto,
@@ -27,6 +34,7 @@ from .exceptions import (
27
34
  AllureNotFoundError,
28
35
  AllureRateLimitError,
29
36
  AllureValidationError,
37
+ LaunchNotFoundError,
30
38
  TestCaseNotFoundError,
31
39
  )
32
40
 
@@ -39,14 +47,22 @@ __all__ = [
39
47
  "AllureValidationError",
40
48
  "AttachmentStepDtoWithName",
41
49
  "BodyStepDtoWithSteps",
50
+ "FindAll29200Response",
51
+ "LaunchCreateDto",
52
+ "LaunchDto",
53
+ "LaunchNotFoundError",
54
+ "PageLaunchDto",
55
+ "PageLaunchPreviewDto",
42
56
  "PageSharedStepDto",
43
57
  "PageTestCaseDto",
44
58
  "ScenarioStepCreateDto",
45
59
  "ScenarioStepCreatedResponseDto",
60
+ "ScenarioStepPatchDto",
46
61
  "SharedStepAttachmentRowDto",
47
62
  "SharedStepCreateDto",
48
63
  "SharedStepDto",
49
64
  "SharedStepPatchDto",
65
+ "StepWithExpected",
50
66
  "TestCaseAttachmentRowDto",
51
67
  "TestCaseCreateV2Dto",
52
68
  "TestCaseDto",