> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Amazon S3

**Authentication:** IAM access keys. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow.

## Sample use cases

* List every object in `s3://acme-uploads/customer-data/` larger than 100MB and older than 90 days.
* Move yesterday's archive files from `s3://staging-logs/` to `s3://cold-storage/` under the matching date prefix.
* Generate a presigned URL valid for 1 hour for the latest export in `s3://reports/finance/`.

## Available Tools

#### list\_buckets

List all S3 buckets in the AWS account with owner information

#### get\_bucket\_info

Get S3 bucket location/region. Returns the AWS region where the bucket is hosted

#### create\_bucket

Create a new S3 bucket. Name must be globally unique, 3-63 chars, lowercase only

#### delete\_bucket

Delete an empty S3 bucket. Use delete\_objects first to remove all objects before deleting

#### get\_bucket\_policy

Get the IAM policy JSON document attached to an S3 bucket for access control review

#### put\_bucket\_policy

Set or update the IAM policy on an S3 bucket for access control configuration

#### get\_bucket\_cors

Get CORS configuration rules for an S3 bucket to review cross-origin access settings

#### put\_bucket\_cors

Set CORS rules on an S3 bucket to enable cross-origin web browser access

#### get\_bucket\_versioning

Get versioning status of an S3 bucket (Enabled, Suspended, or never enabled)

#### put\_bucket\_versioning

Enable or suspend versioning on an S3 bucket for object version management

#### get\_bucket\_tagging

Get all tags on an S3 bucket as key-value pairs for resource organization and billing

#### put\_bucket\_tagging

Set tags on an S3 bucket (replaces all existing tags). Max 50 tags per bucket

#### list\_objects

List objects in an S3 bucket with prefix filtering, delimiter grouping, and pagination support

#### get\_object\_metadata

Get metadata for an S3 object (size, type, last modified) without downloading content

#### upload\_object

Upload base64-encoded content as an S3 object with optional content type and metadata

#### download\_object

Download an S3 object and return its content as base64-encoded string

#### delete\_object

Delete a single object from an S3 bucket. Use delete\_objects for batch deletion

#### delete\_objects

Batch delete up to 1000 objects from an S3 bucket in a single request

#### copy\_object

Copy an S3 object within the same bucket or across buckets in the same region

#### get\_object\_tagging

Get all tags on an S3 object as key-value pairs for resource classification

#### put\_object\_tagging

Set tags on an S3 object (replaces all existing tags). Max 10 tags per object

#### generate\_presigned\_download\_url

Generate a temporary presigned URL for downloading an S3 object without AWS credentials

#### generate\_presigned\_upload\_url

Generate a temporary presigned URL for uploading to S3 without AWS credentials via HTTP PUT