Skip to main content

Multi-endpoint MCP Proxy for AWS with automatic tool merging

Project description

MCP Proxy for AWS (Multi-Endpoint)

Overview

mcp-proxy-for-aws-multi is a multi-endpoint MCP proxy that connects AI applications to multiple MCP servers simultaneously. It automatically merges tools and resources from all endpoints into a single unified interface, with intelligent routing of calls to the correct backend.

Key features:

  • Multi-endpoint support — connect to one or more MCP endpoints and get a merged tool/resource list
  • Automatic SigV4 signing — AWS MCP endpoints (.api.aws) are signed automatically using your local credentials
  • Plain HTTP passthrough — non-AWS endpoints (e.g. localhost) are connected without signing
  • Automatic tool routing — tool calls are routed to the correct backend transparently

When Do You Need This Package?

  • You want to connect to multiple MCP servers (e.g., AWS MCP + a local UI server) through a single proxy
  • You need SigV4 authentication for AWS MCP endpoints
  • You want tools from multiple servers merged automatically without manual configuration

Prerequisites

Installation

# Install from PyPI
pip install mcp-proxy-for-aws-multi

# Or run directly with uvx
uvx mcp-proxy-for-aws-multi@latest <endpoint1> [endpoint2]

Usage

Single endpoint (AWS MCP with SigV4)

mcp-proxy-for-aws-multi https://aws-mcp.us-east-1.api.aws/mcp

Multiple endpoints (AWS MCP + local server)

mcp-proxy-for-aws-multi https://aws-mcp.us-east-1.api.aws/mcp http://localhost:8000/mcp

Tools and resources from both endpoints are merged. Calls are routed to the correct backend automatically.

MCP Client Configuration

Add to your MCP client config (e.g., Claude Desktop, Kiro CLI):

{
  "mcpServers": {
    "aws-mcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws-multi@latest",
        "https://aws-mcp.us-east-1.api.aws/mcp",
        "http://localhost:8000/mcp"
      ]
    }
  }
}

Configuration Parameters

Parameter Description Default Required
endpoints One or more MCP endpoint URLs N/A Yes (at least one)
--service AWS service name for SigV4 signing Inferred from endpoint No
--profile AWS profile for credentials AWS_PROFILE env var No
--region AWS region for signing Inferred from endpoint No
--metadata Metadata key=value pairs to inject AWS_REGION auto-injected No
--read-only Disable tools requiring write permissions False No
--retries Number of retries (0-10) 0 No
--log-level Logging level ERROR No
--timeout Overall timeout (seconds) 180 No
--connect-timeout Connection timeout (seconds) 60 No
--read-timeout Read timeout (seconds) 120 No
--write-timeout Write timeout (seconds) 180 No
--tool-timeout Max seconds per tool call 300 No
--disable-telemetry Disable telemetry False No

How It Works

  1. Endpoint detection — URLs matching .api.aws/ are signed with SigV4. Other URLs use plain HTTP.
  2. Provider registration — each endpoint becomes a FastMCP ProxyProvider
  3. Tool mergingtools/list queries all providers in parallel and merges results
  4. Call routingtools/call is routed to the provider that owns the tool
  5. Same for resourcesresources/list and resources/read follow the same pattern

Programmatic Access

The library also provides direct programmatic access for AI agent frameworks:

from mcp_proxy_for_aws.client import aws_iam_streamablehttp_client

mcp_client = aws_iam_streamablehttp_client(
    endpoint="https://aws-mcp.us-east-1.api.aws/mcp",
    aws_region="us-east-1",
    aws_service="execute-api",
)

See the ./examples/mcp-client directory for complete examples with LangChain, LlamaIndex, Strands Agents, and Microsoft Agent Framework.

Troubleshooting

Authentication errors

Ensure valid AWS credentials are configured. For long-running sessions, use AWS SSO:

aws sso login

The proxy auto-detects credential expiry and picks up refreshed credentials on the next request.

Tool call timeouts

Use --tool-timeout to set a maximum duration per tool call. Defaults to 300 seconds.

License

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0.

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

mcp_proxy_for_aws_multi-0.1.0.tar.gz (405.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_proxy_for_aws_multi-0.1.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file mcp_proxy_for_aws_multi-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_proxy_for_aws_multi-0.1.0.tar.gz
  • Upload date:
  • Size: 405.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_proxy_for_aws_multi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e582620c6dbf21273d2603187de30f882987f4025d98dac00542158d2a180971
MD5 3bf6390baa3915c358949f051044f352
BLAKE2b-256 a3e1b9f60df44ce04e25acbd49eb3033c34fe576de9123c90c8588eccf893547

See more details on using hashes here.

File details

Details for the file mcp_proxy_for_aws_multi-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_proxy_for_aws_multi-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_proxy_for_aws_multi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ac578969408494ec93f7ad756a5500e7107b0387b2a4b66066c08342d60e833d
MD5 dce52ba4a486e29bac60ab3c4f60a0f0
BLAKE2b-256 25f190c7ac8b0896fa98c6e342e46e446870dd23b3e833f91aefc94c81d8b3fe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page