s3-mcp
MCP server for AWS S3 and compatible object stores, enabling LLM clients to browse buckets and fetch objects.
README
s3-mcp
original work from https://github.com/aws-samples/sample-mcp-server-s3
s3-mcp is a Model Context Protocol (MCP) server for AWS S3 and S3-compatible object stores (for example MinIO, Cloudflare R2, and Backblaze B2 S3). It exposes buckets and objects through MCP resources and tools so LLM clients can browse and fetch content from object storage.
What this server exposes
Resources
s3://<bucket>/<key>resources generated from discovered buckets and objects- Up to 1,000 objects per bucket listing request
- Bucket listing is limited by
S3_MAX_BUCKETS(default:5)
Tools
ListBuckets- list buckets accessible by configured credentialsListObjectsV2- list objects in a bucket (supportsprefixandmax_keys)GetObject- fetch an object bybucket_name+key
Quick start
- Sync dependencies:
uv sync --no-install-project
- Create a local environment file from the template:
cp env.example .env
-
Set credentials and endpoint settings in
.env. -
Run the server:
PYTHONPATH=src .venv/bin/python -m s3_mcp_server.server
The server runs over stdio (as MCP servers normally do).
Configuration
You can configure this project with environment variables, an optional JSON/TOML config file, or the default AWS SDK credential chain.
Credential and setting precedence
- Environment variables (
S3_*,AWS_*) S3_CONFIG_FILE+S3_CONFIG_PROFILE- Botocore/AWS SDK credential provider chain
Important environment variables
S3_REGION/AWS_REGION- region used for request signingS3_ENDPOINT_URL- required for most non-AWS providersS3_ACCESS_KEY_ID,S3_SECRET_ACCESS_KEY,S3_SESSION_TOKENS3_ADDRESSING_STYLE-auto,path, orvirtualS3_SIGNATURE_VERSION- usuallys3v4S3_VERIFY_SSL- setfalseonly for local/self-signed developmentS3_MAX_BUCKETS- max buckets processed per list call
Bucket allow-list (recommended for restricted credentials)
You can bypass the ListBuckets permission requirement by explicitly declaring allowed buckets:
S3_BUCKETS=my-bucket-a,my-bucket-b- or indexed vars:
S3_BUCKET_1,S3_BUCKET_2, ... - or config file keys:
buckets,bucket_names, ors3_buckets
Optional config file
Set:
S3_CONFIG_FILE=/absolute/path/to/s3.config.toml(or.json)S3_CONFIG_PROFILE=default
See s3.config.example.toml for profile examples.
Claude Desktop example
Claude Desktop config path:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"s3-mcp-server": {
"command": "/absolute/path/to/s3-mcp/.venv/bin/python",
"args": ["-m", "s3_mcp_server.server"],
"env": {
"PYTHONPATH": "/absolute/path/to/s3-mcp/src",
"S3_ENDPOINT_URL": "http://localhost:9000",
"S3_REGION": "us-east-1",
"S3_ACCESS_KEY_ID": "replace-me",
"S3_SECRET_ACCESS_KEY": "replace-me",
"S3_BUCKETS": "my-bucket"
}
}
}
}
Debugging
The easiest way to inspect requests and responses is with the MCP Inspector:
npx @modelcontextprotocol/inspector /absolute/path/to/s3-mcp/.venv/bin/python -m s3_mcp_server.server
License
This project is licensed under MIT-0. See LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.