lucius-mcp 0.3.0__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 (39) hide show
  1. lucius_mcp-0.4.0.dist-info/METADATA +124 -0
  2. {lucius_mcp-0.3.0.dist-info → lucius_mcp-0.4.0.dist-info}/RECORD +38 -29
  3. src/client/__init__.py +6 -0
  4. src/client/client.py +271 -7
  5. src/client/exceptions.py +23 -0
  6. src/client/generated/README.md +18 -0
  7. src/client/generated/__init__.py +2 -0
  8. src/client/generated/api/__init__.py +1 -0
  9. src/client/generated/api/integration_controller_api.py +5285 -0
  10. src/client/generated/docs/IntegrationControllerApi.md +1224 -0
  11. src/services/__init__.py +9 -1
  12. src/services/custom_field_value_service.py +301 -0
  13. src/services/integration_service.py +205 -0
  14. src/services/launch_service.py +29 -1
  15. src/services/shared_step_service.py +34 -17
  16. src/services/test_case_service.py +269 -37
  17. src/services/test_layer_service.py +11 -0
  18. src/tools/__init__.py +19 -1
  19. src/tools/create_custom_field_value.py +38 -0
  20. src/tools/create_test_case.py +32 -2
  21. src/tools/delete_custom_field_value.py +57 -0
  22. src/tools/delete_test_case.py +5 -4
  23. src/tools/delete_test_layer.py +17 -4
  24. src/tools/delete_test_layer_schema.py +17 -4
  25. src/tools/launches.py +86 -0
  26. src/tools/link_shared_step.py +18 -12
  27. src/tools/list_custom_field_values.py +72 -0
  28. src/tools/list_integrations.py +77 -0
  29. src/tools/search.py +3 -3
  30. src/tools/shared_steps.py +23 -8
  31. src/tools/unlink_shared_step.py +19 -5
  32. src/tools/update_custom_field_value.py +55 -0
  33. src/tools/update_test_case.py +67 -2
  34. src/tools/update_test_layer.py +15 -4
  35. src/tools/update_test_layer_schema.py +16 -5
  36. lucius_mcp-0.3.0.dist-info/METADATA +0 -297
  37. {lucius_mcp-0.3.0.dist-info → lucius_mcp-0.4.0.dist-info}/WHEEL +0 -0
  38. {lucius_mcp-0.3.0.dist-info → lucius_mcp-0.4.0.dist-info}/entry_points.txt +0 -0
  39. {lucius_mcp-0.3.0.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=8FCHe0wiqraDBeSsnA2Q61C22OnGcdqy-ka2hv0NfnA,1634
5
- src/client/client.py,sha256=GF6tsU7IBCGWroQpLaG0f2GmUz0oGRAm-P30EPKA4_E,62177
6
- src/client/exceptions.py,sha256=2iGpxxeiIkptvhptGFoqABI0cOLhGpIWX6c-I9Qc0yM,1498
7
- src/client/generated/README.md,sha256=T3s1Ahzs5vS2DihyY1nP6123r2DqtsdvPyAJHhgGNqs,87576
8
- src/client/generated/__init__.py,sha256=ncXolJLsz38xW_BPXP2OAmPpSR78REx5Qvk3LBXP-WM,98431
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=QXe5ejBgZEUaC9rfD_RvDFafnAy2bmWcyjlQkKh51as,2271
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
@@ -215,6 +216,7 @@ src/client/generated/docs/ImportRequestDto.md,sha256=mB2FCmufT6YS6prvLvMet6i6PSt
215
216
  src/client/generated/docs/ImportRequestInfoDto.md,sha256=Ta82s9wUQCLyhJVblQxWuwWV4GChyHoWoCjGlXlzTTA,1175
216
217
  src/client/generated/docs/ImportRequestStateDto.md,sha256=ipWzEfB_VakOw72kMGaY-H9uiSSa9DSq-5IjOnz_TGQ,339
217
218
  src/client/generated/docs/ImportRequestTypeDto.md,sha256=ay7oEl41tbrrLGNuQbqETr6qxfrWQCjj8bn6M8by_3g,244
219
+ src/client/generated/docs/IntegrationControllerApi.md,sha256=mSt0rgkSBoKA00SA2UPybphETXlyFS1dQjlJkMH00bM,42211
218
220
  src/client/generated/docs/IntegrationCreateDto.md,sha256=gxAsZdjJjTjEAb-b03n4cb-acWHewBIosBpPKebTor0,1235
219
221
  src/client/generated/docs/IntegrationDto.md,sha256=lIHYlAuccGDTwvz4DLtRFLiQmid8-9b_OICzC_ly8hQ,1145
220
222
  src/client/generated/docs/IntegrationExportCreateDto.md,sha256=Mr9u5uJ6Qam7D93KKNAp8nWgPDWtS_090vJbWsX9qNY,1498
@@ -1426,33 +1428,40 @@ src/client/generated/models/workflow_schema_create_dto.py,sha256=hgXdh72-pgT8QQe
1426
1428
  src/client/generated/models/workflow_schema_dto.py,sha256=pK6kpb7vIHE4dkdBrS2G871tnt2abuAumdB8i_M5-gk,3807
1427
1429
  src/client/generated/models/workflow_schema_patch_dto.py,sha256=m4RDERQlbWY997XTMgufFp5vQgYEQRmkJ8jMQNhZjr4,2729
1428
1430
  src/client/overridden/test_case_custom_fields_v2.py,sha256=3bzOTWaOAUAJftDdHVSA76QjvyvOiWOnPcupMDV5WqE,10464
1429
- src/services/__init__.py,sha256=4Wn2FhgzcBtFnG5SmMlKluRwAi0-0UnId0CuvDZfzYI,394
1431
+ src/services/__init__.py,sha256=7dy-IPW2JLnxhXZtG0ORAYz5altjcYpo1nslEoZcNdk,512
1430
1432
  src/services/attachment_service.py,sha256=_aQ-CAOCCDth_sWz1EyDw4W-1POQDsQ28YYCHUEXAlA,3890
1431
- src/services/launch_service.py,sha256=9vqoZup115QMsf8JcEXVT-YTXX0ogVUO3qKV3D1Vyqs,10561
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
1432
1436
  src/services/search_service.py,sha256=H_j4Cpq-trDYh9P3DD3yU57gTftdxx-YN7O_zf5umio,7832
1433
- src/services/shared_step_service.py,sha256=CSHLnf4ziuWG3XfeCHYokuVT-0t3T4ZwJzSs3W0cY4U,12722
1434
- src/services/test_case_service.py,sha256=e_Io-g0hgQbaEk6LRW4_xcQuh0_BgclITDkZKxkh8bE,62627
1435
- src/services/test_layer_service.py,sha256=bu93l_I2zYrxAsAjtSeNVpUly6Uj-MVcLftgENM3uRI,14752
1436
- src/tools/__init__.py,sha256=lusyeBu44J-2JS6DCzJIHrpp79uhdXgA3OnSIg5-suo,2301
1437
- src/tools/create_test_case.py,sha256=DEFEU8wxJe-itsbfWR59cmXjlBpjlXo-3DB8fMx-qbs,3967
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
1438
1443
  src/tools/create_test_layer.py,sha256=6l8eP6bGqyOILJvOAhbCClht_FSYHLcgxCeNdwYMZhc,1111
1439
1444
  src/tools/create_test_layer_schema.py,sha256=QuHvBgSYqyyPPSDtMaijOuM1Lzt8mH3u96owTNyLMhA,1569
1440
- src/tools/delete_test_case.py,sha256=kAWNAFN5on5jt7dCuWt4i-k8C8QKobtMMfgHizjbcH0,2058
1441
- src/tools/delete_test_layer.py,sha256=nJ2ZhzM4Ca9seaoShczwjovHqsAxSLGWP0rcX1Kwke4,998
1442
- src/tools/delete_test_layer_schema.py,sha256=GBsIAO6pikTMYDD0r-OCjtSGipseD_Mk0dchPi-38-w,1046
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
1443
1449
  src/tools/get_custom_fields.py,sha256=jTbPzzFDUWZNWB1TbThpq8z5OnxaW24eK2-FX0Ba_Oc,1782
1444
1450
  src/tools/get_test_case_custom_fields.py,sha256=vcEj5CWaBtvva-buN2WEGBNuwzgXNHj9nOsrn2jOcO4,1336
1445
- src/tools/launches.py,sha256=2RjFuFsaKX1q3u7vpg91KOJffNMv3KkkBaNE4sH2oJ4,4299
1446
- src/tools/link_shared_step.py,sha256=m6jKudXeBnS4fC47ULVjuwsBisDyPVgJHuNFjDuRrE8,3734
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
1447
1455
  src/tools/list_test_layer_schemas.py,sha256=ju5fjXMXGho9jJ8TRXYooFHMzJDThhyFso0z8OZPgas,1580
1448
1456
  src/tools/list_test_layers.py,sha256=nH_VIJHt5kxfmD5z6_N4UER3anvNY3D-ukPo3HL15hk,1202
1449
- src/tools/search.py,sha256=MxFQTdyAoHtjSIZVZYRFhmh2KDnDQNnwdaV-IBZW0Vc,13904
1450
- src/tools/shared_steps.py,sha256=VYNEC4TBhZyTp_vZypOtsHjvXpwtf_wUx0C9bCY86p8,7193
1457
+ src/tools/search.py,sha256=hmjruKOLvShs_35O5j6gUcCOwDMNMJU8g4AVWIKz3nc,13898
1458
+ src/tools/shared_steps.py,sha256=0R9HQg6w0dLp3KVyhvNPxyBa7gufHMbGlb33XaApwhY,7994
1451
1459
  src/tools/test_layers.py,sha256=lnvL-wKkexQ5sldC_3P-fWOZXCQDPBbDB03Cu1VudJ0,793
1452
- src/tools/unlink_shared_step.py,sha256=Zrr8UgFzpIs76kiHAQGt3JMXIRY943Yh323FNYH05Eg,2554
1453
- src/tools/update_test_case.py,sha256=8B074dwpVx2cna7XpuAA3vGBi8A06lHYtHy3hlc7y7g,7209
1454
- src/tools/update_test_layer.py,sha256=LrYNOhv3EQzZF7UjNMLoAKiG1HR5eXw1URpzPRntwcY,1185
1455
- src/tools/update_test_layer_schema.py,sha256=GAda2drLbecRatU-9r8IuDasEE8lJe1GL1M8bcbfOz0,1559
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
1456
1465
  src/utils/__init__.py,sha256=puuJIVHt6RMo6xvMBsvGydGJuW0b6v1zi6rBexmOVGM,114
1457
1466
  src/utils/auth.py,sha256=CfQws2BUct_wmPPbe_COTjHqoeKRfF0PcCs_8pkINjQ,3334
1458
1467
  src/utils/config.py,sha256=q6PUlkfgpFEzrzspbmAYcvBbFOgOIDp5RTk5XcR4IGk,1412
@@ -1460,8 +1469,8 @@ src/utils/error.py,sha256=kUsp62qbz_Q1pz6dGblGTi0rNixJOiF-Vtp19punh7Q,6347
1460
1469
  src/utils/links.py,sha256=yPIqofIYbTnglOJ_4xUa-UvPB0S5blARjTClsMzv49w,538
1461
1470
  src/utils/logger.py,sha256=8ZKOitFjwBRwDfD8wt0hfwIkS-rrrw2bjX5CaxgaZ9g,2504
1462
1471
  src/utils/schema_hint.py,sha256=tQkoWTQG7rGbS-pA5Hve-wdb3Sx0869IOy9DCHU_3QM,1811
1463
- lucius_mcp-0.3.0.dist-info/METADATA,sha256=Bc7FLCKMF6lRiFKP4CZ7FFH57Kph18YGzIrJuVcyTro,9402
1464
- lucius_mcp-0.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1465
- lucius_mcp-0.3.0.dist-info/entry_points.txt,sha256=Y-XfajjPTM5lObHWqsMYRsLrJRsILKpFGgwBcefRZvw,41
1466
- lucius_mcp-0.3.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1467
- lucius_mcp-0.3.0.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
@@ -13,10 +13,12 @@ from .client import (
13
13
  PageTestCaseDto,
14
14
  ScenarioStepCreatedResponseDto,
15
15
  ScenarioStepCreateDto,
16
+ ScenarioStepPatchDto,
16
17
  SharedStepAttachmentRowDto,
17
18
  SharedStepCreateDto,
18
19
  SharedStepDto,
19
20
  SharedStepPatchDto,
21
+ StepWithExpected,
20
22
  TestCaseAttachmentRowDto,
21
23
  TestCaseCreateV2Dto,
22
24
  TestCaseDto,
@@ -32,6 +34,7 @@ from .exceptions import (
32
34
  AllureNotFoundError,
33
35
  AllureRateLimitError,
34
36
  AllureValidationError,
37
+ LaunchNotFoundError,
35
38
  TestCaseNotFoundError,
36
39
  )
37
40
 
@@ -47,16 +50,19 @@ __all__ = [
47
50
  "FindAll29200Response",
48
51
  "LaunchCreateDto",
49
52
  "LaunchDto",
53
+ "LaunchNotFoundError",
50
54
  "PageLaunchDto",
51
55
  "PageLaunchPreviewDto",
52
56
  "PageSharedStepDto",
53
57
  "PageTestCaseDto",
54
58
  "ScenarioStepCreateDto",
55
59
  "ScenarioStepCreatedResponseDto",
60
+ "ScenarioStepPatchDto",
56
61
  "SharedStepAttachmentRowDto",
57
62
  "SharedStepCreateDto",
58
63
  "SharedStepDto",
59
64
  "SharedStepPatchDto",
65
+ "StepWithExpected",
60
66
  "TestCaseAttachmentRowDto",
61
67
  "TestCaseCreateV2Dto",
62
68
  "TestCaseDto",