s3_object_list
Retrieve and list objects from an S3 bucket using a natural language command on the AWS MCP Server. Simplifies access to bucket contents by specifying the bucket name.
Instructions
List objects in an S3 bucket
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bucket_name | Yes | Name of the S3 bucket |
Implementation Reference
- src/mcp_server_aws/server.py:165-167 (handler)Executes the s3_object_list tool by calling AWS S3 list_objects_v2 with the bucket_name argument.elif name == "s3_object_list": response = s3_client.list_objects_v2( Bucket=arguments["bucket_name"])
- src/mcp_server_aws/tools.py:82-95 (schema)Defines the Tool schema for s3_object_list, including input schema requiring bucket_name.Tool( name="s3_object_list", description="List objects in an S3 bucket", inputSchema={ "type": "object", "properties": { "bucket_name": { "type": "string", "description": "Name of the S3 bucket" } }, "required": ["bucket_name"] } ),
- src/mcp_server_aws/server.py:136-140 (registration)Registers all AWS tools, including s3_object_list, by returning get_aws_tools().async def list_tools() -> list[Tool]: """List available AWS tools""" logger.debug("Handling list_tools request") return get_aws_tools()
- src/mcp_server_aws/tools.py:450-454 (registration)Combines S3 and DynamoDB tools for registration, including s3_object_list via get_s3_tools().def get_aws_tools() -> list[Tool]: return [ *get_s3_tools(), *get_dynamodb_tools() ]
- src/mcp_server_aws/server.py:141-181 (handler)The shared handler function for all S3 tools, dispatching based on name and executing list_objects_v2 for s3_object_list.async def handle_s3_operations(aws: AWSManager, name: str, arguments: dict) -> list[TextContent]: """Handle S3-specific operations""" s3_client = aws.get_boto3_client('s3') response = None if name == "s3_bucket_create": response = s3_client.create_bucket(Bucket=arguments["bucket_name"], CreateBucketConfiguration={ 'LocationConstraint': os.getenv("AWS_REGION") or 'us-east-1' }) elif name == "s3_bucket_list": response = s3_client.list_buckets() elif name == "s3_bucket_delete": response = s3_client.delete_bucket(Bucket=arguments["bucket_name"]) elif name == "s3_object_upload": response = s3_client.upload_fileobj( io.BytesIO(base64.b64decode(arguments["file_content"])), arguments["bucket_name"], arguments["object_key"]) elif name == "s3_object_delete": response = s3_client.delete_object( Bucket=arguments["bucket_name"], Key=arguments["object_key"] ) elif name == "s3_object_list": response = s3_client.list_objects_v2( Bucket=arguments["bucket_name"]) elif name == "s3_object_read": logging.info(f"Reading object: {arguments['object_key']}") response = s3_client.get_object( Bucket=arguments["bucket_name"], Key=arguments["object_key"] ) content = response['Body'].read().decode('utf-8') return [TextContent(type="text", text=content)] else: raise ValueError(f"Unknown S3 operation: {name}") aws.log_operation("s3", name.replace("s3_", ""), arguments) return [TextContent(type="text", text=f"Operation Result:\n{json.dumps(response, indent=2, default=custom_json_serializer)}")]