Back to the catalog

io.github.ofershap/s3

AWS S3 MCP — list buckets, browse objects, upload/download, presigned URLs.

Open source Open in the app JSON README (API)

About

AWS S3 MCP — list buckets, browse objects, upload/download, presigned URLs.

Details

Kind
MCP servers
Topic
Cloud & DevOps
Publisher
ofershap
Origin
official
Category
ferramentas
Transport
local
Version
1.0.1
Stars
4
Forks
1
Last push
2026-08-10T07:38:26Z
Repository state
ativo
Language
TypeScript
License
MIT
Added
2026-08-29 04:00:57
Updated
2026-08-29 04:00:57
Origin id
io.github.ofershap/s3

README

# mcp-server-s3

[![npm version](https://img.shields.io/npm/v/mcp-server-s3.svg)](https://www.npmjs.com/package/mcp-server-s3)
[![npm downloads](https://img.shields.io/npm/dm/mcp-server-s3.svg)](https://www.npmjs.com/package/mcp-server-s3)
[![CI](https://github.com/ofershap/mcp-server-s3/actions/workflows/ci.yml/badge.svg)](https://github.com/ofershap/mcp-server-s3/actions/workflows/ci.yml)
[![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)](https://www.typescriptlang.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Agent Plugins](https://img.shields.io/badge/Agent_Plugins-1.0.0-0ea5e9.svg)](https://agent-plugins.org)

Manage AWS S3 buckets and objects from your AI assistant. Browse files, upload and download content, and generate presigned URLs.

```bash
npx mcp-server-s3
```

> Works with Claude Desktop, Cursor, VS Code Copilot, and any MCP client. Uses your existing AWS credentials (`~/.aws/credentials` or environment variables).

![MCP server for AWS S3 bucket management and file operations](assets/demo.gif)

<sub>Demo built with <a href="https://github.com/ofershap/remotion-readme-kit">remotion-readme-kit</a></sub>

## Why

S3 is the most widely used cloud storage service, but managing it from the command line means remembering `aws s3 ls`, `aws s3 cp`, presigned URL syntax, and various flags. Google has an official MCP for GCS, Cloudflare has one for R2, but AWS S3 doesn't have a polished standalone MCP server on npm. This one lets you ask your assistant to list buckets, download a config file, upload content, or generate a temporary sharing link. It uses the standard AWS credential chain, so if your CLI already works, this works too.

## Tools

| Tool            | What it does                                           |
| --------------- | ------------------------------------------------------ |
| `list_buckets`  | List all S3 buckets in your AWS account.               |
| `list_objects`  | List objects in a bucket, with optional prefix filter. |
| `get_object`    | Download and read an object's content as text.         |
| `put_object`    | Upload text content to an S3 object.                   |
| `delete_object` | Delete an object from a bucket.                        |
| `presigned_url` | Generate a temporary presigned URL for an object.      |
| `bucket_info`   | Check if a bucket exists and get basic info.           |

## Quick Start

### Cursor

Add to `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "s3": {
      "command": "npx",
      "args": ["mcp-server-s3"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "your-access-key",
        "AWS_SECRET_ACCESS_KEY": "your-secret-key"
      }
    }
  }
}
```

### Claude Desktop

Add to `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "s3": {
      "command": "npx",
      "args": ["mcp-server-s3"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "your-access-key",
        "AWS_SECRET_ACCESS_KEY": "your-secret-key"
      }
    }
  }
}
```

### VS Code

Configure the MCP server to run `npx mcp-server-s3` with `AWS_REGION`, `AWS_ACCESS_KEY_ID`, and `AWS_SECRET_ACCESS_KEY` in the environment.

## Authentication

The server uses the standard AWS credential chain:

1. **Environment variables**: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`
2. **Shared credentials file**: `~/.aws/credentials`
3. **IAM roles**: when running on EC2, ECS, Lambda, or similar

Set `AWS_REGION` (defaults to `us-east-1`) and make sure your credentials have the necessary S3 permissions: `s3:ListBuckets`, `s3:ListBucket`, `s3:GetObject`, `s3:PutObject`, `s3:DeleteObject`, `s3:HeadBucket`.

## Agent Plugins

This repo is an [Agent Plugins](https://agent-plugins.org) 1.0.0 package: `plugin.json`, portable `mcp.json`, and `skills/` ship together with the MCP server.

For Cursor, clone the repo and copy or symlink it to `~/.cursor/plugins/local/mcp-server-s3`, then reload the window. Skills and MCP show up under Customize > Plugins.

Agent Plugins v1 does not ship OAuth or AWS SSO wiring. Set `AWS_REGION` and credentials via env or `~/.aws/credentials` in the MCP client host. One-click install is not offered because secrets stay in env.

## FAQ

### What is mcp-server-s3?

An MCP server for S3: list buckets and objects, read/upload text objects, delete keys, presigned URLs, and bucket checks.

### How does authentication work?

Standard AWS credential chain: env vars, shared credentials file, or IAM role on the machine running the MCP server.

### Which env vars should I set in MCP config?

At minimum `AWS_REGION`. Often `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` unless you rely on `~/.aws/credentials` or a role.

### Can I install it as an Agent Plugin in Cursor?

Yes, via `~/.cursor/plugins/local/mcp-server-s3`. Ensure the Cursor process can read the same AWS credentials as your CLI.

### Why no one-click Cursor button?

AWS keys cannot be embedded in a portable install link. Use the JSON under Quick Start.

## Example prompts

- "List all my S3 buckets"
- "Show me the files in my-bucket/uploads/"
- "Download the config.json from my-bucket"
- "Upload this content to my-bucket/notes.txt"
- "Generate a presigned URL for this file that expires in 1 hour"

## Development

```bash
npm install
npm run typecheck
npm run build
npm test
npm run format
npm run lint
```

## See also

More MCP servers and developer tools on my [portfolio](https://gitshow.dev/ofershap).

## Author

[![Made by ofershap](https://gitshow.dev/api/card/ofershap)](https://gitshow.dev/ofershap)

[![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0A66C2?style=flat&logo=linkedin&logoColor=white)](https://linkedin.com/in/ofershap)
[![GitHub](https://img.shields.io/badge/GitHub-Follow-181717?style=flat&logo=github&logoColor=white)](https://github.com/ofershap)

---

<sub>README built with [README Builder](https://ofershap.github.io/readme-builder/)</sub>

## License

MIT © 2026 Ofer Shapira

More