Get the FREE Ultimate OpenClaw Setup Guide →

aws-s3

MCP server exposing AWS S3 tools: list buckets/objects, presigned GET/PUT, safe by default.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio khuynh22-aws-s3-mcp-server node /absolute/path/to/aws-s3-mcp-server/dist/index.js

How to use

The aws-s3 MCP server exposes AWS S3 operations through a secure MCP interface. It provides tools to list buckets, list objects within a bucket (with optional prefix filtering), and generate presigned URLs for safe object access. Two presigned workflows are available: GET URLs for downloading objects and PUT URLs for uploading objects (the latter requires enabling write operations via the ALLOW_WRITE flag). The server validates inputs with Zod and emits structured logs, operating safely by default with write operations turned off unless explicitly allowed. You can interact with it using MCP clients such as Claude Desktop or VS Code, leveraging the included tool names (s3_list_buckets, s3_list_objects, s3_presign_get, s3_presign_put) to perform common S3 tasks through the MCP layer.

To use with Claude Desktop, configure your MCP server in claude_desktop_config.json to point to the built server (dist/index.js) via Node. For VS Code integration, update your ~/.vscode/mcp.json to route stdio traffic to the same server entry point. Typical operations include listing buckets, listing bucket objects (with optional prefixes), obtaining download URLs, and (if enabled) generating upload URLs with optional content types and custom expiration. See the Usage and Documentation sections in the repo for examples and commands you can speak or type to trigger these operations.

How to install

Prerequisites:

  • Node.js (and npm) installed on the host
  • AWS credentials with appropriate permissions (read for list operations; write for presigned PUT if enabled)

Step-by-step installation:

  1. Clone the repository git clone https://github.com/your-org/khuynh22-aws-s3-mcp-server.git cd khuynh22-aws-s3-mcp-server

  2. Install dependencies npm install

  3. Build the project npm run build

  4. Configure AWS credentials cp .env.example .env

    Edit .env to set AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, and optional ALLOW_WRITE and LOG_LEVEL

  5. Run a quick test (standalone) npm start

  6. Optional: run tests or additional tooling npm test npm run lint

Additional notes

Tips and notes:

  • Environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION are required. To enable write operations, set ALLOW_WRITE=true in .env. You can adjust log verbosity with LOG_LEVEL.
  • Presigned URLs: presigned URLs have configurable expiration (default 3600 seconds; max 604800 seconds).
  • Security: By default, write operations are disabled. Ensure you rotate credentials and store them securely in a .env file (not committed to source control).
  • Troubleshooting: If the server stops responding in Claude, verify the absolute path to dist/index.js in your MCP client config and try running node dist/index.js manually for a quick sanity check.
  • Performance: For large buckets, use s3_list_objects with a prefix to narrow results and consider pagination with maxKeys.

Related MCP Servers

Sponsor this space

Reach thousands of developers