Skip to content

rangertaha/aws-mcp

Repository files navigation

aws-mcp

CI Status: under construction Go Reference Go Version License: MIT

🚧   UNDER CONSTRUCTION   🚧

This server is a work in progress.

APIs, configuration, and tool names may still change.


A Model Context Protocol (MCP) server, written in Go, exposing AWS services as tools an LLM client (Claude Desktop/Code, Cursor, and others) can call. Built on the official aws-sdk-go-v2.

Rather than hand-writing a tool per AWS API call, aws-mcp discovers every operation on every configured AWS SDK v2 service client via reflection and dispatches calls to them generically — 426 services, 18,783 operations, through a handful of meta tools:

Tool Purpose
aws_list_services List every AWS service reachable through aws_invoke.
aws_list_operations List a service's operations, flagging mutating/destructive/unsupported ones.
aws_describe_operation Get an operation's JSON Schema (input and output) to build a call.
aws_invoke Call any cataloged operation by service/operation name + JSON input.
aws_list_profiles List AWS profiles from the shared config/credentials files.
aws_use_profile Switch the active AWS profile.
aws_whoami Verify credentials via STS GetCallerIdentity.

📖 Full documentation: rangertaha.github.io/aws-mcp — install options, MCP client setup, the full 426-service list, architecture, and development guide all live there. This README only covers the quickstart.

Quickstart

go install github.com/rangertaha/aws-mcp/cmd/aws@latest
aws test    # verify credentials (STS GetCallerIdentity)
aws mcp     # run the MCP server over stdio

See Install for prebuilt binaries and building from source. Note: the aws binary is unusually large (~670MB) — an inherent trade-off of generic reflection-based dispatch, explained there and in Architecture.

Credentials come from the standard AWS chain (environment, ~/.aws, SSO, or an attached IAM role) — nothing is stored by the server. Behavior is configured with:

Variable Required Description
AWS_REGION no Region (standard AWS variable; also the override).
AWS_TOOLSETS no Comma-separated AWS service names to enable, or all.
AWS_READONLY no true to reject mutating operations (see aws_list_operations).

See Configuration for MCP client setup (Claude Desktop/Code) and local development.

Documentation

  • Install — prebuilt binaries, go install, build from source.
  • Configuration — environment variables, MCP client setup, local dev.
  • CLIaws mcp, aws test.
  • Services — the full, generated list of all 426 services and how to add one.
  • Prompts — built-in guided workflows.
  • Architecture — how discovery and dispatch work.
  • Development — build, test, lint, smoke-test, release.

Changelog

See CHANGELOG.md.

License

MIT — see LICENSE.

About

AWS MCP Server in Golang

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors