DescribeInstances
Query and retrieve detailed information about instances on Alibaba Cloud MCP Server using parameters like RegionId, VpcId, or InstanceIds for targeted results.
Instructions
本接口支持根据不同请求条件查询实例列表,并关联查询实例的详细信息。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| AdditionalAttributes | No | 实例其他属性列表。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: array,参数示例:META_OPTIONS | |
| DeviceAvailable | No | >该参数正在邀测中,暂不支持使用。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:false | |
| DryRun | No | 是否只预检此次请求。取值范围: - true:发送检查请求,不会查询资源状况。检查项包括AccessKey是否有效、RAM用户的授权情况和是否填写了必需参数。如果检查不通过,则返回对应错误。如果检查通过,会返回错误码DryRunOperation。 - false:发送正常请求,通过检查后返回2XX HTTP状态码并直接查询资源状况。 默认值:false。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:false | |
| EipAddresses | No | 实例的弹性公网IP列表。当InstanceNetworkType=vpc时该参数生效,取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:["42.1.1.**", "42.1.2.**", … "42.1.10.**"] | |
| HpcClusterId | No | 实例所在的HPC集群ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:hpc-bp67acfmxazb4p**** | |
| HttpEndpoint | No | 是否启用实例元数据的访问通道。取值范围: - enabled:启用。 - disabled:禁用。 默认值:enabled。 >有关实例元数据的更多信息,请参见[实例元数据概述](~~49122~~)。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:enabled | |
| HttpPutResponseHopLimit | No | >该参数暂未开放使用。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:0 | |
| HttpTokens | No | 访问实例元数据时是否强制使用加固模式(IMDSv2)。取值范围: - optional:不强制使用。 - required:强制使用。设置该取值后,普通模式无法访问实例元数据。 默认值:optional。 >有关访问实例元数据模式的更多信息,请参见[实例元数据访问模式](~~150575~~)。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:optional | |
| ImageId | No | 镜像ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:m-bp67acfmxazb4p**** | |
| InnerIpAddresses | No | 经典网络类型实例的内网IP列表。当InstanceNetworkType=classic时生效,取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:["10.1.1.1", "10.1.2.1", … "10.1.10.1"] | |
| InstanceChargeType | No | 实例的计费方式。取值范围: - PostPaid:按量付费。 - PrePaid:包年包月。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:PostPaid | |
| InstanceIds | No | 实例ID。取值可以由多个实例ID组成一个JSON数组,最多支持100个ID,ID之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:["i-bp67acfmxazb4p****", "i-bp67acfmxazb4p****", … "i-bp67acfmxazb4p****"] | |
| InstanceName | No | 实例名称,支持使用通配符*进行模糊搜索。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:Test | |
| InstanceNetworkType | No | 实例网络类型。取值范围: - classic:经典网络。 - vpc:专有网络VPC。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:vpc | |
| InstanceType | No | 实例的规格。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:ecs.g5.large | |
| InstanceTypeFamily | No | 实例的规格族。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:ecs.g5 | |
| InternetChargeType | No | 公网带宽计费方式。取值范围: - PayByBandwidth:按固定带宽计费。 - PayByTraffic:按使用流量计费。 > **按使用流量计费**模式下的出入带宽峰值都是带宽上限,不作为业务承诺指标。当出现资源争抢时,带宽峰值可能会受到限制。如果您的业务需要有带宽的保障,请使用**按固定带宽计费**模式。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:PayByTraffic | |
| IoOptimized | No | 是否是I/O优化型实例。取值范围: - true:是。 - false:否。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:true | |
| Ipv6Address | No | 为弹性网卡指定的IPv6地址。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: array,参数示例: | |
| KeyPairName | No | 实例使用的SSH密钥对名称。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:KeyPairNameTest | |
| LockReason | No | 资源被锁定的原因。取值范围: - financial:因欠费被锁定。 - security:因安全原因被锁定。 - Recycling:抢占式实例的待释放锁定状态。 - dedicatedhostfinancial:因为专有宿主机欠费导致ECS实例被锁定。 - refunded:因退款被锁定。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:security | |
| MaxResults | No | 分页查询时每页行数。最大值为100。 默认值: - 当不设置值或设置的值小于10时,默认值为10。 - 当设置的值大于100时,默认值为100。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:10 | |
| NeedSaleCycle | No | >该参数正在邀测中,暂不支持使用。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:false | |
| NextToken | No | 查询凭证(Token),取值为上一次API调用返回的`NextToken`参数值。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:caeba0bbb2be03f84eb48b699f0a4883 | |
| PageNumber | No | > 该参数即将下线,推荐您使用NextToken与MaxResults完成分页查询操作。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:1 | |
| PageSize | No | > 该参数即将下线,推荐您使用NextToken与MaxResults完成分页查询操作。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:10 | |
| PrivateIpAddresses | No | VPC网络类型实例的私有IP。当InstanceNetworkType=vpc时生效,取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:["172.16.1.1", "172.16.2.1", … "172.16.10.1"] | |
| PublicIpAddresses | No | 实例的公网IP列表。取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:["42.1.1.**", "42.1.2.**", … "42.1.10.**"] | |
| RdmaIpAddresses | No | HPC实例的RDMA网络IP。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:10.10.10.102 | |
| RegionId | Yes | 实例所属的地域ID。您可以调用[DescribeRegions](~~25609~~)查看最新的阿里云地域列表。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:cn-hangzhou | |
| ResourceGroupId | No | 实例所在的企业资源组ID。使用该参数过滤资源时,资源数量不能超过1000个。 >不支持默认资源组过滤。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:rg-bp67acfmxazb4p**** | |
| SecurityGroupId | No | 实例所属的安全组。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:sg-bp67acfmxazb4p**** | |
| Status | No | 实例状态。取值范围: - Pending:创建中。 - Running:运行中。 - Starting:启动中。 - Stopping:停止中。 - Stopped:已停止。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:Running | |
| Tag | No | 标签列表。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: array,参数示例: | |
| VSwitchId | No | 交换机ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:vsw-bp67acfmxazb4p**** | |
| VpcId | No | 专有网络VPC ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:v-bp67acfmxazb4p**** | |
| ZoneId | No | 可用区ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:cn-hangzhou-g |
Input Schema (JSON Schema)
{
"properties": {
"AdditionalAttributes": {
"default": null,
"description": "实例其他属性列表。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: array,参数示例:META_OPTIONS",
"items": {},
"title": "Additionalattributes",
"type": "array"
},
"DeviceAvailable": {
"default": null,
"description": ">该参数正在邀测中,暂不支持使用。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:false",
"title": "Deviceavailable",
"type": "boolean"
},
"DryRun": {
"default": null,
"description": "是否只预检此次请求。取值范围:\n\n- true:发送检查请求,不会查询资源状况。检查项包括AccessKey是否有效、RAM用户的授权情况和是否填写了必需参数。如果检查不通过,则返回对应错误。如果检查通过,会返回错误码DryRunOperation。 \n- false:发送正常请求,通过检查后返回2XX HTTP状态码并直接查询资源状况。 \n\n默认值:false。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:false",
"title": "Dryrun",
"type": "boolean"
},
"EipAddresses": {
"default": null,
"description": "实例的弹性公网IP列表。当InstanceNetworkType=vpc时该参数生效,取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:[\"42.1.1.**\", \"42.1.2.**\", … \"42.1.10.**\"]",
"title": "Eipaddresses",
"type": "string"
},
"HpcClusterId": {
"default": null,
"description": "实例所在的HPC集群ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:hpc-bp67acfmxazb4p****",
"title": "Hpcclusterid",
"type": "string"
},
"HttpEndpoint": {
"default": null,
"description": "是否启用实例元数据的访问通道。取值范围:\n- enabled:启用。\n- disabled:禁用。\n\n默认值:enabled。\n>有关实例元数据的更多信息,请参见[实例元数据概述](~~49122~~)。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:enabled",
"title": "Httpendpoint",
"type": "string"
},
"HttpPutResponseHopLimit": {
"default": null,
"description": ">该参数暂未开放使用。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:0",
"title": "Httpputresponsehoplimit",
"type": "integer"
},
"HttpTokens": {
"default": null,
"description": "访问实例元数据时是否强制使用加固模式(IMDSv2)。取值范围:\n- optional:不强制使用。\n- required:强制使用。设置该取值后,普通模式无法访问实例元数据。\n\n默认值:optional。\n>有关访问实例元数据模式的更多信息,请参见[实例元数据访问模式](~~150575~~)。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:optional",
"title": "Httptokens",
"type": "string"
},
"ImageId": {
"default": null,
"description": "镜像ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:m-bp67acfmxazb4p****",
"title": "Imageid",
"type": "string"
},
"InnerIpAddresses": {
"default": null,
"description": "经典网络类型实例的内网IP列表。当InstanceNetworkType=classic时生效,取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:[\"10.1.1.1\", \"10.1.2.1\", … \"10.1.10.1\"]",
"title": "Inneripaddresses",
"type": "string"
},
"InstanceChargeType": {
"default": null,
"description": "实例的计费方式。取值范围: \n \n- PostPaid:按量付费。 \n- PrePaid:包年包月。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:PostPaid",
"title": "Instancechargetype",
"type": "string"
},
"InstanceIds": {
"default": null,
"description": "实例ID。取值可以由多个实例ID组成一个JSON数组,最多支持100个ID,ID之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:[\"i-bp67acfmxazb4p****\", \"i-bp67acfmxazb4p****\", … \"i-bp67acfmxazb4p****\"]",
"title": "Instanceids",
"type": "string"
},
"InstanceName": {
"default": null,
"description": "实例名称,支持使用通配符*进行模糊搜索。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:Test",
"title": "Instancename",
"type": "string"
},
"InstanceNetworkType": {
"default": null,
"description": "实例网络类型。取值范围:\n\n- classic:经典网络。\n- vpc:专有网络VPC。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:vpc",
"title": "Instancenetworktype",
"type": "string"
},
"InstanceType": {
"default": null,
"description": "实例的规格。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:ecs.g5.large",
"title": "Instancetype",
"type": "string"
},
"InstanceTypeFamily": {
"default": null,
"description": "实例的规格族。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:ecs.g5",
"title": "Instancetypefamily",
"type": "string"
},
"InternetChargeType": {
"default": null,
"description": "公网带宽计费方式。取值范围:\n\n- PayByBandwidth:按固定带宽计费。\n- PayByTraffic:按使用流量计费。\n\n> **按使用流量计费**模式下的出入带宽峰值都是带宽上限,不作为业务承诺指标。当出现资源争抢时,带宽峰值可能会受到限制。如果您的业务需要有带宽的保障,请使用**按固定带宽计费**模式。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:PayByTraffic",
"title": "Internetchargetype",
"type": "string"
},
"IoOptimized": {
"default": null,
"description": "是否是I/O优化型实例。取值范围:\n\n- true:是。\n- false:否。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:true",
"title": "Iooptimized",
"type": "boolean"
},
"Ipv6Address": {
"default": null,
"description": "为弹性网卡指定的IPv6地址。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: array,参数示例:",
"items": {},
"title": "Ipv6Address",
"type": "array"
},
"KeyPairName": {
"default": null,
"description": "实例使用的SSH密钥对名称。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:KeyPairNameTest",
"title": "Keypairname",
"type": "string"
},
"LockReason": {
"default": null,
"description": "资源被锁定的原因。取值范围:\n\n- financial:因欠费被锁定。\n\n- security:因安全原因被锁定。\n\n- Recycling:抢占式实例的待释放锁定状态。\n\n- dedicatedhostfinancial:因为专有宿主机欠费导致ECS实例被锁定。\n\n- refunded:因退款被锁定。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:security",
"title": "Lockreason",
"type": "string"
},
"MaxResults": {
"default": null,
"description": "分页查询时每页行数。最大值为100。\n\n默认值:\n\n- 当不设置值或设置的值小于10时,默认值为10。\n- 当设置的值大于100时,默认值为100。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:10",
"title": "Maxresults",
"type": "integer"
},
"NeedSaleCycle": {
"default": null,
"description": ">该参数正在邀测中,暂不支持使用。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: boolean,参数示例:false",
"title": "Needsalecycle",
"type": "boolean"
},
"NextToken": {
"default": null,
"description": "查询凭证(Token),取值为上一次API调用返回的`NextToken`参数值。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:caeba0bbb2be03f84eb48b699f0a4883",
"title": "Nexttoken",
"type": "string"
},
"PageNumber": {
"default": null,
"description": "> 该参数即将下线,推荐您使用NextToken与MaxResults完成分页查询操作。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:1",
"title": "Pagenumber",
"type": "integer"
},
"PageSize": {
"default": null,
"description": "> 该参数即将下线,推荐您使用NextToken与MaxResults完成分页查询操作。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: integer,参数示例:10",
"title": "Pagesize",
"type": "integer"
},
"PrivateIpAddresses": {
"default": null,
"description": "VPC网络类型实例的私有IP。当InstanceNetworkType=vpc时生效,取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:[\"172.16.1.1\", \"172.16.2.1\", … \"172.16.10.1\"]",
"title": "Privateipaddresses",
"type": "string"
},
"PublicIpAddresses": {
"default": null,
"description": "实例的公网IP列表。取值可以由多个IP组成一个JSON数组,最多支持100个IP,IP之间用半角逗号(,)隔开。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:[\"42.1.1.**\", \"42.1.2.**\", … \"42.1.10.**\"]",
"title": "Publicipaddresses",
"type": "string"
},
"RdmaIpAddresses": {
"default": null,
"description": "HPC实例的RDMA网络IP。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:10.10.10.102",
"title": "Rdmaipaddresses",
"type": "string"
},
"RegionId": {
"description": "实例所属的地域ID。您可以调用[DescribeRegions](~~25609~~)查看最新的阿里云地域列表。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:cn-hangzhou",
"title": "Regionid",
"type": "string"
},
"ResourceGroupId": {
"default": null,
"description": "实例所在的企业资源组ID。使用该参数过滤资源时,资源数量不能超过1000个。\n\n>不支持默认资源组过滤。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:rg-bp67acfmxazb4p****",
"title": "Resourcegroupid",
"type": "string"
},
"SecurityGroupId": {
"default": null,
"description": "实例所属的安全组。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:sg-bp67acfmxazb4p****",
"title": "Securitygroupid",
"type": "string"
},
"Status": {
"default": null,
"description": "实例状态。取值范围: \n\n- Pending:创建中。\n- Running:运行中。\n- Starting:启动中。\n- Stopping:停止中。\n- Stopped:已停止。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:Running",
"title": "Status",
"type": "string"
},
"Tag": {
"default": null,
"description": "标签列表。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: array,参数示例:",
"items": {},
"title": "Tag",
"type": "array"
},
"VSwitchId": {
"default": null,
"description": "交换机ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:vsw-bp67acfmxazb4p****",
"title": "Vswitchid",
"type": "string"
},
"VpcId": {
"default": null,
"description": "专有网络VPC ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:v-bp67acfmxazb4p****",
"title": "Vpcid",
"type": "string"
},
"ZoneId": {
"default": null,
"description": "可用区ID。 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: string,参数示例:cn-hangzhou-g",
"title": "Zoneid",
"type": "string"
}
},
"required": [
"RegionId"
],
"title": "DescribeInstancesArguments",
"type": "object"
}
Implementation Reference
- Core handler function that executes the actual Alibaba Cloud API call (e.g., for ECS.DescribeInstances) using dynamic meta data, client creation, and parameter processing.def _tools_api_call(service: str, api: str, parameters: dict, ctx: Context): service = service.lower() api_meta, _ = ApiMetaClient.get_api_meta(service, api) version = ApiMetaClient.get_service_version(service) method = 'POST' if api_meta.get('methods', [])[0] == 'post' else 'GET' path = api_meta.get('path', '/') style = ApiMetaClient.get_service_style(service) # Handling special parameter formats processed_parameters = parameters.copy() processed_parameters = {k: v for k, v in processed_parameters.items() if v is not None} if service == 'ecs': for param_name, param_value in parameters.items(): if param_name in ECS_LIST_PARAMETERS and isinstance(param_value, list): processed_parameters[param_name] = json.dumps(param_value) req = open_api_models.OpenApiRequest( query=OpenApiUtilClient.query(processed_parameters) ) params = open_api_models.Params( action=api, version=version, protocol='HTTPS', pathname=path, method=method, auth_type='AK', style=style, req_body_type='formData', body_type='json' ) logger.info(f'Call API Request: Service: {service} API: {api} Method: {method} Parameters: {processed_parameters}') client = create_client(service, processed_parameters.get('RegionId', 'cn-hangzhou')) runtime = util_models.RuntimeOptions() resp = client.call_api(params, req, runtime) logger.info(f'Call API Response: {resp}') return resp
- src/alibaba_cloud_ops_mcp_server/tools/api_tools.py:267-271 (registration)Registers dynamic MCP tools for specified services and APIs from config, including ECS_DESCRIBEINSTANCES for DescribeInstances.def create_api_tools(mcp: FastMCP, config:dict): for service_code, apis in config.items(): for api_name in apis: _create_and_decorate_tool(mcp, service_code, api_name)
- src/alibaba_cloud_ops_mcp_server/config.py:8-17 (registration)Configuration defining APIs per service; 'DescribeInstances' is listed under 'ecs', triggering its tool registration as ECS_DESCRIBEINSTANCES.'ecs': [ 'DescribeInstances', 'DescribeRegions', 'DescribeZones', 'DescribeAccountAttributes', 'DescribeAvailableResource', 'DescribeImages', 'DescribeSecurityGroups', 'DeleteInstances' ],
- src/alibaba_cloud_ops_mcp_server/server.py:88-88 (registration)Invokes API tool registration with config during server initialization, including DescribeInstances tool.api_tools.create_api_tools(mcp, config)
- Dynamically generates Pydantic schema for tool input parameters based on API metadata from ApiMetaClient.def _create_function_schemas(service, api, api_meta): schemas = {} schemas[api] = {} parameters = api_meta.get('parameters', []) required_params = [] optional_params = [] for parameter in parameters: name = parameter.get('name') # TODO 目前忽略了带'.'的参数 if '.' in name: continue schema = parameter.get('schema', '') required = schema.get('required', False) if required: required_params.append(parameter) else: optional_params.append(parameter) def process_parameter(parameter): name = parameter.get('name') schema = parameter.get('schema', '') description = schema.get('description', '') example = schema.get('example', '') type_ = schema.get('type', '') description = f'{description} 参数类型: {type_},参数示例:{example}' required = schema.get('required', False) if service.lower() == 'ecs' and name in ECS_LIST_PARAMETERS and type_ == 'string': python_type = list else: python_type = type_map.get(type_, str) field_info = ( python_type, field( default=None, metadata={'description': description, 'required': required} ) ) return name, field_info for parameter in required_params: name, field_info = process_parameter(parameter) schemas[api][name] = field_info for parameter in optional_params: name, field_info = process_parameter(parameter) schemas[api][name] = field_info if 'RegionId' not in schemas[api]: schemas[api]['RegionId'] = ( str, field( default='cn-hangzhou', metadata={'description': '地域ID', 'required': False} ) ) return schemas