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.
- 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.
- 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
To make changes to this MCP locally and run it:
- Clone this repository:
git clone https://github.com/awslabs/mcp.git
cd mcp/src/aws-api-mcp-server-
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 ***"
- Log in by
-
Install dependencies:
uv sync-
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_TRANSPORTto"streamable-http"and configure the host and port withAWS_API_MCP_HOSTandAWS_API_MCP_PORT.
-
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": []
}
}
}
-
Fork the repository (if you haven't already):
- Go to https://github.com/awslabs/mcp and click "Fork"
- Clone your fork:
git clone https://github.com/<your-username>/mcp.git
-
Add upstream remote (to sync with main repo):
git remote add upstream https://github.com/awslabs/mcp.git- 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/- 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- Commit your changes:
git add .
git commit -m "feat: add descriptive commit message" # Use descriptive prefix: feat/, fix/, docs/- Push and create PR:
git push origin feat/your-feature-name
gh pr create --title "Your PR Title" --body "Description of changes"- Add new commits:
git add .
git commit -m "feat: address review feedback" # Use descriptive prefix: feat/, fix/, docs/
git push origin feat/your-feature-nameWhen your branch is out of sync:
git checkout main
git pull upstream main
git checkout feat/your-feature-name
git merge main