alibaba-cloud-ops-mcp-server 0.9.8__tar.gz → 0.9.10__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.
Files changed (42) hide show
  1. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/PKG-INFO +1 -1
  2. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/pyproject.toml +1 -1
  3. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/tools/oos_tools.py +48 -1
  4. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/tools/test_oos_tools.py +18 -1
  5. alibaba_cloud_ops_mcp_server-0.9.10/uv.lock +1558 -0
  6. alibaba_cloud_ops_mcp_server-0.9.8/uv.lock +0 -1555
  7. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/.github/workflows/python-ci.yml +0 -0
  8. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/.gitignore +0 -0
  9. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/Dockerfile +0 -0
  10. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/LICENSE +0 -0
  11. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/README.md +0 -0
  12. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/README_mcp_args.md +0 -0
  13. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/README_zh.md +0 -0
  14. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/examples/openapi_mcp_quickstart/server.py +0 -0
  15. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/image/Alibaba-Cloud-Ops-MCP-User-Group-en.png +0 -0
  16. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/image/Alibaba-Cloud-Ops-MCP-User-Group-zh.png +0 -0
  17. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/image/alibaba-cloud.png +0 -0
  18. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/__init__.py +0 -0
  19. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/__init__.py +0 -0
  20. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/__main__.py +0 -0
  21. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/alibabacloud/__init__.py +0 -0
  22. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/alibabacloud/api_meta_client.py +0 -0
  23. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/alibabacloud/exception.py +0 -0
  24. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/alibabacloud/static/PROMPT_UNDERSTANDING.md +0 -0
  25. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/alibabacloud/static/__init__.py +0 -0
  26. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/alibabacloud/utils.py +0 -0
  27. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/config.py +0 -0
  28. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/server.py +0 -0
  29. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/settings.py +0 -0
  30. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/tools/__init__.py +0 -0
  31. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/tools/api_tools.py +0 -0
  32. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/tools/cms_tools.py +0 -0
  33. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/tools/common_api_tools.py +0 -0
  34. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/src/alibaba_cloud_ops_mcp_server/tools/oss_tools.py +0 -0
  35. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/alibabacloud/test_api_meta_client.py +0 -0
  36. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/alibabacloud/test_exception.py +0 -0
  37. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/alibabacloud/test_utils.py +0 -0
  38. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/test_init.py +0 -0
  39. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/test_server.py +0 -0
  40. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/tools/test_api_tools.py +0 -0
  41. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/tools/test_cms_tools.py +0 -0
  42. {alibaba_cloud_ops_mcp_server-0.9.8 → alibaba_cloud_ops_mcp_server-0.9.10}/tests/tools/test_oss_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alibaba-cloud-ops-mcp-server
3
- Version: 0.9.8
3
+ Version: 0.9.10
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "alibaba-cloud-ops-mcp-server"
3
- version = "0.9.8"
3
+ version = "0.9.10"
4
4
  description = "A MCP server for Alibaba Cloud"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -142,7 +142,20 @@ def OOS_RunInstances(
142
142
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
143
143
  InternetMaxBandwidthOut: int = Field(description='The maximum outbound bandwidth of the instance. Unit: Mbit/s. Valid values: 0 to 100. If you want to open the public network for the ECS instance, you need to set a value > 0', default=0),
144
144
  Amount: int = Field(description='Number of ECS instances', default=1),
145
- InstanceName: str = Field(description='Instance Name', default='')
145
+ InstanceName: str = Field(description='Instance Name', default=''),
146
+ SystemDiskCategory: str = Field(description='The category of the system disk. Valid values: cloud_efficiency, cloud_ssd, cloud_essd, cloud_auto, cloud, cloud_essd_entry', default='cloud_essd'),
147
+ SystemDiskSize: str = Field(description='The size of the system disk. Unit: GiB. Valid values: 20 to 500. Default value: 40 or the image size, whichever is greater', default=''),
148
+ SystemDiskName: str = Field(description='The name of the system disk', default=''),
149
+ SystemDiskDescription: str = Field(description='The description of the system disk', default=''),
150
+ SystemDiskPerformanceLevel: str = Field(description='The performance level of the ESSD used as the system disk. Valid values: PL0, PL1, PL2, PL3', default='PL1'),
151
+ PrivateIpAddress: str = Field(description='The private IP address of the instance. For VPC type ECS instances, the private IP address must be selected from the available IP range of the VSwitch', default=''),
152
+ SystemDiskAutoSnapshotPolicyId: str = Field(description='The ID of the automatic snapshot policy to apply to the system disk', default=''),
153
+ DataDiskParameters: str = Field(description='Data disk configuration in JSON format. Example: [{"Size":"100","DiskName":"data-disk-1","Description":"","Category":"cloud_essd","PerformanceLevel":"PL1","AutoSnapshotPolicyId":""}]', default=''),
154
+ Tags: list = Field(description='The tag of an ECS instance, for example: [{"Key":"oos","Value":"test"}]', default=[]),
155
+ ResourceGroupId: str = Field(description='Resource group ID', default=''),
156
+ Description: str = Field(description='The description of the ECS instances', default=''),
157
+ HostName: str = Field(description='The host name of the ECS instance', default=''),
158
+ ZoneId: str = Field(description='The ID of the zone where the ECS instances are deployed', default=''),
146
159
  ):
