
Aws Mcp Connector
io.github.FerhatDundarPublished by GitHub account FerhatDundarv0.1.2Updated Oct 24, 2026
MCP server for the AWS CLI. Read-only by default; single Go binary.
Overview
A local MCP server that lets an AI assistant run AWS CLI commands across any AWS service, read-only by default with gated writes.
- What you can do
- Run arbitrary AWS CLI service operations through aws_exec, read-only unless writes are enabled and each call confirms it. Look up AWS CLI help text for a service or subcommand before running commands. Show which AWS identity the configured credentials resolve to. List named AWS profiles configured on the host. Return results as markdown tables or JSON.
- When to use it
- Use it when you want an assistant to inspect or operate AWS resources through the AWS CLI you already have configured, without a hand-picked set of service tools. It suits exploration, debugging and read-only audits, with writes possible only after explicit opt-in.
- Requirements
- Runs as a local process (prebuilt bundles for macOS, Linux and Windows, or build from Go source). Needs the AWS CLI installed and configured on the host, with credentials via profile, SSO, IAM role or the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_SESSION_TOKEN variables. Optional settings include AWS_PROFILE, AWS_REGION, AWS_MCP_ALLOWED_SERVICES, AWS_MCP_ALLOW_WRITE and AWS_MCP_CLI_PATH. Desktop only.
Installation
In SourceWeft
- Open Aws Mcp Connector in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
🔌 aws-mcp-connector
Talk to AWS CLI from an MCP-speaking agent.
[CI] [CodeQL] [Latest release] [MCP Registry] [Go Reference] [License: MIT] [MCP] [Conventional Commits] [PRs Welcome]
A single static Go binary that speaks the Model Context Protocol
and lets an agent run AWS CLI commands: any aws <service> <operation>
invocation, across every service the CLI supports, with a read-only-by-default
safety gate on anything that mutates state.
No Python, no uv, no runtime dependency to install — just a binary and
an .mcp.json. It shells out to the aws binary already installed and
configured on the host (profile, SSO, IAM role, or static keys — whatever
the AWS CLI's own credential chain resolves) instead of reimplementing the
AWS SDK, so it gets the full breadth of the CLI for free rather than a
hand-curated subset of services.
✨ Why this exists
An agent that only has a narrow, hand-picked set of AWS tools hits a wall the moment you need something outside that set. This connector instead wraps the AWS CLI itself, so an agent can run
aws s3 ls,aws ec2 describe-instances,aws iam list-users— anything the CLI can do — without waiting on a new tool to be written for it. Mutating commands are blocked by default and require both a server-level opt-in and a per-callconfirm=true, so exploring/debugging is safe out of the box.
🧰 Tools
Every tool accepts an optional response_format: markdown (default,
pretty tables for a chat UI) or json (for programmatic use).
🚀 Quickstart
Fastest path: grab a prebuilt bundle from the latest release —
download aws-mcp-connector-plugin-<version>-<os>-<arch>.zip, unzip it,
and point Cowork/Claude at the plugin/ folder inside (see step 4 of
SETUP.md). No Go toolchain required.
From source:
Or make build — see the Makefile for every shortcut
(test, vet, fmt, lint, tidy).
Full walkthrough — including wiring this up as a Claude/Cowork plugin — is in SETUP.md.
🔐 Configuration
Everything is environment variables, passed through by the plugin's
.mcp.json:
🧪 Quality bar
This isn't a toy script — it's got the same checks you'd expect from a production Go service:
- ✅ Unit tests for every input-validation path (
go test ./...) - ✅
go vet+gofmtclean - ✅ golangci-lint (govet, staticcheck, errcheck, gosec, and more)
- ✅ govulncheck — no known vulnerabilities in the dependency graph
- ✅ CodeQL static security analysis on every push
- ✅ End-to-end verified against a real (or sandboxed) AWS CLI backend — not mocks
- ✅ Dependabot keeps Go modules and Actions current
All of it runs in CI on every push and PR.
🏷️ Releases & versioning
Versions follow semver and are cut automatically by
release-please from
Conventional Commits on main:
fix: ...→ patch (v0.1.0→v0.1.1)feat: ...→ minor (v0.1.1→v0.2.0)feat!: .../BREAKING CHANGE:footer → major (v0.2.0→v1.0.0)
Every merged PR updates a standing "chore(main): release vX.Y.Z" PR with an auto-generated CHANGELOG.md. Merging that PR:
- tags the release and publishes it on GitHub
- builds and attaches zipped, ready-to-install plugin bundles for linux/darwin/windows × amd64/arm64
- regenerates
server.jsonfrom those exact assets (fresh version + SHA-256 hashes) and publishes it to the official MCP Registry viamcp-publisher, authenticated with GitHub OIDC — no stored secrets
See .github/workflows/release-please.yml
and .github/workflows/publish-mcp-registry.yml
(also runnable by hand for an existing tag via workflow_dispatch).
📁 Layout
🤝 Contributing
PRs and issues are very welcome — see CONTRIBUTING.md for the full guide (setup, coding conventions, how to add a new tool) and the Code of Conduct.
main is protected: every change, including the maintainer's, lands via
pull request with CI green. PR titles must follow
Conventional Commits — that's what
drives the automatic versioning above.
Found a security issue? Please follow SECURITY.md instead of opening a public issue.
📄 License
MIT © FerhatDundar
Source: README.md at commit b68a269
Tools
0Version history
1- v0.1.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
