npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@uania/aws-ow-s3-mcp

v0.1.3

Published

AWS S3 MCP Server with pre-signed URL upload and download tools.

Readme

AWS S3 MCP Server

MCP Server for AWS S3 operations, providing secure access to S3 buckets through pre-signed URLs.

Tools

  1. list_objects

    • List objects in an S3 bucket
    • Input:
      • prefix (string, optional): Prefix filter for object keys
    • Returns: Array of objects with keys, sizes, and last modified dates
  2. get_object

    • Generate a pre-signed URL for accessing an object
    • Inputs:
      • key (string, required): Object key to retrieve
      • expiry (number, optional): URL expiration time in seconds (default: 3600)
    • Returns: object_url containing the pre-signed URL
  3. put_object

    • Generate a pre-signed URL for uploading an object
    • Inputs:
      • key (string, required): Object key to upload
      • content_type (string, optional): Content type to sign into the upload URL
      • expiry (number, optional): URL expiration time in seconds (default: 3600)
    • Returns: upload_url containing the pre-signed URL
  4. upload_file

    • Upload a local file to S3 through a generated pre-signed PUT URL
    • Inputs:
      • source_path (string, required): Local file path to upload from the MCP server host
      • key (string, required): S3 object key to upload to
      • content_type (string, optional): Content type to set on the uploaded object
      • expiry (number, optional): Pre-signed URL expiration time in seconds (default: 3600)
    • Returns: Upload status, uploaded byte count, object key, and generated upload_url
  5. download_file

    • Download an S3 object to a local file through a generated pre-signed GET URL
    • Inputs:
      • key (string, required): S3 object key to download
      • destination_path (string, required): Local file path to write to on the MCP server host
      • expiry (number, optional): Pre-signed URL expiration time in seconds (default: 3600)
    • Returns: Download status, downloaded byte count, object key, destination path, and generated download_url
  6. delete_object

    • Delete an object from the bucket
    • Input:
      • key (string, required): Object key to delete
    • Returns: success boolean indicating deletion status

Setup

Environment Variables

The server requires the following environment variables:

  • BUCKET_NAME: The name of your S3 bucket (required)
  • REGION: AWS region (default: "ap-southeast-1")

AWS credentials should be configured using standard AWS credential configuration methods (environment variables, IAM roles, or AWS credentials file).

Usage with Claude Desktop

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "aws-ow-s3-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "BUCKET_NAME",
        "-e",
        "REGION",
        "-e",
        "AWS_ACCESS_KEY_ID",
        "-e",
        "AWS_SECRET_ACCESS_KEY",
        "mcp/aws-ow-s3-mcp"
      ],
      "env": {
        "BUCKET_NAME": "<YOUR_BUCKET_NAME>",
        "REGION": "<AWS_REGION>",
        "AWS_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY>",
        "AWS_SECRET_ACCESS_KEY": "<YOUR_SECRET_KEY>"
      }
    }
  }
}

NPX Command

{
  "mcpServers": {
    "aws-ow-s3-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@uania/aws-ow-s3-mcp"
      ],
      "env": {
        "BUCKET_NAME": "<YOUR_BUCKET_NAME>",
        "REGION": "<AWS_REGION>",
        "AWS_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY>",
        "AWS_SECRET_ACCESS_KEY": "<YOUR_SECRET_KEY>"
      }
    }
  }
}

Build

Docker build:

docker build -t mcp/aws-ow-s3-mcp-server .

Development

The server is built using:

  • Node.js
  • TypeScript
  • @modelcontextprotocol/sdk
  • @aws-sdk/client-s3
  • @aws-sdk/s3-request-presigner

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.