147
160
  """批量创建ECS实例,适用于需要同时创建多台ECS实例的场景,例如应用部署和高可用性场景。"""
148
161
 
@@ -156,6 +169,40 @@ def OOS_RunInstances(
156
169
  'amount': Amount,
157
170
  'instanceName': InstanceName
158
171
  }
172
+
173
+ if SystemDiskCategory:
174
+ parameters['systemDiskCategory'] = SystemDiskCategory
175
+ if SystemDiskSize:
176
+ parameters['systemDiskSize'] = SystemDiskSize
177
+ if SystemDiskName:
178
+ parameters['systemDiskName'] = SystemDiskName
179
+ if SystemDiskDescription:
180
+ parameters['systemDiskDescription'] = SystemDiskDescription
181
+ if SystemDiskPerformanceLevel:
182
+ parameters['systemDiskPerformanceLevel'] = SystemDiskPerformanceLevel
183
+ if PrivateIpAddress:
184
+ parameters['privateIpAddress'] = PrivateIpAddress
185
+ if SystemDiskAutoSnapshotPolicyId:
186
+ parameters['systemDiskAutoSnapshotPolicyId'] = SystemDiskAutoSnapshotPolicyId
187
+ if Tags:
188
+ parameters['tags'] = Tags
189
+ if ResourceGroupId:
190
+ parameters['resourceGroupId'] = ResourceGroupId
191
+ if Description:
192
+ parameters['description'] = Description
193
+ if HostName:
194
+ parameters['hostName'] = HostName
195
+ if ZoneId:
196
+ parameters['zoneId'] = ZoneId
197
+
198
+ if DataDiskParameters:
199
+ try:
200
+ data_disks = json.loads(DataDiskParameters) if isinstance(DataDiskParameters, str) else DataDiskParameters
201
+ if isinstance(data_disks, list) and len(data_disks) > 0:
202
+ parameters['dataDiskParameters'] = data_disks
203
+ except (json.JSONDecodeError, TypeError) as e:
204
+ pass
205
+
159
206
  return _start_execution_sync(region_id=RegionId, template_name='ACS-ECS-RunInstances', parameters=parameters)
160
207
 
161
208
 
@@ -54,7 +54,24 @@ def test_OOS_RebootInstances():
54
54
  @patch('alibaba_cloud_ops_mcp_server.tools.oos_tools.create_client', fake_client)
55
55
  def test_OOS_RunInstances():
56
56
  func = get_tool_func("OOS_RunInstances")
57
- result = func(RegionId='cn-test', ImageId='img', InstanceType='ecs.t1', SecurityGroupId='sg', VSwitchId='vsw', InternetMaxBandwidthOut=0, Amount=1, InstanceName='test')
57
+ result = func(
58
+ RegionId='cn-test',
59
+ ImageId='img',
60
+ InstanceType='ecs.t1',
61
+ SecurityGroupId='sg',
62
+ VSwitchId='vsw',
63
+ InternetMaxBandwidthOut=0,
64
+ Amount=1,
65
+ InstanceName='test',
66
+ SystemDiskCategory='',
67
+ SystemDiskSize='',
68
+ SystemDiskName='',
69
+ SystemDiskDescription='',
70
+ SystemDiskPerformanceLevel='1',
71
+ PrivateIpAddress='102',
72
+ SystemDiskAutoSnapshotPolicyId='1',
73
+ DataDiskParameters='[]'
74
+ )
58
75
  assert hasattr(result, 'executions')
59
76
 
60
77
  @patch('alibaba_cloud_ops_mcp_server.tools.oos_tools.create_client', fake_client)