s3-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| S3_REGION | No | S3 region (default: us-east-1; use auto for Cloudflare R2) | |
| S3_ENDPOINT | Yes | S3 API URL (required) | |
| S3_CA_BUNDLE | No | Path to a PEM file containing a custom CA to trust | |
| S3_ALLOW_WRITE | No | Enable write tools such as s3_put_object and s3_delete_object (default: false) | |
| S3_ACCESS_KEY_ID | Yes | S3 access key ID (required) | |
| S3_MAX_READ_BYTES | No | Maximum number of bytes to read for s3_read_object (default: 262144) | |
| S3_ALLOWED_BUCKETS | No | Comma-separated allow-list of bucket names the server may access | |
| S3_FORCE_PATH_STYLE | No | Use path-style addressing (default: true; set to false for Cloudflare R2 or other virtual-hosted-style endpoints) | |
| S3_ALLOW_SELF_SIGNED | No | Skip TLS certificate verification for this client only (default: false; prefer S3_CA_BUNDLE when possible) | |
| S3_SECRET_ACCESS_KEY | Yes | S3 secret access key (required) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| s3_list_bucketsA | List all available S3 buckets visible to the configured credentials. |
| s3_list_objectsA | List objects in a bucket. Optional prefix/delimiter for folder-style browsing. Note: S3 ListObjectsV2 does not return user metadata — use s3_head_object for that. |
| s3_head_objectA | Fetch object metadata without downloading the body (size, ETag, content-type, user metadata). |
| s3_read_objectA | Read object content. Uses a Range request capped by maxBytes so large objects never stream in full. encoding=auto returns UTF-8 text when decodable, otherwise base64. |
| s3_put_objectA | Upload object content. Requires S3_ALLOW_WRITE=true. Pass encoding=base64 to upload binary data from a base64 string. |
| s3_delete_objectA | Delete an object. Requires S3_ALLOW_WRITE=true. Idempotent: missing keys (NoSuchKey/404) are treated as success. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct S3 operation: listing buckets, listing objects, fetching metadata, reading content, uploading, and deleting. The descriptions explicitly clarify the tricky boundary between s3_head_object (metadata only) and s3_read_object (content), and between s3_list_objects and s3_head_object regarding user metadata.
Every tool follows the same predictable `s3_verb_noun` snake_case pattern (s3_list_buckets, s3_read_object, s3_put_object, etc.). No mixed conventions or vague verbs.
Six tools is well-scoped for a focused S3 object-access server, covering the core read/write lifecycle without bloat. Each tool earns its place with a non-overlapping job.
Core object lifecycle is covered: list buckets, list objects, head, read, put, delete. Minor gaps exist — no bucket create/delete, no copy_object, and no multi-object delete — but agents can work around these for typical object read/write tasks.