Back to Developer Tools

S3 Tools

Integrates with AWS S3 to enable bucket listing and management, facilitating cloud storage operations for applications requiring file organization or content delivery.

Last updated: 1/27/2026

README

# s3-tools MCP Server

An MCP server that provides tools for interacting with AWS S3 buckets. This server enables direct access to S3 bucket operations through the Model Context Protocol.

## Features

### Tools

The server currently implements the following tools:

- **list-s3-buckets**: Lists all S3 buckets in your AWS account
  - Optional `region` parameter to specify AWS region
  - Returns a formatted list of bucket names

## Prerequisites

- Python 3.13 or higher
- AWS credentials configured (see [AWS Credentials Setup](#aws-credentials-setup))
- [uv](https://github.com/astral-sh/uv) package manager

## Installation

### From PyPI

```bash
uvx install s3-tools
```

### From Source

1. Clone the repository
2. Install using uv:
```bash
uv pip install .
```

## AWS Credentials Setup

This server requires AWS credentials to access your S3 buckets. You can configure credentials in several ways:

1. **AWS CLI configuration** (Recommended)
   ```bash
   aws configure
   ```
   This will create/update credentials in `~/.aws/credentials`

2. **Environment Variables**
   ```bash
   export AWS_ACCESS_KEY_ID="your_access_key"
   export AWS_SECRET_ACCESS_KEY="your_secret_key"
   export AWS_DEFAULT_REGION="your_preferred_region"  # optional
   ```

3. **IAM Role** (if running on AWS infrastructure)

For more information about AWS credentials, see the [AWS documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).

## Configuration

### Claude Desktop

Add the server configuration to your Claude Desktop config file:

**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`  
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "s3-tools": {
      "command": "uvx",
      "args": ["s3-tools"]
    }
  }
}
```

### Development Configuration

For development/testing, you can run the server directly from source:

```json
{
  "mcpServers": {
    "s3-tools": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/s3-tools",
        "run",
        "s3-tools"
      ]
    }
  }
}
```

## Development

### Building

1. Sync dependencies:
```bash
uv sync
```

2. Build package:
```bash
uv build
```

### Publishing

To publish to PyPI:

```bash
uv publish
```

Note: You'll need PyPI credentials configured via:
- Token: `--token` or `UV_PUBLISH_TOKEN`
- Or username/password: `--username`/`UV_PUBLISH_USERNAME` and `--password`/`UV_PUBLISH_PASSWORD`

### Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) for development:

```bash
npx @modelcontextprotocol/inspector uv run s3-tools
```

## License

MIT

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Installation

Add this MCP to your configuration:

{
  "mcpServers": {
    "s3-tools": {
      // See GitHub repository for configuration
    }
  }
}

See the GitHub repository for full installation instructions.