alibaba-cloud-ops-mcp-server 0.7.3__py3-none-any.whl → 0.7.5__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.
- alibaba_cloud_ops_mcp_server/config.py +4 -1
- alibaba_cloud_ops_mcp_server/oos_tools.py +70 -12
- alibaba_cloud_ops_mcp_server/oss_tools.py +107 -0
- alibaba_cloud_ops_mcp_server/server.py +3 -0
- {alibaba_cloud_ops_mcp_server-0.7.3.dist-info → alibaba_cloud_ops_mcp_server-0.7.5.dist-info}/METADATA +12 -15
- alibaba_cloud_ops_mcp_server-0.7.5.dist-info/RECORD +12 -0
- alibaba_cloud_ops_mcp_server-0.7.3.dist-info/RECORD +0 -11
- {alibaba_cloud_ops_mcp_server-0.7.3.dist-info → alibaba_cloud_ops_mcp_server-0.7.5.dist-info}/WHEEL +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3.dist-info → alibaba_cloud_ops_mcp_server-0.7.5.dist-info}/entry_points.txt +0 -0
- {alibaba_cloud_ops_mcp_server-0.7.3.dist-info → alibaba_cloud_ops_mcp_server-0.7.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -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 ListObjects(
|
|
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)
|
|
@@ -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.5
|
|
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"
|
|
@@ -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
|
+
| | ListObjects | 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 |
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
alibaba_cloud_ops_mcp_server/__init__.py,sha256=BaluUNyRz8Qw-X7Y0ywDezwbkqiSvWlSYn2452XeGcA,213
|
|
2
|
+
alibaba_cloud_ops_mcp_server/api_meta_client.py,sha256=pxJztmkmcqqI3djECziAIMc3ZxsS8crqSc6AbneOX2I,7315
|
|
3
|
+
alibaba_cloud_ops_mcp_server/cms_tools.py,sha256=5IhPtkHSwqLsy7D3lGznovQ94e-XBy6HBE7qLDMoYaQ,4464
|
|
4
|
+
alibaba_cloud_ops_mcp_server/config.py,sha256=Nq6AT8bqSVa6zu9xjInaSjFcxA-GC7MLlCsV1q53yO0,514
|
|
5
|
+
alibaba_cloud_ops_mcp_server/oos_tools.py,sha256=NDu18_R3SqB-Fv1SpnljV0b2Py6G9HXcoqvbV0MWL7Y,10105
|
|
6
|
+
alibaba_cloud_ops_mcp_server/oss_tools.py,sha256=6d_vacAJllwkr74bsWgle8yMzqb_Xr1CPAIr_htFP-I,4451
|
|
7
|
+
alibaba_cloud_ops_mcp_server/server.py,sha256=9qk122yEAZgzJ9iBTBns90McguU4pQFIgjOPD1CzH8c,6723
|
|
8
|
+
alibaba_cloud_ops_mcp_server-0.7.5.dist-info/METADATA,sha256=k0CwST7Lkzm367bqEq1UlMpT8HzUyuvGHwftQv3kASI,3450
|
|
9
|
+
alibaba_cloud_ops_mcp_server-0.7.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
10
|
+
alibaba_cloud_ops_mcp_server-0.7.5.dist-info/entry_points.txt,sha256=ESGAWXKEp184forhs7VzTD4P1AUdZz6vCW6hRUKITGw,83
|
|
11
|
+
alibaba_cloud_ops_mcp_server-0.7.5.dist-info/licenses/LICENSE,sha256=gQgVkp2ttRCjodiPpXZZR-d7JnrYIYNiHk1YDUYgpa4,11331
|
|
12
|
+
alibaba_cloud_ops_mcp_server-0.7.5.dist-info/RECORD,,
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
alibaba_cloud_ops_mcp_server/__init__.py,sha256=BaluUNyRz8Qw-X7Y0ywDezwbkqiSvWlSYn2452XeGcA,213
|
|
2
|
-
alibaba_cloud_ops_mcp_server/api_meta_client.py,sha256=pxJztmkmcqqI3djECziAIMc3ZxsS8crqSc6AbneOX2I,7315
|
|
3
|
-
alibaba_cloud_ops_mcp_server/cms_tools.py,sha256=5IhPtkHSwqLsy7D3lGznovQ94e-XBy6HBE7qLDMoYaQ,4464
|
|
4
|
-
alibaba_cloud_ops_mcp_server/config.py,sha256=MJRa5MLJgftSBitrbzTX8fPAV3-7_7FVxNqPvQyJiac,463
|
|
5
|
-
alibaba_cloud_ops_mcp_server/oos_tools.py,sha256=zXniXIPjTKYYMaP2oS9KtuSAWeLixeGhjqIMNgR4Hqg,7864
|
|
6
|
-
alibaba_cloud_ops_mcp_server/server.py,sha256=MCXk-nVDEuSuTO9E3duRa_r77ALz0KoJzQI94eHCZVw,6612
|
|
7
|
-
alibaba_cloud_ops_mcp_server-0.7.3.dist-info/METADATA,sha256=Jj6menkyRV4-faFtwkDRGrdBVoB3HF-5_CPSqxm52w4,3341
|
|
8
|
-
alibaba_cloud_ops_mcp_server-0.7.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
9
|
-
alibaba_cloud_ops_mcp_server-0.7.3.dist-info/entry_points.txt,sha256=ESGAWXKEp184forhs7VzTD4P1AUdZz6vCW6hRUKITGw,83
|
|
10
|
-
alibaba_cloud_ops_mcp_server-0.7.3.dist-info/licenses/LICENSE,sha256=gQgVkp2ttRCjodiPpXZZR-d7JnrYIYNiHk1YDUYgpa4,11331
|
|
11
|
-
alibaba_cloud_ops_mcp_server-0.7.3.dist-info/RECORD,,
|
{alibaba_cloud_ops_mcp_server-0.7.3.dist-info → alibaba_cloud_ops_mcp_server-0.7.5.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|