s3 — Claude Code MCP server: what it does, how to install
This MCP server lets an agent work with AWS S3 and compatible storage. Use it to inspect buckets, handle objects, and limit available operations.
claude mcp add --env AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> --env AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> --env AWS_REGION=<AWS_REGION> --env AWS_ENDPOINT_URL=<AWS_ENDPOINT_URL> --env S3_FORCE_PATH_STYLE=<S3_FORCE_PATH_STYLE> --transport stdio s3 -- npx -y s3-aws-mcp-serverWhat s3 does
The server exposes S3 actions for buckets and objects. An agent can list buckets, find objects by prefix, read object contents, upload or update files, copy objects, and remove them. It also checks AWS credentials and exposes s3://config with server status and configuration.
Access can be managed through the readonly and readwrite tool groups, or narrowed to individual tools with environment variables. Set S3_BUCKET to keep object operations inside one bucket and hide bucket-level actions. AWS requires AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY; MinIO and similar services also use AWS_ENDPOINT_URL and S3_FORCE_PATH_STYLE=true. The server will fail credential validation without AWS keys.
What it helps with
- inspect available S3 buckets
- read an object selected by prefix
- upload or replace a file in a bucket
- copy objects between buckets
- restrict access to one bucket
Example prompts for the agent
- List the S3 buckets I can access and check their availability.
- Read the object matching this prefix and summarize its contents.
- Upload the prepared file to the target bucket while keeping delete tools disabled.
How to install s3
Platform CLI
claude mcp add --env AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> --env AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> --env AWS_REGION=<AWS_REGION> --env AWS_ENDPOINT_URL=<AWS_ENDPOINT_URL> --env S3_FORCE_PATH_STYLE=<S3_FORCE_PATH_STYLE> --transport stdio s3 -- npx -y s3-aws-mcp-serverReplace <…> with your own values. 5 more environment variables are in the server README
Platform CLI
codex mcp add s3 --env AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> --env AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> --env AWS_REGION=<AWS_REGION> --env AWS_ENDPOINT_URL=<AWS_ENDPOINT_URL> --env S3_FORCE_PATH_STYLE=<S3_FORCE_PATH_STYLE> -- npx -y s3-aws-mcp-serverReplace <…> with your own values. 5 more environment variables are in the server README
Config file
{
"mcpServers": {
"s3": {
"command": "npx",
"args": [
"-y",
"s3-aws-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>",
"AWS_REGION": "<AWS_REGION>",
"AWS_ENDPOINT_URL": "<AWS_ENDPOINT_URL>",
"S3_FORCE_PATH_STYLE": "<S3_FORCE_PATH_STYLE>"
}
}
}
}Replace <…> with your own values. 5 more environment variables are in the server README
Config file
{
"servers": {
"s3": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"s3-aws-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>",
"AWS_REGION": "<AWS_REGION>",
"AWS_ENDPOINT_URL": "<AWS_ENDPOINT_URL>",
"S3_FORCE_PATH_STYLE": "<S3_FORCE_PATH_STYLE>"
}
}
}
}Replace <…> with your own values. 5 more environment variables are in the server README
Platform CLI
gemini mcp add -e AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> -e AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> -e AWS_REGION=<AWS_REGION> -e AWS_ENDPOINT_URL=<AWS_ENDPOINT_URL> -e S3_FORCE_PATH_STYLE=<S3_FORCE_PATH_STYLE> s3 npx -y s3-aws-mcp-serverReplace <…> with your own values. 5 more environment variables are in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about s3
How do I install s3 in Claude Code?
Run claude mcp add s3 -e AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> -e AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> -- npx -y s3-aws-mcp-server.
What does the s3 MCP server do?
It gives an agent tools for S3 bucket and object operations, including reading, uploading, copying, deleting, and access checks. Tool groups and environment variables control which actions are exposed.
How can I scope the server to one bucket?
Set S3_BUCKET. Object actions then stay within that bucket, while bucket listing, creation, deletion, and related bucket-level tools are hidden.