alibaba-cloud-ops-mcp-server 0.8.5__py3-none-any.whl → 0.8.7__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.
@@ -11,7 +11,7 @@ logger = logging.getLogger(__name__)
11
11
  @click.command()
12
12
  @click.option(
13
13
  "--transport",
14
- type=click.Choice(["stdio", "sse"]),
14
+ type=click.Choice(["stdio", "sse", "streamable-http"]),
15
15
  default="stdio",
16
16
  help="Transport type",
17
17
  )
@@ -90,14 +90,14 @@ def _create_function_schemas(service, api, api_meta):
90
90
  schemas[api]['RegionId'] = (
91
91
  str,
92
92
  field(
93
- default=None,
93
+ default='cn-hangzhou',
94
94
  metadata={'description': '地域ID', 'required': False}
95
95
  )
96
96
  )
97
97
  return schemas
98
98
 
99
99
 
100
- def _create_tool_function_with_signature(service: str, function_name: str, fields: dict, description: str):
100
+ def _create_tool_function_with_signature(service: str, api: str, fields: dict, description: str):
101
101
  """
102
102
  Dynamically creates a lambda function with a custom signature based on the provided fields.
103
103
  """
@@ -121,14 +121,14 @@ def _create_tool_function_with_signature(service: str, function_name: str, field
121
121
  defaults[name] = field_default
122
122
 
123
123
  signature = inspect.Signature(parameters)
124
-
124
+ function_name = f'{service.upper()}_{api}'
125
125
  def func_code(*args, **kwargs):
126
126
  bound_args = signature.bind(*args, **kwargs)
127
127
  bound_args.apply_defaults()
128
128
 
129
129
  return _tools_api_call(
130
130
  service=service,
131
- api=function_name,
131
+ api=api,
132
132
  parameters=bound_args.arguments,
133
133
  ctx=None
134
134
  )
@@ -154,7 +154,8 @@ def _create_and_decorate_tool(mcp: FastMCP, service: str, api: str):
154
154
  fields = _create_function_schemas(service, api, api_meta).get(api, {})
155
155
  description = api_meta.get('summary', '')
156
156
  dynamic_lambda = _create_tool_function_with_signature(service, api, fields, description)
157
- decorated_function = mcp.tool(name=api)(dynamic_lambda)
157
+ function_name = f'{service.upper()}_{api}'
158
+ decorated_function = mcp.tool(name=function_name)(dynamic_lambda)
158
159
 
159
160
  return decorated_function
160
161
 
@@ -36,7 +36,7 @@ def _get_cms_metric_data(region_id: str, instance_ids: List[str], metric_name: s
36
36
  return describe_metric_last_resp.body.datapoints
37
37
 
38
38
  @tools.append
39
- def GetCpuUsageData(
39
+ def CMS_GetCpuUsageData(
40
40
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
41
41
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
42
42
  ):
@@ -45,7 +45,7 @@ def GetCpuUsageData(
45
45
 
46
46
 
47
47
  @tools.append
48
- def GetCpuLoadavgData(
48
+ def CMS_GetCpuLoadavgData(
49
49
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
50
50
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
51
51
  ):
@@ -54,7 +54,7 @@ def GetCpuLoadavgData(
54
54
 
55
55
 
56
56
  @tools.append
57
- def GetCpuloadavg5mData(
57
+ def CMS_GetCpuloadavg5mData(
58
58
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
59
59
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
60
60
  ):
@@ -63,7 +63,7 @@ def GetCpuloadavg5mData(
63
63
 
64
64
 
65
65
  @tools.append
66
- def GetCpuloadavg15mData(
66
+ def CMS_GetCpuloadavg15mData(
67
67
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
68
68
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
69
69
  ):
@@ -71,7 +71,7 @@ def GetCpuloadavg15mData(
71
71
  return _get_cms_metric_data(RegionId, InstanceIds, 'load_15m')
72
72
 
73
73
  @tools.append
74
- def GetMemUsedData(
74
+ def CMS_GetMemUsedData(
75
75
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
76
76
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
77
77
  ):
@@ -80,7 +80,7 @@ def GetMemUsedData(
80
80
 
81
81
 
82
82
  @tools.append
83
- def GetMemUsageData(
83
+ def CMS_GetMemUsageData(
84
84
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
85
85
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
86
86
  ):
@@ -89,7 +89,7 @@ def GetMemUsageData(
89
89
 
90
90
 
91
91
  @tools.append
92
- def GetDiskUsageData(
92
+ def CMS_GetDiskUsageData(
93
93
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
94
94
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
95
95
  ):
@@ -98,7 +98,7 @@ def GetDiskUsageData(
98
98
 
99
99
 
100
100
  @tools.append
101
- def GetDiskTotalData(
101
+ def CMS_GetDiskTotalData(
102
102
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
103
103
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
104
104
  ):
@@ -107,7 +107,7 @@ def GetDiskTotalData(
107
107
 
108
108
 
109
109
  @tools.append
110
- def GetDiskUsedData(
110
+ def CMS_GetDiskUsedData(
111
111
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
112
112
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
113
113
  ):
@@ -46,7 +46,7 @@ def _start_execution_sync(region_id: str, template_name: str, parameters: dict):
46
46
  return list_executions_resp.body
47
47
  time.sleep(1)
48
48
  @tools.append
49
- def RunCommand(
49
+ def OOS_RunCommand(
50
50
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
51
51
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
52
52
  CommandType: str = Field(description='The type of command executed on the ECS instance, optional value:RunShellScript,RunPythonScript,RunPerlScript,RunBatScript,RunPowerShellScript', default='RunShellScript'),
@@ -73,7 +73,7 @@ def RunCommand(
73
73
 
74
74
 
75
75
  @tools.append
76
- def StartInstances(
76
+ def OOS_StartInstances(
77
77
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
78
78
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
79
79
  ):
@@ -92,7 +92,7 @@ def StartInstances(
92
92
 
93
93
 
94
94
  @tools.append
95
- def StopInstances(
95
+ def OOS_StopInstances(
96
96
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
97
97
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
98
98
  ForeceStop: bool = Field(description='Is forced shutdown required', default=False),
@@ -113,7 +113,7 @@ def StopInstances(
113
113
 
114
114
 
115
115
  @tools.append
116
- def RebootInstances(
116
+ def OOS_RebootInstances(
117
117
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
118
118
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
119
119
  ForeceStop: bool = Field(description='Is forced shutdown required', default=False),
@@ -134,7 +134,7 @@ def RebootInstances(
134
134
 
135
135
 
136
136
  @tools.append
137
- def RunInstances(
137
+ def OOS_RunInstances(
138
138
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
139
139
  ImageId: str = Field(description='Image ID'),
140
140
  InstanceType: str = Field(description='Instance Type'),
@@ -157,7 +157,7 @@ def RunInstances(
157
157
 
158
158
 
159
159
  @tools.append
160
- def ResetPassword(
160
+ def OOS_ResetPassword(
161
161
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
162
162
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
163
163
  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:<>,?/'),
@@ -176,7 +176,7 @@ def ResetPassword(
176
176
  return _start_execution_sync(region_id=RegionId, template_name='ACS-ECS-BulkyResetPassword', parameters=parameters)
177
177
 
178
178
  @tools.append
179
- def ReplaceSystemDisk(
179
+ def OOS_ReplaceSystemDisk(
180
180
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
181
181
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
182
182
  ImageId: str = Field(description='Image ID')
@@ -196,7 +196,7 @@ def ReplaceSystemDisk(
196
196
 
197
197
 
198
198
  @tools.append
199
- def StartRDSInstances(
199
+ def OOS_StartRDSInstances(
200
200
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
201
201
  InstanceIds: List[str] = Field(description='AlibabaCloud ECS instance ID List'),
202
202
  ):
@@ -215,7 +215,7 @@ def StartRDSInstances(
215
215
 
216
216
 
217
217
  @tools.append
218
- def StopRDSInstances(
218
+ def OOS_StopRDSInstances(
219
219
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
220
220
  InstanceIds: List[str] = Field(description='AlibabaCloud RDS instance ID List')
221
221
  ):
@@ -234,7 +234,7 @@ def StopRDSInstances(
234
234
 
235
235
 
236
236
  @tools.append
237
- def RebootRDSInstances(
237
+ def OOS_RebootRDSInstances(
238
238
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
239
239
  InstanceIds: List[str] = Field(description='AlibabaCloud RDS instance ID List')
240
240
  ):
@@ -35,7 +35,7 @@ def create_client(region_id: str) -> oss.Client:
35
35
 
36
36
 
37
37
  @tools.append
38
- def ListBuckets(
38
+ def OSS_ListBuckets(
39
39
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
40
40
  Prefix: str = Field(description='AlibabaCloud OSS Bucket Name prefix', default=None)
41
41
  ):
@@ -50,7 +50,7 @@ def ListBuckets(
50
50
 
51
51
 
52
52
  @tools.append
53
- def ListObjects(
53
+ def OSS_ListObjects(
54
54
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
55
55
  BucketName: str = Field(description='AlibabaCloud OSS Bucket Name'),
56
56
  Prefix: str = Field(description='AlibabaCloud OSS Bucket Name prefix', default=None)
@@ -71,7 +71,7 @@ def ListObjects(
71
71
 
72
72
 
73
73
  @tools.append
74
- def PutBucket(
74
+ def OSS_PutBucket(
75
75
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
76
76
  BucketName: str = Field(description='AlibabaCloud OSS Bucket Name'),
77
77
  StorageClass: str = Field(description='The Storage Type of AlibabaCloud OSS Bucket, The value range is as follows: '
@@ -99,7 +99,7 @@ def PutBucket(
99
99
 
100
100
 
101
101
  @tools.append
102
- def DeleteBucket(
102
+ def OSS_DeleteBucket(
103
103
  RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'),
104
104
  BucketName: str = Field(description='AlibabaCloud OSS Bucket Name')
105
105
  ):
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alibaba-cloud-ops-mcp-server
3
- Version: 0.8.5
3
+ Version: 0.8.7
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
7
7
  Requires-Python: >=3.10
8
8
  Requires-Dist: alibabacloud-cms20190101>=3.1.4
9
+ Requires-Dist: alibabacloud-credentials>=1.0.0
9
10
  Requires-Dist: alibabacloud-ecs20140526>=6.1.0
10
11
  Requires-Dist: alibabacloud-oos20190601>=3.4.1
11
12
  Requires-Dist: alibabacloud-oss-v2>=1.1.0
12
13
  Requires-Dist: click>=8.1.8
13
- Requires-Dist: mcp[cli]>=1.6.0
14
+ Requires-Dist: mcp[cli]>=1.9.0
14
15
  Description-Content-Type: text/markdown
15
16
 
16
17
  # Alibaba Cloud Ops MCP Server
@@ -1,17 +1,17 @@
1
1
  alibaba_cloud_ops_mcp_server/__init__.py,sha256=BaluUNyRz8Qw-X7Y0ywDezwbkqiSvWlSYn2452XeGcA,213
2
2
  alibaba_cloud_ops_mcp_server/config.py,sha256=Nq6AT8bqSVa6zu9xjInaSjFcxA-GC7MLlCsV1q53yO0,514
3
- alibaba_cloud_ops_mcp_server/server.py,sha256=23NqZsE8JFQm9xffK-w2aScRXAZNnhgLs1wPG9fzHyI,1032
3
+ alibaba_cloud_ops_mcp_server/server.py,sha256=WGaSZqKFKudqrHfpdBYyAx90dApoWADOwmFy_jgQmCQ,1051
4
4
  alibaba_cloud_ops_mcp_server/alibabacloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  alibaba_cloud_ops_mcp_server/alibabacloud/api_meta_client.py,sha256=inOmW1no1YsR6_ezOZfgJtzGKo5nRTDufkf2qUTuNOs,7605
6
6
  alibaba_cloud_ops_mcp_server/alibabacloud/exception.py,sha256=7PdhgqgXEGrTPL1cj98h9EH-RrM6-2TT89PDtcmlpmU,1230
7
7
  alibaba_cloud_ops_mcp_server/alibabacloud/utils.py,sha256=jWQtP59P4ejh7N6xiYSDq1WgCd3Les0aSZr2pLGzkls,299
8
8
  alibaba_cloud_ops_mcp_server/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- alibaba_cloud_ops_mcp_server/tools/api_tools.py,sha256=lydogpHEYgqzLAgUP4szBy-67z7lWXiqwUaTvt_IQVM,5807
10
- alibaba_cloud_ops_mcp_server/tools/cms_tools.py,sha256=t70H7MnYo0cuIY00_6V3cGz2btSRtJFm8qW8WWwzyCc,4155
11
- alibaba_cloud_ops_mcp_server/tools/oos_tools.py,sha256=-e7ikaf708vAueOUFoWp3xMbpaj6JUGaB1KbK-YniV8,10076
12
- alibaba_cloud_ops_mcp_server/tools/oss_tools.py,sha256=IJDcs4BvPgF5A85oBZJ5xrJDSim_fCzRaxnCHjd0hvw,4599
13
- alibaba_cloud_ops_mcp_server-0.8.5.dist-info/METADATA,sha256=OXzSM42BSBX5eh0BjtYhO7fCq9V0pbhLSR52WyS7BFE,5100
14
- alibaba_cloud_ops_mcp_server-0.8.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
- alibaba_cloud_ops_mcp_server-0.8.5.dist-info/entry_points.txt,sha256=ESGAWXKEp184forhs7VzTD4P1AUdZz6vCW6hRUKITGw,83
16
- alibaba_cloud_ops_mcp_server-0.8.5.dist-info/licenses/LICENSE,sha256=gQgVkp2ttRCjodiPpXZZR-d7JnrYIYNiHk1YDUYgpa4,11331
17
- alibaba_cloud_ops_mcp_server-0.8.5.dist-info/RECORD,,
9
+ alibaba_cloud_ops_mcp_server/tools/api_tools.py,sha256=uQ7dXGovPlw8FvUgIRAErsu4fySbM8bzf_8eQH8G7fM,5899
10
+ alibaba_cloud_ops_mcp_server/tools/cms_tools.py,sha256=GFSBDTddvQ7M9fDGm69jvH6Yt4nui5uOVjwD61CZKT4,4191
11
+ alibaba_cloud_ops_mcp_server/tools/oos_tools.py,sha256=l228yl_SGg_rNdrBSDeqWYI8ZE1XUAHhsPLArvfE4A8,10116
12
+ alibaba_cloud_ops_mcp_server/tools/oss_tools.py,sha256=c7D1fAjFBqHl0oMy0O6i7onoXeAN9cpdBdLtXKrxVQE,4615
13
+ alibaba_cloud_ops_mcp_server-0.8.7.dist-info/METADATA,sha256=lQLG53I8ePS2A5oSkpxOIgqbIBWxAtGzvzOTn1Y5aVI,5147
14
+ alibaba_cloud_ops_mcp_server-0.8.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
+ alibaba_cloud_ops_mcp_server-0.8.7.dist-info/entry_points.txt,sha256=ESGAWXKEp184forhs7VzTD4P1AUdZz6vCW6hRUKITGw,83
16
+ alibaba_cloud_ops_mcp_server-0.8.7.dist-info/licenses/LICENSE,sha256=gQgVkp2ttRCjodiPpXZZR-d7JnrYIYNiHk1YDUYgpa4,11331
17
+ alibaba_cloud_ops_mcp_server-0.8.7.dist-info/RECORD,,