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
- Python 3.10+
- uv package manager
- AWS credentials configured (for AWS MCP endpoints)
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
- Endpoint detection — URLs matching
.api.aws/are signed with SigV4. Other URLs use plain HTTP. - Provider registration — each endpoint becomes a FastMCP
ProxyProvider - Tool merging —
tools/listqueries all providers in parallel and merges results - Call routing —
tools/callis routed to the provider that owns the tool - Same for resources —
resources/listandresources/readfollow 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e582620c6dbf21273d2603187de30f882987f4025d98dac00542158d2a180971
|
|
| MD5 |
3bf6390baa3915c358949f051044f352
|
|
| BLAKE2b-256 |
a3e1b9f60df44ce04e25acbd49eb3033c34fe576de9123c90c8588eccf893547
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac578969408494ec93f7ad756a5500e7107b0387b2a4b66066c08342d60e833d
|
|
| MD5 |
dce52ba4a486e29bac60ab3c4f60a0f0
|
|
| BLAKE2b-256 |
25f190c7ac8b0896fa98c6e342e46e446870dd23b3e833f91aefc94c81d8b3fe
|