An open-source Model Context Protocol (MCP) server for Amazon S3.
Project description
AWS S3 Explorer - MCP Server
An open-source Model Context Protocol (MCP) server built in Python that securely connects AI assistants to Amazon S3.
This server provides Large Language Models (LLMs) with the ability to list buckets, inspect dataset structures, and read file schemas directly without requiring massive data downloads. It is engineered for ML infrastructure pipelines, featuring fully asynchronous I/O and defensive error handling.
Features
- Asynchronous I/O: Utilizes
aiobotocorefor non-blocking concurrent requests, ensuring the server doesn't fall over under heavy LLM workloads. - Defensive Error Handling: Catch-and-return patterns for AWS exceptions (including missing credentials) that allow AI agents to cleanly self-correct.
- Strict Typing: Heavily typed Python interfaces using the
FastMCPwrapper to automatically generate robust JSON schemas for the client. - Mocked CI/CD: Fully automated test suites using
pytestandpytest-asyncio, integrated into a GitHub Action pipeline.
Tools Exposed to the LLM
This server exposes three specific primitives:
list_s3_buckets(): Lists all S3 buckets accessible by the current AWS credentials.list_s3_objects(bucket_name, prefix, max_keys): Lists objects inside a specific bucket. Limits results by default to prevent LLM context window overflow.read_s3_file_head(bucket_name, object_key, byte_limit): Reads the first few kilobytes of an S3 object to inspect its contents (e.g., CSV headers, JSON structures) without downloading the entire file.
Installation and Setup
Prerequisites
- Python 3.11+
- AWS credentials configured locally (e.g.,
aws configureor~/.aws/credentials)
Option 1: Quick Setup
If you have uv installed, you can quickly run the server without manual installation:
uvx aws-s3-explorer-mcp
Option 2: User Setup
Install the package from PyPI:
pip install aws-s3-explorer-mcp
You can start the MCP server by running:
aws-s3-explorer-mcp
Option 3: Developer Setup
Clone the repository and install the required dependencies:
git clone https://github.com/kbates97/AWS_S3_Explorer_MCP.git
cd AWS_S3_Explorer_MCP
python -m venv venv
# Windows: .\venv\Scripts\activate
# Mac/Linux: source venv/bin/activate
pip install -r requirements.txt
You can run the server locally with:
python ./src/aws_s3_mcp/server.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aws_s3_explorer_mcp-0.1.4.tar.gz.
File metadata
- Download URL: aws_s3_explorer_mcp-0.1.4.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
083750d4b6ebf4275622fbbbe9026ff623ffe0eb81cfdbcc74c4eac44e4fb34d
|
|
| MD5 |
6523e9a2403cc5db36ad8eaf92415c0b
|
|
| BLAKE2b-256 |
a81ee70d2a616fe56efaa1e5710ed946a3615b33e645c24518ef34f36a6d19c6
|
Provenance
The following attestation bundles were made for aws_s3_explorer_mcp-0.1.4.tar.gz:
Publisher:
release.yml on kbates97/AWS_S3_Explorer_MCP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aws_s3_explorer_mcp-0.1.4.tar.gz -
Subject digest:
083750d4b6ebf4275622fbbbe9026ff623ffe0eb81cfdbcc74c4eac44e4fb34d - Sigstore transparency entry: 1662186841
- Sigstore integration time:
-
Permalink:
kbates97/AWS_S3_Explorer_MCP@50984ee08a743bb58437bf785542eff81482adcf -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/kbates97
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50984ee08a743bb58437bf785542eff81482adcf -
Trigger Event:
push
-
Statement type:
File details
Details for the file aws_s3_explorer_mcp-0.1.4-py3-none-any.whl.
File metadata
- Download URL: aws_s3_explorer_mcp-0.1.4-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
657c2161bad16b823af52b1ef08adb662f5a149cda259c4fe6daf1a54d38fe6e
|
|
| MD5 |
5e5f76697851af0a86a34eac6c4a34b7
|
|
| BLAKE2b-256 |
369d2040446423371dccd0aadfb0c3686577de9560f027cd4dd69b17efc9f63f
|
Provenance
The following attestation bundles were made for aws_s3_explorer_mcp-0.1.4-py3-none-any.whl:
Publisher:
release.yml on kbates97/AWS_S3_Explorer_MCP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aws_s3_explorer_mcp-0.1.4-py3-none-any.whl -
Subject digest:
657c2161bad16b823af52b1ef08adb662f5a149cda259c4fe6daf1a54d38fe6e - Sigstore transparency entry: 1662187079
- Sigstore integration time:
-
Permalink:
kbates97/AWS_S3_Explorer_MCP@50984ee08a743bb58437bf785542eff81482adcf -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/kbates97
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50984ee08a743bb58437bf785542eff81482adcf -
Trigger Event:
push
-
Statement type: