Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ body:
- type: textarea
id: description
attributes:
label: Describe the bug (Security related? please follow <https://github.com/aws/aws-mcp-proxy/security/policy> to report them to AWS Security directly.)
label: Describe the bug (Security related? please follow <https://github.com/aws/mcp-proxy-for-aws/security/policy> to report them to AWS Security directly.)
description: What is the problem? A clear and concise description of the bug.
validations:
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ body:
- type: textarea
id: description
attributes:
label: Describe the feature (Security related? please follow <https://github.com/aws/aws-mcp-proxy/security/policy> to report them to AWS Security directly.)
label: Describe the feature (Security related? please follow <https://github.com/aws/mcp-proxy-for-aws/security/policy> to report them to AWS Security directly.)
description: A clear and concise description of the feature you are proposing.
validations:
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/questions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ body:
- type: textarea
id: question
attributes:
label: Your question (Security related? please follow <https://github.com/aws/aws-mcp-proxy/security/policy> to report them to AWS Security directly.)
label: Your question (Security related? please follow <https://github.com/aws/mcp-proxy-for-aws/security/policy> to report them to AWS Security directly.)
description: A clear and concise description of the question.
validations:
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

If your change doesn't seem to apply, please leave them unchecked.

* [ ] I have reviewed the [contributing guidelines](https://github.com/aws/aws-mcp-proxy/blob/main/CONTRIBUTING.md)
* [ ] I have reviewed the [contributing guidelines](https://github.com/aws/mcp-proxy-for-aws/blob/main/CONTRIBUTING.md)
* [ ] I have performed a self-review of this change
* [ ] Changes have been tested
* [ ] Changes are documented
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-integ.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
with:
aws-region: us-west-2
role-to-assume: ${{ secrets.IntegTestRoleArn }}
role-session-name: aws-mcp-proxy-integ-tests
role-session-name: mcp-proxy-for-aws-integ-tests

- name: Run integration tests
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
defaults:
run:
working-directory: .
name: Build AWS MCP Proxy
name: Build MCP Proxy for AWS
runs-on: ubuntu-latest
permissions:
contents: read
Expand Down Expand Up @@ -185,5 +185,5 @@ jobs:
- name: Upload Software Bill of Materials
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: sbom-aws-mcp-proxy
name: sbom-mcp-proxy-for-aws
path: sbom.json
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to AWS MCP Proxy
# Contributing to MCP Proxy for AWS

Thank you for your interest in contributing to the AWS MCP Proxy Server! We welcome contributions from the community.
Thank you for your interest in contributing to the MCP Proxy for AWS! We welcome contributions from the community.

## Quick Start

Expand Down Expand Up @@ -39,7 +39,7 @@ For detailed technical information, development workflow, and troubleshooting, s
- Fix typos or broken links

## Code of Conduct
> See [CODE_OF_CONDUCT.md](https://github.com/aws/aws-mcp-proxy/blob/main/CODE_OF_CONDUCT.md)
> See [CODE_OF_CONDUCT.md](https://github.com/aws/mcp-proxy-for-aws/blob/main/CODE_OF_CONDUCT.md)

- **Be respectful and inclusive** in all interactions
- **Focus on constructive feedback** during code reviews
Expand All @@ -52,7 +52,7 @@ For detailed technical information, development workflow, and troubleshooting, s
- [ ] Read [DEVELOPMENT.md](DEVELOPMENT.md) and set up your environment
- [ ] Create tests for new functionality
- [ ] Ensure all tests pass locally
- [ ] Follow [integ/README.md](https://github.com/aws/aws-mcp-proxy/blob/main/tests/integ/README.md) to run integration tests
- [ ] Follow [integ/README.md](https://github.com/aws/mcp-proxy-for-aws/blob/main/tests/integ/README.md) to run integration tests
- [ ] Run code quality tools (`ruff`, `pyright`, `pre-commit`)
- [ ] Update documentation if needed

Expand Down
22 changes: 11 additions & 11 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Development Guide

This guide covers the development workflow for the AWS MCP Proxy Server.
This guide covers the development workflow of MCP Proxy for AWS.

## Table of Contents

Expand Down Expand Up @@ -29,8 +29,8 @@ Before you begin development, ensure you have the following installed:

```bash
# Clone the repository
git clone git@github.com:aws/aws-mcp-proxy.git
cd aws-mcp-proxy
git clone git@github.com:aws/mcp-proxy-for-aws.git
cd mcp-proxy-for-aws

# Install dependencies including dev dependencies
uv sync --group dev
Expand All @@ -43,7 +43,7 @@ uv run pre-commit install

```bash
# Check that the server can start
uv run aws_mcp_proxy/server.py --help
uv run mcp_proxy_for_aws/server.py --help

# Run tests to ensure everything is working
uv run pytest
Expand All @@ -52,7 +52,7 @@ uv run pytest
## Project Structure

```
aws_mcp_proxy/
mcp_proxy_for_aws/
├── __init__.py # Package initialization
├── server.py # Main MCP server implementation
├── mcp_proxy_manager.py # MCP proxy management logic
Expand Down Expand Up @@ -96,22 +96,22 @@ git commit -m "feat: add new feature description"
#### Basic Local Execution
```bash
# Run the server directly
uv run aws_mcp_proxy/server.py --endpoint <your-endpoint>
uv run mcp_proxy_for_aws/server.py --endpoint <your-endpoint>
```

#### With MCP Inspector (for debugging)
```bash
# Run with MCP inspector for interactive debugging
npx @modelcontextprotocol/inspector uv run \
aws_mcp_proxy/server.py \
mcp_proxy_for_aws/server.py \
--endpoint <your-endpoint>
```
A browser window will open automatically outside of your terminal window. Navigate to the browser window. Then click "Connect" in the opened browser window to interact with the server.

#### Advanced Options
```bash
# Run with specific AWS profile and write permissions
uv run aws_mcp_proxy/server.py \
uv run mcp_proxy_for_aws/server.py \
--endpoint <your-endpoint> \
--service <aws-service> \
--profile <aws-profile> \
Expand Down Expand Up @@ -284,7 +284,7 @@ If your commit message doesn't follow conventional format, the pre-commit hook w
#### Configuration

Commitizen is configured in `pyproject.toml`:
- **Version files**: Automatically updates version in `pyproject.toml` and `aws_mcp_proxy/__init__.py`
- **Version files**: Automatically updates version in `pyproject.toml` and `mcp_proxy_for_aws/__init__.py`
- **Tag format**: Creates git tags in `v{version}` format (e.g., `v0.1.0`)
- **Changelog**: Automatically generates `CHANGELOG.md` when bumping versions

Expand Down Expand Up @@ -378,7 +378,7 @@ Enable debug logging for troubleshooting:
```bash
# Set logging level to debug
export LOG_LEVEL=DEBUG
uv run aws_mcp_proxy/server.py --endpoint <endpoint>
uv run mcp_proxy_for_aws/server.py --endpoint <endpoint>
```

## Additional Resources
Expand All @@ -391,6 +391,6 @@ uv run aws_mcp_proxy/server.py --endpoint <endpoint>
---

For questions or issues not covered in this guide, please:
1. Check existing [GitHub Issues](https://github.com/aws/aws-mcp-proxy/issues)
1. Check existing [GitHub Issues](https://github.com/aws/mcp-proxy-for-aws/issues)
2. Review the [MCP Specification](https://spec.modelcontextprotocol.io/)
3. Create a new issue with detailed information about your problem
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,4 @@ USER app

# When running the container, add --db-path and a bind mount to the host's db file
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "docker-healthcheck.sh" ]
ENTRYPOINT ["aws-mcp-proxy"]
ENTRYPOINT ["mcp-proxy-for-aws"]
2 changes: 1 addition & 1 deletion NOTICE
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
aws-mcp-proxy
mcp-proxy-for-aws
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
25 changes: 11 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# AWS MCP Proxy

This README provides an overview and configuration information for the AWS MCP Proxy Server. You can use this project to set up and deploy to a configured AWS MCP Proxy Server.
# MCP Proxy for AWS

## Overview

The AWS MCP Proxy serves as a lightweight, client-side bridge between MCP clients (AI assistants and developer tools) and backend AWS MCP servers.
The MCP Proxy for AWS serves as a lightweight, client-side bridge between MCP clients (AI assistants and developer tools) and backend AWS MCP servers.

The proxy handles [SigV4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) authentication using local AWS credentials and provides dynamic tool discovery, making it ideal for developers who want access to AWS Hosted SigV4 secured MCP Servers without complex gateway setups.

Expand All @@ -19,26 +17,25 @@ The proxy handles [SigV4](https://docs.aws.amazon.com/IAM/latest/UserGuide/refer

### Using PyPi

*Note: The following command should run successfully after first publishing to PyPi.*

```
# Run the server
uvx aws-mcp-proxy@latest <SigV4 MCP endpoint URL>
uvx mcp-proxy-for-aws@latest <SigV4 MCP endpoint URL>
```

### Using Local Repository

```
git clone https://github.com/aws/aws-mcp-proxy.git
cd aws-mcp-proxy
uv run aws_mcp_proxy/server.py <SigV4 MCP endpoint URL>
git clone https://github.com/aws/mcp-proxy-for-aws.git
cd mcp-proxy-for-aws
uv run mcp_proxy_for_aws/server.py <SigV4 MCP endpoint URL>
```

### Using Docker

```
# Build the Docker image
docker build -t aws-mcp-proxy .
docker build -t mcp-proxy-for-aws .
```

## Configuration Parameters
Expand All @@ -56,7 +53,7 @@ docker build -t aws-mcp-proxy .

## Optional Environment Variables

Set the environment variables for the AWS MCP Proxy:
Set the environment variables for the MCP Proxy for AWS:

```
# Credentials through profile
Expand Down Expand Up @@ -87,7 +84,7 @@ Add the following configuration to your MCP client config file (e.g., for Amazon
"command": "uv",
"args": [
"--directory",
"/path/to/aws_mcp_proxy",
"/path/to/mcp_proxy_for_aws",
"run",
"server.py",
"<SigV4 MCP endpoint URL>",
Expand Down Expand Up @@ -118,7 +115,7 @@ Add the following configuration to your MCP client config file (e.g., for Amazon
"--rm",
"--volume",
"/full/path/to/.aws:/app/.aws:ro",
"aws-mcp-proxy",
"mcp-proxy-for-aws",
"<SigV4 MCP endpoint URL>"
],
"env": {}
Expand Down Expand Up @@ -147,4 +144,4 @@ Licensed under the Apache License, Version 2.0 (the "License").

## Disclaimer

This aws-mcp-proxy package is provided "as is" without warranty of any kind, express or implied, and is intended for development, testing, and evaluation purposes only. We do not provide any guarantee on the quality, performance, or reliability of this package. LLMs are non-deterministic and they make mistakes, we advise you to always thoroughly test and follow the best practices of your organization before using these tools on customer facing accounts. Users of this package are solely responsible for implementing proper security controls and MUST use AWS Identity and Access Management (IAM) to manage access to AWS resources. You are responsible for configuring appropriate IAM policies, roles, and permissions, and any security vulnerabilities resulting from improper IAM configuration are your sole responsibility. By using this package, you acknowledge that you have read and understood this disclaimer and agree to use the package at your own risk.
This mcp-proxy-for-aws package is provided "as is" without warranty of any kind, express or implied, and is intended for development, testing, and evaluation purposes only. We do not provide any guarantee on the quality, performance, or reliability of this package. LLMs are non-deterministic and they make mistakes, we advise you to always thoroughly test and follow the best practices of your organization before using these tools on customer facing accounts. Users of this package are solely responsible for implementing proper security controls and MUST use AWS Identity and Access Management (IAM) to manage access to AWS resources. You are responsible for configuring appropriate IAM policies, roles, and permissions, and any security vulnerabilities resulting from improper IAM configuration are your sole responsibility. By using this package, you acknowledge that you have read and understood this disclaimer and agree to use the package at your own risk.
4 changes: 2 additions & 2 deletions aws_mcp_proxy/__init__.py → mcp_proxy_for_aws/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.

"""aws-mcp-proxy"""
"""mcp-proxy-for-aws"""

from importlib.metadata import version as _metadata_version


__all__ = ['__version__']
__version__ = _metadata_version('aws-mcp-proxy')
__version__ = _metadata_version('mcp-proxy-for-aws')
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

"""Logging configuration for AWS MCP Proxy."""
"""Logging configuration for MCP Proxy for AWS."""

import logging
import sys
Expand Down
30 changes: 15 additions & 15 deletions aws_mcp_proxy/server.py → mcp_proxy_for_aws/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

"""AWS MCP Proxy Server entry point.
"""MCP Proxy for AWS Server entry point.

This server provides a unified interface to backend servers by:
1. Using JSON-RPC calls to MCP endpoints for a single backend server
Expand All @@ -26,17 +26,17 @@
import asyncio
import logging
import os
from aws_mcp_proxy import __version__
from aws_mcp_proxy.logging_config import configure_logging
from aws_mcp_proxy.middleware.tool_filter import ToolFilteringMiddleware
from aws_mcp_proxy.utils import (
from fastmcp.server.middleware.error_handling import RetryMiddleware
from fastmcp.server.middleware.logging import LoggingMiddleware
from fastmcp.server.server import FastMCP
from mcp_proxy_for_aws import __version__
from mcp_proxy_for_aws.logging_config import configure_logging
from mcp_proxy_for_aws.middleware.tool_filter import ToolFilteringMiddleware
from mcp_proxy_for_aws.utils import (
create_transport_with_sigv4,
determine_aws_region,
determine_service_name,
)
from fastmcp.server.middleware.error_handling import RetryMiddleware
from fastmcp.server.middleware.logging import LoggingMiddleware
from fastmcp.server.server import FastMCP
from typing import Any


Expand Down Expand Up @@ -106,7 +106,7 @@ def add_logging_middleware(mcp: FastMCP, log_level: int) -> None:
"""Add logging middleware."""
if log_level != 'DEBUG':
return
middleware_logger = logging.getLogger('aws-mcp-proxy-middleware-logger')
middleware_logger = logging.getLogger('mcp-proxy-for-aws-middleware-logger')
middleware_logger.setLevel(log_level)
mcp.add_middleware(
LoggingMiddleware(
Expand All @@ -121,18 +121,18 @@ def add_logging_middleware(mcp: FastMCP, log_level: int) -> None:
def parse_args():
"""Parse command line arguments."""
parser = argparse.ArgumentParser(
description=f'AWS MCP Proxy v{__version__}',
description=f'MCP Proxy for AWS v{__version__}',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
# Run with your endpoint
aws-mcp-proxy <SigV4 MCP endpoint URL>
mcp-proxy-for-aws <SigV4 MCP endpoint URL>

# Run with custom service and profile
aws-mcp-proxy <SigV4 MCP endpoint URL> --service <aws-service> --profile default
mcp-proxy-for-aws <SigV4 MCP endpoint URL> --service <aws-service> --profile default

# Run with write permissions enabled
aws-mcp-proxy <SigV4 MCP endpoint URL> --read-only
mcp-proxy-for-aws <SigV4 MCP endpoint URL> --read-only
""",
)

Expand Down Expand Up @@ -189,13 +189,13 @@ def main():

# Configure logging
configure_logging(args.log_level)
logger.info('Starting AWS MCP Proxy Server')
logger.info('Starting MCP Proxy for AWS Server')

# Create FastMCP instance
mcp = FastMCP[Any](
name='MCP Proxy',
instructions=(
'AWS MCP Proxy Server that provides access to backend servers through a single interface. '
'MCP Proxy for AWS Server that provides access to backend servers through a single interface. '
'This proxy handles authentication and request routing to the appropriate backend services.'
),
)
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions aws_mcp_proxy/utils.py → mcp_proxy_for_aws/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.

"""Utility functions for the AWS MCP Proxy."""
"""Utility functions for the MCP Proxy for AWS."""

import httpx
import logging
import os
import re
from aws_mcp_proxy.sigv4_helper import create_sigv4_client
from fastmcp.client.transports import StreamableHttpTransport
from mcp_proxy_for_aws.sigv4_helper import create_sigv4_client
from typing import Dict, Optional
from urllib.parse import urlparse

Expand Down
Loading