Skip to content

Latest commit

 

History

History
149 lines (113 loc) · 4.4 KB

File metadata and controls

149 lines (113 loc) · 4.4 KB

Contributing

First off, thanks for taking the time to contribute to this MCP server!

All types of contributions are encouraged and valued. See the Table of Contents for more details.

Table of Contents

Reporting Bugs

  • Before reporting bugs, please make sure you are on the latest commit.
  • Go through existing issues and check no users have reported the same bug.
  • Submit a GitHub Issue with detailed steps on how to reproduce this bug, as well as your system information such as your MCP client used, LLM agent, operating system etc.

Feature Enhancement

  • Before submitting a pull request, please make sure you are on the latest commit.
  • Double check your feature enhancement is within the scope of this project, in particular, this server is scoped down to executing AWS APIs from Natural Language input, and will not cover use cases that are not generally applicable to all users. It is strongly recommended to not add new tools unless you find them necessary and cover many use cases.
  • Submit a pull request

Local Development

To make changes to this MCP locally and run it:

  1. Clone this repository:
git clone https://github.com/awslabs/mcp.git
cd mcp/src/aws-api-mcp-server
  1. Install gh from the installation guide

    • Log in by gh auth login
    • Verify log-in status by gh auth status. ---> You should see "Logged in to github.com account ***"
  2. Install dependencies:

uv sync
  1. Configure AWS credentials and environment variables:

    • Ensure you have AWS credentials configured as you did during installation, read more here
    • The server supports both STDIO (default) and Streamable HTTP transport modes. For local development, use STDIO mode. For network scenarios, you can set AWS_API_MCP_TRANSPORT to "streamable-http" and configure the host and port with AWS_API_MCP_HOST and AWS_API_MCP_PORT.
  2. Run the server: Add the following code to your MCP client configuration (e.g., for Kiro, edit ~/.kiro/settings/mcp.json). Configuration is similar to "Installation" in README.md.

{
  "mcpServers": {
    "awslabs.aws-api-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "<your_working_directory>/mcp/src/aws-api-mcp-server",
        "run",
        "awslabs.aws-api-mcp-server"
      ],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_API_MCP_PROFILE_NAME": "<your_profile_name>",
        "READ_OPERATIONS_ONLY": "false",
        "AWS_API_MCP_TELEMETRY": "true"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

 

Publishing your Change

Initial Setup

  1. Fork the repository (if you haven't already):

  2. Add upstream remote (to sync with main repo):

git remote add upstream https://github.com/awslabs/mcp.git

Making Changes

  1. Sync with upstream and create a new branch:
git checkout main
git pull upstream main
git push origin main  # Update your fork
git checkout -b feat/your-feature-name  # Use descriptive prefix: feat/, fix/, docs/
  1. Make your changes and validate:
# Ensure you're in the correct directory
cd mcp/src/aws-api-mcp-server

# Run type checking
uv run --frozen pyright

# Run pre-commit checks
cd ../..
pre-commit run --all-files
  1. Commit your changes:
git add .
git commit -m "feat: add descriptive commit message" # Use descriptive prefix: feat/, fix/, docs/

Publishing and Updates

  1. Push and create PR:
git push origin feat/your-feature-name
gh pr create --title "Your PR Title" --body "Description of changes"

Updating Existing PRs

  • Add new commits:
git add .
git commit -m "feat: address review feedback" # Use descriptive prefix: feat/, fix/, docs/
git push origin feat/your-feature-name

Syncing with Upstream

When your branch is out of sync:

git checkout main
git pull upstream main
git checkout feat/your-feature-name
git merge main