alibaba-cloud-ops-mcp-server 0.7.3__tar.gz → 0.7.4__tar.gz
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.
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/alibabacloud-mcp-server.iml +1 -1
- alibaba_cloud_ops_mcp_server-0.7.4/.idea/misc.xml +7 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/workspace.xml +65 -7
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/PKG-INFO +13 -16
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/README.md +11 -15
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/README_zh.md +10 -14
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/pyproject.toml +2 -1
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/src/alibaba_cloud_ops_mcp_server/config.py +4 -1
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/src/alibaba_cloud_ops_mcp_server/oos_tools.py +70 -12
- alibaba_cloud_ops_mcp_server-0.7.4/src/alibaba_cloud_ops_mcp_server/oss_tools.py +107 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/src/alibaba_cloud_ops_mcp_server/server.py +3 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/uv.lock +70 -21
- alibaba_cloud_ops_mcp_server-0.7.3/.idea/misc.xml +0 -4
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.gitignore +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/.gitignore +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/inspectionProfiles/Project_Default.xml +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/modules.xml +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/vcs.xml +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/LICENSE +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/src/alibaba_cloud_ops_mcp_server/__init__.py +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/src/alibaba_cloud_ops_mcp_server/api_meta_client.py +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/src/alibaba_cloud_ops_mcp_server/cms_tools.py +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<module type="PYTHON_MODULE" version="4">
|
|
3
3
|
<component name="NewModuleRootManager">
|
|
4
4
|
<content url="file://$MODULE_DIR$" />
|
|
5
|
-
<orderEntry type="
|
|
5
|
+
<orderEntry type="jdk" jdkName="Python 3.12 (myenv312)" jdkType="Python SDK" />
|
|
6
6
|
<orderEntry type="sourceFolder" forTests="false" />
|
|
7
7
|
</component>
|
|
8
8
|
<component name="PyDocumentationSettings">
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="Black">
|
|
4
|
+
<option name="sdkName" value="Python 3.11 (alibabacloud-mcp-server)" />
|
|
5
|
+
</component>
|
|
6
|
+
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (myenv312)" project-jdk-type="Python SDK" />
|
|
7
|
+
</project>
|
{alibaba_cloud_ops_mcp_server-0.7.3 → alibaba_cloud_ops_mcp_server-0.7.4}/.idea/workspace.xml
RENAMED
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
5
|
</component>
|
|
6
6
|
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="7533dbdd-7a6f-45ef-acd7-3053ecebc958" name="更改" comment="
|
|
7
|
+
<list default="true" id="7533dbdd-7a6f-45ef-acd7-3053ecebc958" name="更改" comment="add mcp server config to readme">
|
|
8
|
+
<change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
|
|
9
|
+
<change beforePath="$PROJECT_DIR$/src/alibaba_cloud_ops_mcp_server/server.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/alibaba_cloud_ops_mcp_server/server.py" afterDir="false" />
|
|
10
|
+
<change beforePath="$PROJECT_DIR$/uv.lock" beforeDir="false" afterPath="$PROJECT_DIR$/uv.lock" afterDir="false" />
|
|
11
|
+
</list>
|
|
8
12
|
<option name="SHOW_DIALOG" value="false" />
|
|
9
13
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
10
14
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
@@ -13,9 +17,9 @@
|
|
|
13
17
|
<component name="Git.Settings">
|
|
14
18
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
15
19
|
</component>
|
|
16
|
-
<component name="ProjectColorInfo"
|
|
17
|
-
|
|
18
|
-
}
|
|
20
|
+
<component name="ProjectColorInfo">{
|
|
21
|
+
"associatedIndex": 3
|
|
22
|
+
}</component>
|
|
19
23
|
<component name="ProjectId" id="2vtED9lPAsLJYRTfnb8FMPyDCo5" />
|
|
20
24
|
<component name="ProjectViewState">
|
|
21
25
|
<option name="hideEmptyMiddlePackages" value="true" />
|
|
@@ -24,7 +28,7 @@
|
|
|
24
28
|
<component name="PropertiesComponent"><![CDATA[{
|
|
25
29
|
"keyToString": {
|
|
26
30
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
27
|
-
"git-widget-placeholder": "
|
|
31
|
+
"git-widget-placeholder": "feat/support__oss__and__rds",
|
|
28
32
|
"last_opened_file_path": "/Users/chuanlin/test/alibabacloud-mcp-server",
|
|
29
33
|
"node.js.detected.package.eslint": "true",
|
|
30
34
|
"node.js.detected.package.tslint": "true",
|
|
@@ -56,6 +60,7 @@
|
|
|
56
60
|
<option name="presentableId" value="Default" />
|
|
57
61
|
<updated>1744955848249</updated>
|
|
58
62
|
<workItem from="1744955849368" duration="921000" />
|
|
63
|
+
<workItem from="1745216489220" duration="18631000" />
|
|
59
64
|
</task>
|
|
60
65
|
<task id="LOCAL-00001" summary="init alibabacloud-mcp-server project">
|
|
61
66
|
<option name="closed" value="true" />
|
|
@@ -65,14 +70,67 @@
|
|
|
65
70
|
<option name="project" value="LOCAL" />
|
|
66
71
|
<updated>1744955987413</updated>
|
|
67
72
|
</task>
|
|
68
|
-
<
|
|
73
|
+
<task id="LOCAL-00002" summary="change project name to "alibaba-cloud-ops-mcp-server"">
|
|
74
|
+
<option name="closed" value="true" />
|
|
75
|
+
<created>1745217231572</created>
|
|
76
|
+
<option name="number" value="00002" />
|
|
77
|
+
<option name="presentableId" value="LOCAL-00002" />
|
|
78
|
+
<option name="project" value="LOCAL" />
|
|
79
|
+
<updated>1745217231572</updated>
|
|
80
|
+
</task>
|
|
81
|
+
<task id="LOCAL-00003" summary="change project name to "alibaba-cloud-ops-mcp-server"">
|
|
82
|
+
<option name="closed" value="true" />
|
|
83
|
+
<created>1745222527808</created>
|
|
84
|
+
<option name="number" value="00003" />
|
|
85
|
+
<option name="presentableId" value="LOCAL-00003" />
|
|
86
|
+
<option name="project" value="LOCAL" />
|
|
87
|
+
<updated>1745222527808</updated>
|
|
88
|
+
</task>
|
|
89
|
+
<task id="LOCAL-00004" summary="add mcp server config to readme">
|
|
90
|
+
<option name="closed" value="true" />
|
|
91
|
+
<created>1745225473964</created>
|
|
92
|
+
<option name="number" value="00004" />
|
|
93
|
+
<option name="presentableId" value="LOCAL-00004" />
|
|
94
|
+
<option name="project" value="LOCAL" />
|
|
95
|
+
<updated>1745225473964</updated>
|
|
96
|
+
</task>
|
|
97
|
+
<task id="LOCAL-00005" summary="add mcp server config to readme">
|
|
98
|
+
<option name="closed" value="true" />
|
|
99
|
+
<created>1745225894142</created>
|
|
100
|
+
<option name="number" value="00005" />
|
|
101
|
+
<option name="presentableId" value="LOCAL-00005" />
|
|
102
|
+
<option name="project" value="LOCAL" />
|
|
103
|
+
<updated>1745225894142</updated>
|
|
104
|
+
</task>
|
|
105
|
+
<task id="LOCAL-00006" summary="add mcp server config to readme">
|
|
106
|
+
<option name="closed" value="true" />
|
|
107
|
+
<created>1745229523171</created>
|
|
108
|
+
<option name="number" value="00006" />
|
|
109
|
+
<option name="presentableId" value="LOCAL-00006" />
|
|
110
|
+
<option name="project" value="LOCAL" />
|
|
111
|
+
<updated>1745229523171</updated>
|
|
112
|
+
</task>
|
|
113
|
+
<option name="localTasksCounter" value="7" />
|
|
69
114
|
<servers />
|
|
70
115
|
</component>
|
|
71
116
|
<component name="TypeScriptGeneratedFilesManager">
|
|
72
117
|
<option name="version" value="3" />
|
|
73
118
|
</component>
|
|
119
|
+
<component name="Vcs.Log.Tabs.Properties">
|
|
120
|
+
<option name="TAB_STATES">
|
|
121
|
+
<map>
|
|
122
|
+
<entry key="MAIN">
|
|
123
|
+
<value>
|
|
124
|
+
<State />
|
|
125
|
+
</value>
|
|
126
|
+
</entry>
|
|
127
|
+
</map>
|
|
128
|
+
</option>
|
|
129
|
+
</component>
|
|
74
130
|
<component name="VcsManagerConfiguration">
|
|
75
131
|
<MESSAGE value="init alibabacloud-mcp-server project" />
|
|
76
|
-
<
|
|
132
|
+
<MESSAGE value="change project name to "alibaba-cloud-ops-mcp-server"" />
|
|
133
|
+
<MESSAGE value="add mcp server config to readme" />
|
|
134
|
+
<option name="LAST_COMMIT_MESSAGE" value="add mcp server config to readme" />
|
|
77
135
|
</component>
|
|
78
136
|
</project>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alibaba-cloud-ops-mcp-server
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.4
|
|
4
4
|
Summary: A MCP server for Alibaba Cloud
|
|
5
5
|
Author-email: Zheng Dayu <dayu.zdy@alibaba-inc.com>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -8,6 +8,7 @@ Requires-Python: >=3.11
|
|
|
8
8
|
Requires-Dist: alibabacloud-cms20190101>=3.1.4
|
|
9
9
|
Requires-Dist: alibabacloud-ecs20140526>=6.1.0
|
|
10
10
|
Requires-Dist: alibabacloud-oos20190601>=3.4.1
|
|
11
|
+
Requires-Dist: alibabacloud-oss-v2>=1.1.0
|
|
11
12
|
Requires-Dist: click>=8.1.8
|
|
12
13
|
Requires-Dist: mcp[cli]>=1.6.0
|
|
13
14
|
Description-Content-Type: text/markdown
|
|
@@ -23,29 +24,17 @@ Install [uv](https://github.com/astral-sh/uv)
|
|
|
23
24
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
24
25
|
```
|
|
25
26
|
|
|
26
|
-
## Start
|
|
27
|
-
|
|
28
|
-
Start from local development environment
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
ALIBABA_CLOUD_ACCESS_KEY_ID=<Your AccessKeyId> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<Your AccessKeySecret> uv run src/alibaba_cloud_ops_mcp_server/server.py --transport sse
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Start from package
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
ALIBABA_CLOUD_ACCESS_KEY_ID=<Your AccessKeyId> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<Your AccessKeySecret> uvx alibaba-cloud-ops-mcp-server@latest --transport sse
|
|
38
|
-
```
|
|
39
|
-
|
|
40
27
|
## Configuration
|
|
41
28
|
|
|
42
29
|
Use [VS Code](https://code.visualstudio.com/) + [Cline](https://cline.bot/) to config MCP Server.
|
|
43
30
|
|
|
44
31
|
To use `alibaba-cloud-ops-mcp-server` MCP Server with any other MCP Client, you can manually add this configuration and restart for changes to take effect:
|
|
32
|
+
|
|
45
33
|
```json
|
|
46
34
|
{
|
|
47
35
|
"mcpServers": {
|
|
48
36
|
"alibaba-cloud-ops-mcp-server": {
|
|
37
|
+
"timeout": 600,
|
|
49
38
|
"command": "uvx",
|
|
50
39
|
"args": [
|
|
51
40
|
"alibaba-cloud-ops-mcp-server@latest"
|
|
@@ -62,7 +51,7 @@ To use `alibaba-cloud-ops-mcp-server` MCP Server with any other MCP Client, you
|
|
|
62
51
|
## Tools
|
|
63
52
|
|
|
64
53
|
| **Product** | **Tool** | **Function** | **Implematation** | **Status** |
|
|
65
|
-
| --- | --- |
|
|
54
|
+
| --- | --- | -- | --- | --- |
|
|
66
55
|
| ECS | RunCommand | Run Command | OOS | Done |
|
|
67
56
|
| | StartInstances | Start Instances | OOS | Done |
|
|
68
57
|
| | StopInstances | Stop Instances | OOS | Done |
|
|
@@ -79,6 +68,14 @@ To use `alibaba-cloud-ops-mcp-server` MCP Server with any other MCP Client, you
|
|
|
79
68
|
| | ReplaceSystemDisk | Replace Operating System | OOS | Done |
|
|
80
69
|
| VPC | DescribeVpcs | View VPCs | API | Done |
|
|
81
70
|
| | DescribeVSwitches | View VSwitches | API | Done |
|
|
71
|
+
| RDS | DescribeDBInstances | List RDS Instances | API | Done |
|
|
72
|
+
| | StartDBInstances | Start the RDS instance | OOS | Done |
|
|
73
|
+
| | StopDBInstances | Stop the RDS instance | OOS | Done |
|
|
74
|
+
| | RestartDBInstances | Restart the RDS instance | OOS | Done |
|
|
75
|
+
| OSS | ListBuckets | List Bucket | API | Done |
|
|
76
|
+
| | PutBucket | Create Bucket | API | Done |
|
|
77
|
+
| | DeleteBucket | Delete Bucket | API | Done |
|
|
78
|
+
| | ListObjectV2 | View object information in the bucket | API | Done |
|
|
82
79
|
| CloudMonitor | GetCpuUsageData | Get CPU Usage Data for ECS Instances | API | Done |
|
|
83
80
|
| | GetCpuLoadavgData | Get CPU One-Minute Average Load Metric Data | API | Done |
|
|
84
81
|
| | GetCpuloadavg5mData | Get CPU Five-Minute Average Load Metric Data | API | Done |
|
|
@@ -9,29 +9,17 @@ Install [uv](https://github.com/astral-sh/uv)
|
|
|
9
9
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
## Start
|
|
13
|
-
|
|
14
|
-
Start from local development environment
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
ALIBABA_CLOUD_ACCESS_KEY_ID=<Your AccessKeyId> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<Your AccessKeySecret> uv run src/alibaba_cloud_ops_mcp_server/server.py --transport sse
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Start from package
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
ALIBABA_CLOUD_ACCESS_KEY_ID=<Your AccessKeyId> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<Your AccessKeySecret> uvx alibaba-cloud-ops-mcp-server@latest --transport sse
|
|
24
|
-
```
|
|
25
|
-
|
|
26
12
|
## Configuration
|
|
27
13
|
|
|
28
14
|
Use [VS Code](https://code.visualstudio.com/) + [Cline](https://cline.bot/) to config MCP Server.
|
|
29
15
|
|
|
30
16
|
To use `alibaba-cloud-ops-mcp-server` MCP Server with any other MCP Client, you can manually add this configuration and restart for changes to take effect:
|
|
17
|
+
|
|
31
18
|
```json
|
|
32
19
|
{
|
|
33
20
|
"mcpServers": {
|
|
34
21
|
"alibaba-cloud-ops-mcp-server": {
|
|
22
|
+
"timeout": 600,
|
|
35
23
|
"command": "uvx",
|
|
36
24
|
"args": [
|
|
37
25
|
"alibaba-cloud-ops-mcp-server@latest"
|
|
@@ -48,7 +36,7 @@ To use `alibaba-cloud-ops-mcp-server` MCP Server with any other MCP Client, you
|
|
|
48
36
|
## Tools
|
|
49
37
|
|
|
50
38
|
| **Product** | **Tool** | **Function** | **Implematation** | **Status** |
|
|
51
|
-
| --- | --- |
|
|
39
|
+
| --- | --- | -- | --- | --- |
|
|
52
40
|
| ECS | RunCommand | Run Command | OOS | Done |
|
|
53
41
|
| | StartInstances | Start Instances | OOS | Done |
|
|
54
42
|
| | StopInstances | Stop Instances | OOS | Done |
|
|
@@ -65,6 +53,14 @@ To use `alibaba-cloud-ops-mcp-server` MCP Server with any other MCP Client, you
|
|
|
65
53
|
| | ReplaceSystemDisk | Replace Operating System | OOS | Done |
|
|
66
54
|
| VPC | DescribeVpcs | View VPCs | API | Done |
|
|
67
55
|
| | DescribeVSwitches | View VSwitches | API | Done |
|
|
56
|
+
| RDS | DescribeDBInstances | List RDS Instances | API | Done |
|
|
57
|
+
| | StartDBInstances | Start the RDS instance | OOS | Done |
|
|
58
|
+
| | StopDBInstances | Stop the RDS instance | OOS | Done |
|
|
59
|
+
| | RestartDBInstances | Restart the RDS instance | OOS | Done |
|
|
60
|
+
| OSS | ListBuckets | List Bucket | API | Done |
|
|
61
|
+
| | PutBucket | Create Bucket | API | Done |
|
|
62
|
+
| | DeleteBucket | Delete Bucket | API | Done |
|
|
63
|
+
| | ListObjectV2 | View object information in the bucket | API | Done |
|
|
68
64
|
| CloudMonitor | GetCpuUsageData | Get CPU Usage Data for ECS Instances | API | Done |
|
|
69
65
|
| | GetCpuLoadavgData | Get CPU One-Minute Average Load Metric Data | API | Done |
|
|
70
66
|
| | GetCpuloadavg5mData | Get CPU Five-Minute Average Load Metric Data | API | Done |
|
|
@@ -9,29 +9,17 @@
|
|
|
9
9
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
## 启动方式
|
|
13
|
-
|
|
14
|
-
本地开发环境启动
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
ALIBABA_CLOUD_ACCESS_KEY_ID=<你的AK> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<你的SK> uv run src/alibaba_cloud_ops_mcp_server/server.py --transport sse
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
安装包启动
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
ALIBABA_CLOUD_ACCESS_KEY_ID=<你的AK> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<你的SK> uvx alibaba-cloud-ops-mcp-server@latest --transport sse
|
|
24
|
-
```
|
|
25
|
-
|
|
26
12
|
## 配置
|
|
27
13
|
|
|
28
14
|
使用 [VS Code](https://code.visualstudio.com/) + [Cline](https://cline.bot/) 配置MCP Server
|
|
29
15
|
|
|
30
16
|
要将 `alibaba-cloud-ops-mcp-server` MCP 服务器与任何其他 MCP 服务器一起使用,您可以手动添加此配置并重新启动以使更改生效:
|
|
17
|
+
|
|
31
18
|
```json
|
|
32
19
|
{
|
|
33
20
|
"mcpServers": {
|
|
34
21
|
"alibaba-cloud-ops-mcp-server": {
|
|
22
|
+
"timeout": 600,
|
|
35
23
|
"command": "uvx",
|
|
36
24
|
"args": [
|
|
37
25
|
"alibaba-cloud-ops-mcp-server@latest"
|
|
@@ -65,6 +53,14 @@ ALIBABA_CLOUD_ACCESS_KEY_ID=<你的AK> ALIBABA_CLOUD_ACCESS_KEY_SECRET=<你的SK
|
|
|
65
53
|
| | ReplaceSystemDisk | 更换操作系统 | OOS | Done |
|
|
66
54
|
| VPC | DescribeVpcs | 查看VPC | API | Done |
|
|
67
55
|
| | DescribeVSwitches | 查看VSwitch | API | Done |
|
|
56
|
+
| RDS | DescribeDBInstances | 查询数据库实例列表 | API | Done |
|
|
57
|
+
| | StartDBInstances | 启动RDS实例 | OOS | Done |
|
|
58
|
+
| | StopDBInstances | 暂停RDS实例 | OOS | Done |
|
|
59
|
+
| | RestartDBInstances | 重启RDS实例 | OOS | Done |
|
|
60
|
+
| OSS | ListBuckets | 查看存储空间 | API | Done |
|
|
61
|
+
| | PutBucket | 创建存储空间 | API | Done |
|
|
62
|
+
| | DeleteBucket | 删除存储空间 | API | Done |
|
|
63
|
+
| | ListObjectV2 | 查看存储空间中的文件信息 | API | Done |
|
|
68
64
|
| CloudMonitor | GetCpuUsageData | 获取ECS实例的CPU使用率数据 | API | Done |
|
|
69
65
|
| | GetCpuLoadavgData | 获取CPU一分钟平均负载指标数据 | API | Done |
|
|
70
66
|
| | GetCpuloadavg5mData | 获取CPU五分钟平均负载指标数据 | API | Done |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "alibaba-cloud-ops-mcp-server"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.4"
|
|
4
4
|
description = "A MCP server for Alibaba Cloud"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -11,6 +11,7 @@ dependencies = [
|
|
|
11
11
|
"alibabacloud-cms20190101>=3.1.4",
|
|
12
12
|
"alibabacloud-ecs20140526>=6.1.0",
|
|
13
13
|
"alibabacloud-oos20190601>=3.4.1",
|
|
14
|
+
"alibabacloud_oss_v2>=1.1.0",
|
|
14
15
|
"click>=8.1.8",
|
|
15
16
|
"mcp[cli]>=1.6.0",
|
|
16
17
|
]
|
|
@@ -50,8 +50,8 @@ def _start_execution_sync(region_id: str, template_name: str, parameters: dict):
|
|
|
50
50
|
def RunCommand(
|
|
51
51
|
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
52
52
|
InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
|
|
53
|
-
CommandType: str = Field(description='ECS
|
|
54
|
-
Command: str = Field(description='ECS
|
|
53
|
+
CommandType: str = Field(description='The type of command executed on the ECS instance, optional value:RunShellScript,RunPythonScript,RunPerlScript,RunBatScript,RunPowerShellScript', default='RunShellScript'),
|
|
54
|
+
Command: str = Field(description='Content of the command executed on the ECS instance'),
|
|
55
55
|
):
|
|
56
56
|
"""批量在多台ECS实例上运行云助手命令,适用于需要同时管理多台ECS实例的场景,如应用程序管理和资源标记操作等。"""
|
|
57
57
|
|
|
@@ -96,7 +96,7 @@ def StartInstances(
|
|
|
96
96
|
def StopInstances(
|
|
97
97
|
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
98
98
|
InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
|
|
99
|
-
ForeceStop: bool = Field(description='
|
|
99
|
+
ForeceStop: bool = Field(description='Is forced shutdown required', default=False),
|
|
100
100
|
):
|
|
101
101
|
"""批量停止ECS实例,适用于需要同时管理和停止多台ECS实例的场景。"""
|
|
102
102
|
|
|
@@ -117,7 +117,7 @@ def StopInstances(
|
|
|
117
117
|
def RebootInstances(
|
|
118
118
|
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
119
119
|
InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
|
|
120
|
-
ForeceStop: bool = Field(description='
|
|
120
|
+
ForeceStop: bool = Field(description='Is forced shutdown required', default=False),
|
|
121
121
|
):
|
|
122
122
|
"""批量重启ECS实例,适用于需要同时管理和重启多台ECS实例的场景。"""
|
|
123
123
|
|
|
@@ -137,12 +137,12 @@ def RebootInstances(
|
|
|
137
137
|
@tools.append
|
|
138
138
|
def RunInstances(
|
|
139
139
|
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
140
|
-
ImageId: str = Field(description='
|
|
141
|
-
InstanceType: str = Field(description='
|
|
142
|
-
SecurityGroupId: str = Field(description='
|
|
143
|
-
VSwitchId: str = Field(description='
|
|
144
|
-
Amount: int = Field(description='
|
|
145
|
-
InstanceName: str = Field(description='
|
|
140
|
+
ImageId: str = Field(description='Image ID'),
|
|
141
|
+
InstanceType: str = Field(description='Instance Type'),
|
|
142
|
+
SecurityGroupId: str = Field(description='SecurityGroup ID'),
|
|
143
|
+
VSwitchId: str = Field(description='VSwitch ID'),
|
|
144
|
+
Amount: int = Field(description='Number of ECS instances', default=1),
|
|
145
|
+
InstanceName: str = Field(description='Instance Name', default=''),
|
|
146
146
|
):
|
|
147
147
|
"""批量创建ECS实例,适用于需要同时创建多台ECS实例的场景,例如应用部署和高可用性场景。"""
|
|
148
148
|
|
|
@@ -161,7 +161,7 @@ def RunInstances(
|
|
|
161
161
|
def ResetPassword(
|
|
162
162
|
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
163
163
|
InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
|
|
164
|
-
Password: str = Field(description='ECS
|
|
164
|
+
Password: str = Field(description='The password of the ECS instance must be 8-30 characters and must contain only the following characters: lowercase letters, uppercase letters, numbers, and special characters only.()~!@#$%^&*-_+=(40:<>,?/'),
|
|
165
165
|
):
|
|
166
166
|
"""批量修改ECS实例的密码,请注意,本操作将会重启ECS实例"""
|
|
167
167
|
parameters = {
|
|
@@ -180,7 +180,7 @@ def ResetPassword(
|
|
|
180
180
|
def ReplaceSystemDisk(
|
|
181
181
|
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
182
182
|
InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
|
|
183
|
-
ImageId: str = Field(description='
|
|
183
|
+
ImageId: str = Field(description='Image ID')
|
|
184
184
|
):
|
|
185
185
|
"""批量替换ECS实例的系统盘,更换操作系统"""
|
|
186
186
|
parameters = {
|
|
@@ -194,3 +194,61 @@ def ReplaceSystemDisk(
|
|
|
194
194
|
'imageId': ImageId
|
|
195
195
|
}
|
|
196
196
|
return _start_execution_sync(region_id=RegionId, template_name='ACS-ECS-BulkyReplaceSystemDisk', parameters=parameters)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
@tools.append
|
|
200
|
+
def StartRDSInstances(
|
|
201
|
+
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
202
|
+
InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
|
|
203
|
+
):
|
|
204
|
+
"""批量启动RDS实例,适用于需要同时管理和启动多台RDS实例的场景,例如应用部署和高可用性场景。"""
|
|
205
|
+
|
|
206
|
+
parameters = {
|
|
207
|
+
'regionId': RegionId,
|
|
208
|
+
'resourceType': 'ALIYUN::RDS::Instance',
|
|
209
|
+
'targets': {
|
|
210
|
+
'ResourceIds': InstanceIds,
|
|
211
|
+
'RegionId': RegionId,
|
|
212
|
+
'Type': 'ResourceIds'
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return _start_execution_sync(region_id=RegionId, template_name='ACS-RDS-BulkyStartInstances', parameters=parameters)
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
@tools.append
|
|
219
|
+
def StopRDSInstances(
|
|
220
|
+
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
221
|
+
InstanceIds: List[str] = Field(description='AlibabaCloud RDS instance ID List')
|
|
222
|
+
):
|
|
223
|
+
"""批量停止RDS实例,适用于需要同时管理和停止多台RDS实例的场景。"""
|
|
224
|
+
|
|
225
|
+
parameters = {
|
|
226
|
+
'regionId': RegionId,
|
|
227
|
+
'resourceType': 'ALIYUN::RDS::Instance',
|
|
228
|
+
'targets': {
|
|
229
|
+
'ResourceIds': InstanceIds,
|
|
230
|
+
'RegionId': RegionId,
|
|
231
|
+
'Type': 'ResourceIds'
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return _start_execution_sync(region_id=RegionId, template_name='ACS-RDS-BulkyStopInstances', parameters=parameters)
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
@tools.append
|
|
238
|
+
def RebootRDSInstances(
|
|
239
|
+
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
240
|
+
InstanceIds: List[str] = Field(description='AlibabaCloud RDS instance ID List')
|
|
241
|
+
):
|
|
242
|
+
"""批量重启RDS实例,适用于需要同时管理和重启多台RDS实例的场景。"""
|
|
243
|
+
|
|
244
|
+
parameters = {
|
|
245
|
+
'regionId': RegionId,
|
|
246
|
+
'resourceType': 'ALIYUN::RDS::Instance',
|
|
247
|
+
'targets': {
|
|
248
|
+
'ResourceIds': InstanceIds,
|
|
249
|
+
'RegionId': RegionId,
|
|
250
|
+
'Type': 'ResourceIds'
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return _start_execution_sync(region_id=RegionId, template_name='ACS-RDS-BulkyRestartInstances',
|
|
254
|
+
parameters=parameters)
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# oss_tools.py
|
|
2
|
+
import os
|
|
3
|
+
import alibabacloud_oss_v2 as oss
|
|
4
|
+
|
|
5
|
+
from pydantic import Field
|
|
6
|
+
from alibabacloud_oss_v2 import Credentials
|
|
7
|
+
from alibabacloud_oss_v2.credentials import EnvironmentVariableCredentialsProvider
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
tools = []
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CredentialsProvider(EnvironmentVariableCredentialsProvider):
|
|
14
|
+
def __init__(self) -> None:
|
|
15
|
+
super().__init__()
|
|
16
|
+
access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
|
|
17
|
+
access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
|
|
18
|
+
session_token = os.getenv('ALIBABA_CLOUD_SESSION_TOKEN', None)
|
|
19
|
+
|
|
20
|
+
self._credentials = Credentials(
|
|
21
|
+
access_key_id, access_key_secret, session_token)
|
|
22
|
+
|
|
23
|
+
def get_credentials(self) -> Credentials:
|
|
24
|
+
return self._credentials
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def create_client(region_id: str) -> oss.Client:
|
|
28
|
+
credentials_provider = CredentialsProvider()
|
|
29
|
+
cfg = oss.config.load_default()
|
|
30
|
+
cfg.credentials_provider = credentials_provider
|
|
31
|
+
cfg.region = region_id
|
|
32
|
+
return oss.Client(cfg)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@tools.append
|
|
36
|
+
def ListBuckets(
|
|
37
|
+
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
38
|
+
Prefix: str = Field(description='AlibabaCloud OSS Bucket Name prefix', default=None)
|
|
39
|
+
):
|
|
40
|
+
"""列出指定区域的所有OSS存储空间。"""
|
|
41
|
+
client = create_client(region_id=RegionId)
|
|
42
|
+
paginator = client.list_buckets_paginator()
|
|
43
|
+
results = []
|
|
44
|
+
for page in paginator.iter_page(oss.ListBucketsRequest(prefix=Prefix)):
|
|
45
|
+
for bucket in page.buckets:
|
|
46
|
+
results.append(bucket.__str__())
|
|
47
|
+
return results
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@tools.append
|
|
51
|
+
def ListObject(
|
|
52
|
+
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
53
|
+
BucketName: str = Field(description='AlibabaCloud OSS Bucket Name'),
|
|
54
|
+
Prefix: str = Field(description='AlibabaCloud OSS Bucket Name prefix', default=None)
|
|
55
|
+
):
|
|
56
|
+
"""获取指定OSS存储空间中的所有文件信息。"""
|
|
57
|
+
if not BucketName:
|
|
58
|
+
raise ValueError("Bucket name is required")
|
|
59
|
+
client = create_client(region_id=RegionId)
|
|
60
|
+
paginator = client.list_objects_v2_paginator()
|
|
61
|
+
results = []
|
|
62
|
+
for page in paginator.iter_page(oss.ListObjectsV2Request(
|
|
63
|
+
bucket=BucketName,
|
|
64
|
+
prefix=Prefix
|
|
65
|
+
)):
|
|
66
|
+
for object in page.contents:
|
|
67
|
+
results.append(object.__str__())
|
|
68
|
+
return results
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@tools.append
|
|
72
|
+
def PutBucket(
|
|
73
|
+
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
74
|
+
BucketName: str = Field(description='AlibabaCloud OSS Bucket Name'),
|
|
75
|
+
StorageClass: str = Field(description='The Storage Type of AlibabaCloud OSS Bucket, The value range is as follows: '
|
|
76
|
+
'Standard (default): standard storage, '
|
|
77
|
+
'IA: infrequent access, Archive: archive storage, '
|
|
78
|
+
'ColdArchive: cold archive storage, '
|
|
79
|
+
'DeepColdArchive: deep cold archive storage', default='Standard'),
|
|
80
|
+
DataRedundancyType: str = Field(description='The data disaster recovery type of AlibabaCloud OSS Bucket, '
|
|
81
|
+
'LRS (default): Locally redundant LRS, which stores your data '
|
|
82
|
+
'redundantly on different storage devices in the same availability zone. '
|
|
83
|
+
'ZRS: Intra-city redundant ZRS, which uses a multi-availability zone '
|
|
84
|
+
'(AZ) mechanism to store your data redundantly in three availability '
|
|
85
|
+
'zones in the same region.', default='LRS')
|
|
86
|
+
):
|
|
87
|
+
"""创建一个新的OSS存储空间。"""
|
|
88
|
+
client = create_client(region_id=RegionId)
|
|
89
|
+
result = client.put_bucket(oss.PutBucketRequest(
|
|
90
|
+
bucket=BucketName,
|
|
91
|
+
create_bucket_configuration=oss.CreateBucketConfiguration(
|
|
92
|
+
storage_class=StorageClass,
|
|
93
|
+
data_redundancy_type=DataRedundancyType
|
|
94
|
+
)
|
|
95
|
+
))
|
|
96
|
+
return result.__str__()
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
@tools.append
|
|
100
|
+
def DeleteBucket(
|
|
101
|
+
RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
|
|
102
|
+
BucketName: str = Field(description='AlibabaCloud OSS Bucket Name')
|
|
103
|
+
):
|
|
104
|
+
"""删除指定的OSS存储空间。"""
|
|
105
|
+
client = create_client(region_id=RegionId)
|
|
106
|
+
result = client.delete_bucket(oss.DeleteBucketRequest(bucket=BucketName))
|
|
107
|
+
return result.__str__()
|
|
@@ -17,6 +17,7 @@ from alibaba_cloud_ops_mcp_server.config import config
|
|
|
17
17
|
|
|
18
18
|
from alibaba_cloud_ops_mcp_server import oos_tools
|
|
19
19
|
from alibaba_cloud_ops_mcp_server import cms_tools
|
|
20
|
+
from alibaba_cloud_ops_mcp_server import oss_tools
|
|
20
21
|
|
|
21
22
|
logger = logging.getLogger(__name__)
|
|
22
23
|
|
|
@@ -184,6 +185,8 @@ def main(transport: str):
|
|
|
184
185
|
mcp.add_tool(tool)
|
|
185
186
|
for tool in cms_tools.tools:
|
|
186
187
|
mcp.add_tool(tool)
|
|
188
|
+
for tool in oss_tools.tools:
|
|
189
|
+
mcp.add_tool(tool)
|
|
187
190
|
for service_code, apis in config.items():
|
|
188
191
|
for api_name in apis:
|
|
189
192
|
create_and_decorate_tool(mcp, service_code, api_name)
|
|
@@ -97,6 +97,29 @@ wheels = [
|
|
|
97
97
|
{ url = "https://files.pythonhosted.org/packages/ec/6a/bc7e17a3e87a2985d3e8f4da4cd0f481060eb78fb08596c42be62c90a4d9/aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5", size = 7597 },
|
|
98
98
|
]
|
|
99
99
|
|
|
100
|
+
[[package]]
|
|
101
|
+
name = "alibaba-cloud-ops-mcp-server"
|
|
102
|
+
version = "0.7.3"
|
|
103
|
+
source = { editable = "." }
|
|
104
|
+
dependencies = [
|
|
105
|
+
{ name = "alibabacloud-cms20190101" },
|
|
106
|
+
{ name = "alibabacloud-ecs20140526" },
|
|
107
|
+
{ name = "alibabacloud-oos20190601" },
|
|
108
|
+
{ name = "alibabacloud-oss-v2" },
|
|
109
|
+
{ name = "click" },
|
|
110
|
+
{ name = "mcp", extra = ["cli"] },
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
[package.metadata]
|
|
114
|
+
requires-dist = [
|
|
115
|
+
{ name = "alibabacloud-cms20190101", specifier = ">=3.1.4" },
|
|
116
|
+
{ name = "alibabacloud-ecs20140526", specifier = ">=6.1.0" },
|
|
117
|
+
{ name = "alibabacloud-oos20190601", specifier = ">=3.4.1" },
|
|
118
|
+
{ name = "alibabacloud-oss-v2", specifier = ">=1.1.0" },
|
|
119
|
+
{ name = "click", specifier = ">=8.1.8" },
|
|
120
|
+
{ name = "mcp", extras = ["cli"], specifier = ">=1.6.0" },
|
|
121
|
+
]
|
|
122
|
+
|
|
100
123
|
[[package]]
|
|
101
124
|
name = "alibabacloud-cms20190101"
|
|
102
125
|
version = "3.1.4"
|
|
@@ -163,27 +186,6 @@ dependencies = [
|
|
|
163
186
|
]
|
|
164
187
|
sdist = { url = "https://files.pythonhosted.org/packages/ab/98/d7111245f17935bf72ee9bea60bbbeff2bc42cdfe24d2544db52bc517e1a/alibabacloud_gateway_spi-0.0.3.tar.gz", hash = "sha256:10d1c53a3fc5f87915fbd6b4985b98338a776e9b44a0263f56643c5048223b8b", size = 4249 }
|
|
165
188
|
|
|
166
|
-
[[package]]
|
|
167
|
-
name = "alibaba-cloud-ops-mcp-server"
|
|
168
|
-
version = "0.7.0"
|
|
169
|
-
source = { editable = "." }
|
|
170
|
-
dependencies = [
|
|
171
|
-
{ name = "alibabacloud-cms20190101" },
|
|
172
|
-
{ name = "alibabacloud-ecs20140526" },
|
|
173
|
-
{ name = "alibabacloud-oos20190601" },
|
|
174
|
-
{ name = "click" },
|
|
175
|
-
{ name = "mcp", extra = ["cli"] },
|
|
176
|
-
]
|
|
177
|
-
|
|
178
|
-
[package.metadata]
|
|
179
|
-
requires-dist = [
|
|
180
|
-
{ name = "alibabacloud-cms20190101", specifier = ">=3.1.4" },
|
|
181
|
-
{ name = "alibabacloud-ecs20140526", specifier = ">=6.1.0" },
|
|
182
|
-
{ name = "alibabacloud-oos20190601", specifier = ">=3.4.1" },
|
|
183
|
-
{ name = "click", specifier = ">=8.1.8" },
|
|
184
|
-
{ name = "mcp", extras = ["cli"], specifier = ">=1.6.0" },
|
|
185
|
-
]
|
|
186
|
-
|
|
187
189
|
[[package]]
|
|
188
190
|
name = "alibabacloud-oos20190601"
|
|
189
191
|
version = "3.4.1"
|
|
@@ -209,6 +211,17 @@ dependencies = [
|
|
|
209
211
|
]
|
|
210
212
|
sdist = { url = "https://files.pythonhosted.org/packages/f6/50/5f41ab550d7874c623f6e992758429802c4b52a6804db437017e5387de33/alibabacloud_openapi_util-0.2.2.tar.gz", hash = "sha256:ebbc3906f554cb4bf8f513e43e8a33e8b6a3d4a0ef13617a0e14c3dda8ef52a8", size = 7201 }
|
|
211
213
|
|
|
214
|
+
[[package]]
|
|
215
|
+
name = "alibabacloud-oss-v2"
|
|
216
|
+
version = "1.1.0"
|
|
217
|
+
source = { registry = "https://pypi.org/simple" }
|
|
218
|
+
dependencies = [
|
|
219
|
+
{ name = "crcmod-plus" },
|
|
220
|
+
{ name = "pycryptodome" },
|
|
221
|
+
{ name = "requests" },
|
|
222
|
+
]
|
|
223
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b3/04/2d70ca3b95f6b2321d877a7b5b8ed88d81167ae442755ba4db25b80fd559/alibabacloud-oss-v2-1.1.0.tar.gz", hash = "sha256:5d1a1e9f9e0eefb7b4a33eabb3e91050c05fc0de63a953f2a0bb3605faa80b2b", size = 149409 }
|
|
224
|
+
|
|
212
225
|
[[package]]
|
|
213
226
|
name = "alibabacloud-tea"
|
|
214
227
|
version = "0.4.3"
|
|
@@ -417,6 +430,24 @@ wheels = [
|
|
|
417
430
|
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
|
|
418
431
|
]
|
|
419
432
|
|
|
433
|
+
[[package]]
|
|
434
|
+
name = "crcmod-plus"
|
|
435
|
+
version = "2.1.0"
|
|
436
|
+
source = { registry = "https://pypi.org/simple" }
|
|
437
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b1/4f/b899763daf22f9edd7311c204340b80aa8a24752fcd4b3b5b012730dbb5e/crcmod-plus-2.1.0.tar.gz", hash = "sha256:127b80e1fce7cc52ed6da5e4cb74e48cb29616ee90924f444c73d9480f356158", size = 22217 }
|
|
438
|
+
wheels = [
|
|
439
|
+
{ url = "https://files.pythonhosted.org/packages/c0/78/dc6c9dbc66056d9ddc3468b57a3e84f379cd4725b1eb7713955ba02a95f7/crcmod_plus-2.1.0-cp311-abi3-macosx_10_9_x86_64.whl", hash = "sha256:02599da985cf311aa1ab85628d2a75b7398140f04ab787d724c87ab324394f06", size = 20470 },
|
|
440
|
+
{ url = "https://files.pythonhosted.org/packages/ad/a2/a863e358db48b62a531ff588a9dc8cf2d4ab4354d3b7b66509c86906b39b/crcmod_plus-2.1.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:214a23e97b2eb899e261c354420caaa278e57e5ca9a13d0f7c20259ca9504940", size = 20238 },
|
|
441
|
+
{ url = "https://files.pythonhosted.org/packages/16/c2/969b18efec0e2f223da81ba997a21a577413c644aefabbc04812955ce805/crcmod_plus-2.1.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:236688536040d4ba326381bd539c17af1067d2618decffd53dad1775abd55153", size = 27795 },
|
|
442
|
+
{ url = "https://files.pythonhosted.org/packages/87/9a/06dca027d4816f50dfa456e2cfcb3cca469afdfcb6f9fa8e9996129a5df3/crcmod_plus-2.1.0-cp311-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96301a0bd3f87c640f66fec3e8b0917552e0d7aca2bdab46bdd045aedd585277", size = 26981 },
|
|
443
|
+
{ url = "https://files.pythonhosted.org/packages/23/99/32e16945f8babec3750a21da64a61b1c087bd918f19796382140e389a929/crcmod_plus-2.1.0-cp311-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:495cd1d136e5baaa554c8198fe716b46accf5cb393f89bf63c53cb3677517f22", size = 27694 },
|
|
444
|
+
{ url = "https://files.pythonhosted.org/packages/8c/58/a4478b80293465d93f09905513a65b3c62238389eebdbd0b173fa9c88508/crcmod_plus-2.1.0-cp311-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3bd2eb8abc3028937f35d69147154dab48885801e54864419c0c48ccb9db428b", size = 29586 },
|
|
445
|
+
{ url = "https://files.pythonhosted.org/packages/8b/ea/f40082b6b25ff95f7ef2e63114307388349a62d67038e1cdd0d1fda2635c/crcmod_plus-2.1.0-cp311-abi3-musllinux_1_1_i686.whl", hash = "sha256:8c1494721395ab044893fc383233d3c0f0312cc59345ae75c28a30cd6f24a43a", size = 29648 },
|
|
446
|
+
{ url = "https://files.pythonhosted.org/packages/89/4d/524a7c5ddfb0fd1caa6314e8eae714cc1851ec643a32543c5e72ed00dcb7/crcmod_plus-2.1.0-cp311-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0617966720a323ea920c00d0cbdbc5dcf67c33414ea0d0062d4bdf77ab593338", size = 30003 },
|
|
447
|
+
{ url = "https://files.pythonhosted.org/packages/6d/24/2d259e255f550f740779c3ee2d36ecf58cb1ee6ccd063a8fd621eeac705b/crcmod_plus-2.1.0-cp311-abi3-win32.whl", hash = "sha256:8ed10c5de2d804bac5366ace0c37a9c465c1409d6d93799e5f3deb1206940544", size = 22679 },
|
|
448
|
+
{ url = "https://files.pythonhosted.org/packages/e2/5b/8b8f26cd2a0a0285c1457fc4577eea1cdbd3dde56c8989fe445aed7cf869/crcmod_plus-2.1.0-cp311-abi3-win_amd64.whl", hash = "sha256:8d2eb27d791dfd4bd35cccd2c2e963c73dc9bac29dba9f6a7376cf4f1033d0a2", size = 23257 },
|
|
449
|
+
]
|
|
450
|
+
|
|
420
451
|
[[package]]
|
|
421
452
|
name = "cryptography"
|
|
422
453
|
version = "44.0.2"
|
|
@@ -770,6 +801,24 @@ wheels = [
|
|
|
770
801
|
{ url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 },
|
|
771
802
|
]
|
|
772
803
|
|
|
804
|
+
[[package]]
|
|
805
|
+
name = "pycryptodome"
|
|
806
|
+
version = "3.22.0"
|
|
807
|
+
source = { registry = "https://pypi.org/simple" }
|
|
808
|
+
sdist = { url = "https://files.pythonhosted.org/packages/44/e6/099310419df5ada522ff34ffc2f1a48a11b37fc6a76f51a6854c182dbd3e/pycryptodome-3.22.0.tar.gz", hash = "sha256:fd7ab568b3ad7b77c908d7c3f7e167ec5a8f035c64ff74f10d47a4edd043d723", size = 4917300 }
|
|
809
|
+
wheels = [
|
|
810
|
+
{ url = "https://files.pythonhosted.org/packages/1f/65/a05831c3e4bcd1bf6c2a034e399f74b3d6f30bb4e37e36b9c310c09dc8c0/pycryptodome-3.22.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:009e1c80eea42401a5bd5983c4bab8d516aef22e014a4705622e24e6d9d703c6", size = 2490637 },
|
|
811
|
+
{ url = "https://files.pythonhosted.org/packages/5c/76/ff3c2e7a60d17c080c4c6120ebaf60f38717cd387e77f84da4dcf7f64ff0/pycryptodome-3.22.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3b76fa80daeff9519d7e9f6d9e40708f2fce36b9295a847f00624a08293f4f00", size = 1635372 },
|
|
812
|
+
{ url = "https://files.pythonhosted.org/packages/cc/7f/cc5d6da0dbc36acd978d80a72b228e33aadaec9c4f91c93221166d8bdc05/pycryptodome-3.22.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a31fa5914b255ab62aac9265654292ce0404f6b66540a065f538466474baedbc", size = 2177456 },
|
|
813
|
+
{ url = "https://files.pythonhosted.org/packages/92/65/35f5063e68790602d892ad36e35ac723147232a9084d1999630045c34593/pycryptodome-3.22.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0092fd476701eeeb04df5cc509d8b739fa381583cda6a46ff0a60639b7cd70d", size = 2263744 },
|
|
814
|
+
{ url = "https://files.pythonhosted.org/packages/cc/67/46acdd35b1081c3dbc72dc466b1b95b80d2f64cad3520f994a9b6c5c7d00/pycryptodome-3.22.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18d5b0ddc7cf69231736d778bd3ae2b3efb681ae33b64b0c92fb4626bb48bb89", size = 2303356 },
|
|
815
|
+
{ url = "https://files.pythonhosted.org/packages/3d/f9/a4f8a83384626098e3f55664519bec113002b9ef751887086ae63a53135a/pycryptodome-3.22.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f6cf6aa36fcf463e622d2165a5ad9963b2762bebae2f632d719dfb8544903cf5", size = 2176714 },
|
|
816
|
+
{ url = "https://files.pythonhosted.org/packages/88/65/e5f8c3a885f70a6e05c84844cd5542120576f4369158946e8cfc623a464d/pycryptodome-3.22.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:aec7b40a7ea5af7c40f8837adf20a137d5e11a6eb202cde7e588a48fb2d871a8", size = 2337329 },
|
|
817
|
+
{ url = "https://files.pythonhosted.org/packages/b8/2a/25e0be2b509c28375c7f75c7e8d8d060773f2cce4856a1654276e3202339/pycryptodome-3.22.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d21c1eda2f42211f18a25db4eaf8056c94a8563cd39da3683f89fe0d881fb772", size = 2262255 },
|
|
818
|
+
{ url = "https://files.pythonhosted.org/packages/41/58/60917bc4bbd91712e53ce04daf237a74a0ad731383a01288130672994328/pycryptodome-3.22.0-cp37-abi3-win32.whl", hash = "sha256:f02baa9f5e35934c6e8dcec91fcde96612bdefef6e442813b8ea34e82c84bbfb", size = 1763403 },
|
|
819
|
+
{ url = "https://files.pythonhosted.org/packages/55/f4/244c621afcf7867e23f63cfd7a9630f14cfe946c9be7e566af6c3915bcde/pycryptodome-3.22.0-cp37-abi3-win_amd64.whl", hash = "sha256:d086aed307e96d40c23c42418cbbca22ecc0ab4a8a0e24f87932eeab26c08627", size = 1794568 },
|
|
820
|
+
]
|
|
821
|
+
|
|
773
822
|
[[package]]
|
|
774
823
|
name = "pydantic"
|
|
775
824
|
version = "2.11.3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|