ListBucketsLABSCO SUMMARY
Reading from S3 without leaving the conversation.
Three read operations and a PDF resource path — enough to find a document in a bucket and put it in front of the model, which is what most S3 questions actually are.
What it is
An AWS sample server that puts three S3 read operations behind MCP, and exposes PDF documents in a bucket as resources the model can load into context directly.
What you get
- Every bucket owned by the credentials you configured
- Objects in a bucket, up to 1,000 per request
- An object retrieved by full key name, virtual-hosted-style or path-style
- PDF documents surfaced as resources, so their contents load into context without a separate fetch step
Requirements
An AWS access key id, secret access key and region, with S3 permissions covering the reads you intend. It runs from a clone of the repository with uv. The resource path handles PDF only and is limited to 1000 objects.
Setup effort
Build from source — git clone https://github.com/aws-samples/sample-mcp-server-s3.git
USE CASES
Finding a document you know is in S3 somewhere
List the buckets, list the keys inside one, then pull the object. Three steps, no console.
Reading a PDF that lives in a bucket
PDFs are exposed as resources, so the contents load into context rather than arriving as bytes to decode.
Checking what a set of credentials can actually see
The bucket list reflects exactly what the configured key owns — a quick read on scope before you grant anything wider.
Working through a large prefix
Listings cap at 1,000 objects per request, so a big bucket is walked in pages instead of arriving truncated.
3 tools
Listed in project docs. Your client may show a different list.
ListObjectsV2GetObjectBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. The tools are ListBuckets, ListObjectsV2 and GetObject, and they need an AWS access key ID, secret access key and region with S3 permissions.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/aws-samples/sample-mcp-server-s3.git
cd sample-mcp-server-s3
uv syncMCP Clients
Any MCP client
{
"mcpServers": {
"s3-mcp-server": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_SAMPLE_MCP_SERVER_S3>",
"run",
"s3-mcp-server"
]
}
}
}<YOUR_PATH_TO_SAMPLE_MCP_SERVER_S3> is the folder you cloned. The server has no key settings of its own: it signs requests with the standard AWS credential chain, so your access key ID and secret access key must be in ~/.aws/credentials or in AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. It reads AWS_REGION from the environment or from a .env file in the clone (see env.example) and defaults to us-east-1.