ListBuckets
Retrieve a list of all Alibaba Cloud OSS buckets in a specified region, optionally filtered by a bucket name prefix, using the AlibabaCloud MCP Server API.
Instructions
列出指定区域的所有OSS存储空间。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Prefix | No | AlibabaCloud OSS Bucket Name prefix | |
| RegionId | No | AlibabaCloud region ID | cn-hangzhou |
Implementation Reference
- Handler function for the OSS_ListBuckets tool (likely 'ListBuckets'), lists all OSS buckets in the specified region with optional prefix using paginator.@tools.append def OSS_ListBuckets( RegionId: str = Field(description='AlibabaCloud region ID', default='cn-hangzhou'), Prefix: str = Field(description='AlibabaCloud OSS Bucket Name prefix', default=None) ): """列出指定区域的所有OSS存储空间。""" client = create_client(region_id=RegionId) paginator = client.list_buckets_paginator() results = [] for page in paginator.iter_page(oss.ListBucketsRequest(prefix=Prefix)): for bucket in page.buckets: results.append(bucket.__str__()) return results
- src/alibaba_cloud_ops_mcp_server/server.py:86-87 (registration)Registers the OSS tools, including the ListBuckets handler, with the MCP server.for tool in oss_tools.tools: mcp.tool(tool)
- Helper function to create the OSS client configured with credentials and region.def create_client(region_id: str) -> oss.Client: credentials_provider = CredentialsProvider() cfg = oss.config.load_default() cfg.user_agent = 'alibaba-cloud-ops-mcp-server' cfg.credentials_provider = credentials_provider cfg.region = region_id return oss.Client(cfg)
- Custom credentials provider for OSS client using header or credential client.class CredentialsProvider(EnvironmentVariableCredentialsProvider): def __init__(self) -> None: credentials = get_credentials_from_header() if credentials: access_key_id = credentials.get('AccessKeyId', None) access_key_secret = credentials.get('AccessKeySecret', None) session_token = credentials.get('SecurityToken', None) else: credentialsClient = CredClient() access_key_id = credentialsClient.get_credential().access_key_id access_key_secret = credentialsClient.get_credential().access_key_secret session_token = credentialsClient.get_credential().security_token self._credentials = Credentials( access_key_id, access_key_secret, session_token) def get_credentials(self) -> Credentials: return self._credentials