awsmcproxy
A multi-profile proxy for the AWS MCP Server: opens one SigV4-signed connection per AWS profile and adds a profile argument to every tool, so a single client connection can reach multiple AWS accounts. Needs no config file, no uvx and no mcp-proxy-for-aws.
Install / Use
claude mcp add winebarrel -- npx -y github:winebarrel/awsmcproxyIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of awsmcproxy
awsmcproxy scores 81/100 on our quality scale, 3495th of 4,662 Development & Engineering skills we index.
Its MCP Server is 5.9 KB long, well organised into 8 sections with 8 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 2 days ago, so awsmcproxy is actively maintained.
- It is released under the CC0-1.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-11-01. Automated pattern scan on 2026-11-01. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
awsmcproxy compared with similar skills
All 4 of these similar skills score higher than awsmcproxy; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| awsmcproxy (this skill)by winebarrel | 81 | 3 | 2d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 107.3k | 7d ago | CLAUDE.md |
| taste-skillby Leonxlnx | 100 | 107.1k | 1d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.5k | 1d ago | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 68.5k | today | CLAUDE.md |
Frequently asked questions
- How do I install awsmcproxy?
- Run
claude mcp add winebarrel -- npx -y github:winebarrel/awsmcproxy. The install tabs above show the steps for each supported agent. - Which AI agents does awsmcproxy work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is awsmcproxy safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is CC0-1.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is awsmcproxy still maintained?
- The repository was last updated 2 days ago, so awsmcproxy is actively maintained.
Skill content
View source on GitHubawsmcproxy
A multi-profile proxy for the AWS MCP Server.
The AWS MCP Server authenticates each request with SigV4, so one connection
carries one AWS identity. awsmcproxy opens a connection per AWS profile,
mirrors the server's tools, and adds a profile argument to each tool. When a
tool is called, the proxy signs the request with that profile's credentials.
Claude Code ──stdio──▶ awsmcproxy ──┬─ profile=dev ─SigV4(dev)──▶ https://aws-mcp.us-east-1.api.aws/mcp
└─ profile=prod ─SigV4(prod)─▶ https://aws-mcp.us-east-1.api.aws/mcp
There is nothing to configure. Profiles come from ~/.aws/config and
~/.aws/credentials, and a list_profiles tool tells the agent which names it
can use.
It speaks the streamable HTTP transport and signs requests itself, so
mcp-proxy-for-aws and uvx are not
needed.
Requirements
AWS credentials reachable through the standard credential chain: aws login,
aws sso login, assumed roles, credential_process and static keys all work.
aws login # or: aws sso login --profile my-dev
aws sts get-caller-identity
Install
go install github.com/winebarrel/awsmcproxy/cmd/awsmcproxy@latest
Usage
Usage: awsmcproxy [flags]
Flags:
-h, --help Show help.
-e, --endpoint="https://aws-mcp.us-east-1.api.aws/mcp"
AWS MCP Server endpoint ($AWSMCPROXY_ENDPOINT).
--sso-role=STRING Override sso_role_name for every profile, e.g.
ReadOnlyAccess ($AWSMCPROXY_SSO_ROLE).
--version
The endpoint is a full URL, not a region, so it also reaches
https://aws-mcp.eu-central-1.api.aws/mcp or a Bedrock AgentCore gateway. The
SigV4 service and region are inferred from its hostname.
Reaching AWS through a narrower role
--sso-role replaces sso_role_name for every profile, keeping each profile's
own sso_account_id and SSO session:
awsmcproxy --sso-role ReadOnlyAccess
This is the way to stop an agent writing to AWS. Hiding write-capable tools would not be a boundary; a role that lacks the permissions is one.
The SSO access token is per session, not per role, so the role is swapped without logging in again. A role that is not assigned to you in that account fails when the credentials are first used, not at startup.
Only IAM Identity Center can do this: its GetRoleCredentials takes an account
and a role name, whereas AssumeRole needs the role's full ARN, which differs
per account. A profile that does not use IAM Identity Center is left alone and
keeps its own credentials.
Claude Code
Register it as an MCP server:
{
"mcpServers": {
"awsmcproxy": {
"command": "awsmcproxy"
}
}
}
Registering the proxy does not stop the agent reaching AWS another way. The
aws CLI is right there, and a call through it carries no profile argument,
is not signed by the proxy, and keeps none of the narrowing --sso-role was
set up to do. Deny it:
{
"permissions": {
"deny": ["Bash(aws *)"]
}
}
Put that in ~/.claude/settings.json to cover every project, or in a project's
.claude/settings.json. A deny rule beats any allow rule, is matched against
each subcommand of a pipeline separately, and is matched through a leading
environment assignment, so AWS_PROFILE=prod aws s3 rm ... is blocked as well.
Other spellings are not: /opt/homebrew/bin/aws and sh -c 'aws ...' both get
through. It routes the agent to the proxy; it is not a boundary. The boundary
is the role the credentials carry.
Agent skill
skills/awsmcproxy tells an agent how to drive the proxy: list the profiles
before the first call, ask when more than one name fits, and read an
AccessDenied as the answer rather than something to route around. Install it
with the skills CLI:
npx skills add winebarrel/awsmcproxy # into ./.claude/skills
npx skills add winebarrel/awsmcproxy -g # into ~/.claude/skills
Or copy skills/awsmcproxy into .claude/skills/ by hand. Either way Claude
Code picks it up on the next start.
How it works
- On startup the proxy connects to the AWS MCP Server and lists its tools. Any identity will do, so it tries the default credential chain first and then each profile in turn.
- Each tool is re-registered with a required
profilestring argument. A proxy-nativelist_profilestool is also added, which reads~/.aws/configand~/.aws/credentialson every call -- a profile added while the proxy is running is usable right away, so the valid names are deliberately not frozen into the tool schemas. - On a tool call, the proxy strips the
profileargument, looks up that profile's connection (opening it lazily, then caching it), and forwards the call over it. - Every request is signed with SigV4 using credentials retrieved from the
profile at request time, and carries that profile's region in the MCP
_metafield asAWS_REGION, which is the default region for the AWS operations the server runs. A failed call drops the connection, so the next one reconnects with freshly retrieved credentials.
Profile names are read the way aws-sdk-go-v2 reads them, so a name from
list_profiles is always a name the SDK accepts: in ~/.aws/config a
non-default profile needs the profile prefix, while in ~/.aws/credentials
it must not have one.
Related Skills
Agent-Reach
107.3kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
taste-skill
107.1kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
headroom
78.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
68.5kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
