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

@deotio/mcp-sigv4-proxy

v0.4.4

Published

stdio MCP proxy with AWS SigV4 signing — connect Claude Code to any IAM-authenticated MCP server using a named AWS profile

Downloads

1,113

Readme

@deotio/mcp-sigv4-proxy

Note: AWS publishes an official proxy for this use case: mcp-proxy-for-aws. It is mature, feature-rich, and AWS-supported. Use it unless you specifically need a Node.js solution. This package exists for teams that don't have (or want) a Python runtime — it provides the same core functionality as a single npx command with zero Python dependencies.

A stdio MCP proxy that signs requests with AWS SigV4 using the standard credential chain. Drop it into your .mcp.json as a command entry to connect Claude Code (or any MCP client) to IAM-authenticated MCP servers like AWS Bedrock AgentCore — with per-profile auth via AWS_PROFILE.

Quick start

Add to your .mcp.json:

"finops": {
  "command": "npx",
  "args": ["-y", "@deotio/mcp-sigv4-proxy"],
  "env": {
    "AWS_PROFILE": "dot-finops",
    "AWS_REGION": "us-east-1",
    "MCP_SERVER_URL": "https://bedrock-agentcore.us-east-1.amazonaws.com/runtimes/.../invocations?qualifier=DEFAULT"
  }
}

Always set AWS_REGION explicitly — the proxy can infer it from standard AWS hostnames, but AWS_REGION from your shell environment takes precedence and may point to a different region. AWS_SERVICE is inferred automatically and only needs to be set for non-standard endpoints.

How it works

stdin (JSON-RPC) -> validate -> SigV4 sign -> HTTPS POST -> response relay -> stdout
  1. Reads JSON-RPC messages from stdin (one per line)
  2. Validates each message is well-formed JSON-RPC 2.0
  3. Signs the request with AWS SigV4 using the configured credentials
  4. Forwards to the target MCP endpoint via HTTPS (with configurable timeout and retries)
  5. Retries on HTTP 5xx and 424 (AgentCore cold-start timeout) with exponential backoff
  6. Relays the response (JSON or SSE stream) back to stdout

Environment variables

| Variable | Required | Default | Description | |---|---|---|---| | MCP_SERVER_URL | yes | — | Full HTTPS URL of the target MCP HTTP endpoint | | AWS_PROFILE | no | SDK default chain | AWS named profile for signing | | AWS_REGION | no | inferred from URL, then us-east-1 | AWS region for SigV4 signing | | AWS_SERVICE | no | inferred from URL, then bedrock-agentcore | SigV4 service name | | MCP_TIMEOUT | no | 180 | Request timeout in seconds | | MCP_RETRIES | no | 2 | Retry count for 5xx/424 errors and network failures (0-10) | | MCP_LOG_LEVEL | no | ERROR | Log verbosity: DEBUG, INFO, WARNING, ERROR, SILENT | | MCP_WARM | no | 0 | Set to 1 to enable warm mode for slow-starting backends |

Prerequisites

Your AWS profile needs the appropriate IAM permissions for the target service. For Bedrock AgentCore:

bedrock-agentcore:InvokeAgentRuntime

Security

  • HTTPS-onlyMCP_SERVER_URL must use https://. The only exception is http://localhost / http://127.0.0.1 for local development.
  • TLS enforcement — the proxy refuses to start if NODE_TLS_REJECT_UNAUTHORIZED=0 is set, since it sends signed AWS credentials.
  • Input validation — only well-formed JSON-RPC 2.0 messages are signed and forwarded.
  • Informative errors — HTTP error responses include the upstream error message (e.g. HTTP 403: User is not authorized) in the JSON-RPC error for easier debugging. Full response bodies are logged to stderr.
  • Buffer limits — SSE streams are capped at 1 MB to prevent unbounded memory growth.

Documentation

License

Apache-2.0