Aws Mcp Connector

io.github.FerhatDundar由 GitHub 账号 FerhatDundar 发布v0.1.2更新于 Oct 24, 2026

MCP server for the AWS CLI. Read-only by default; single Go binary.

概览

AI 生成的概览

一个本地 MCP 服务器,让 AI 助手通过 AWS CLI 对任意 AWS 服务执行命令,默认只读,写操作需显式开启。

可以做什么
通过 aws_exec 执行任意 AWS CLI 服务操作,默认只读,除非开启写权限且每次调用确认。查询服务或子命令的 AWS CLI 帮助文本,便于先确认语法。显示当前凭证对应的 AWS 身份(账户、ARN、用户或角色)。列出主机上配置的命名 AWS 配置文件。结果可按 markdown 表格或 JSON 返回。
适用场景
当你希望助手通过已配置好的 AWS CLI 查看或操作 AWS 资源,而不局限于预先挑选的一组服务工具时使用。适合探索、调试和只读审计;写操作仅在明确开启后可用。
运行要求
作为本地进程运行(提供 macOS、Linux、Windows 预编译包,也可从 Go 源码构建)。需要主机已安装并配置 AWS CLI,凭证可来自 profile、SSO、IAM 角色,或 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN 变量。可选配置包括 AWS_PROFILE、AWS_REGION、AWS_MCP_ALLOWED_SERVICES、AWS_MCP_ALLOW_WRITE 和 AWS_MCP_CLI_PATH。仅限桌面端。
安装前请注意
它能执行凭证权限内的任意 AWS CLI 命令,应使用权限受限的凭证。写操作默认关闭;开启 AWS_MCP_ALLOW_WRITE 并在每次调用确认后,可执行会修改或删除云资源的命令。AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 和 AWS_SESSION_TOKEN 属于机密,不应提交到代码库。AWS_MCP_ALLOWED_SERVICES 未设置时允许所有服务。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Aws Mcp Connector,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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-call confirm=true, so exploring/debugging is safe out of the box.

🧰 Tools

ToolWhat it doesWrite?
aws_execRun any aws <service> <operation> ... command. Read-only by default — mutating commands need AWS_MCP_ALLOW_WRITE=true on the server and confirm=true on the call.✅ (gated)
aws_helpShow aws <service> [subcommand] help text — always safe, use it to check exact syntax before calling aws_exec.
aws_whoamiShow the AWS identity (account, ARN, user/role) the configured credentials resolve to.
aws_list_profilesList named profiles configured in ~/.aws/config on the host.

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:

bash
# 1. Buildcd go-servergo mod tidygo build -o aws-connector-server .cp aws-connector-server ../plugin/servers/go/
# 2. Set up auth — needs the aws CLI itself installed and configured#    (aws configure / aws sso login) — see SETUP.mdexport AWS_PROFILE=default   # optional, only if not using "default"
# 3. Run./go-server/aws-connector-server   # serves MCP over stdio

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:

VariablePurposeDefault
AWS_PROFILENamed profile from ~/.aws/config to use.unset (default profile)
AWS_REGIONDefault region if not set elsewhere.AWS CLI's own default
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKENStatic credentials — only needed if not using a profile/SSO/role.unset
AWS_MCP_ALLOW_WRITE"true" to permit mutating commands at all (still needs confirm=true per call).false (read-only)
AWS_MCP_ALLOWED_SERVICESComma-separated allowlist of AWS CLI service names, e.g. "s3,ec2".unset (unrestricted)
AWS_MCP_CLI_PATHPath to the aws binary.aws resolved via PATH

🧪 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 + gofmt clean
  • ✅ 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:

  1. tags the release and publishes it on GitHub
  2. builds and attaches zipped, ready-to-install plugin bundles for linux/darwin/windows × amd64/arm64
  3. regenerates server.json from those exact assets (fresh version + SHA-256 hashes) and publishes it to the official MCP Registry via mcp-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

aws-mcp-connector/├── README.md                  ← you are here├── SETUP.md                   ← step-by-step setup guide├── CONTRIBUTING.md             ← how to contribute├── CODE_OF_CONDUCT.md├── SECURITY.md                 ← vulnerability reporting├── CODEOWNERS├── LICENSE                     ← MIT├── Makefile                    ← build / test / lint shortcuts├── .golangci.yml                ← lint rules├── release-please-config.json  ← semver/changelog automation config├── .release-please-manifest.json├── server.json                  ← MCP Registry manifest (regenerated fresh per release by CI)├── scripts/│   └── render-server-json.sh    ← rebuilds server.json from a release's zip assets├── .github/│   ├── workflows/│   │   ├── ci.yml                     ← build, vet, test, lint, govulncheck│   │   ├── codeql.yml                 ← security scanning│   │   ├── pr-title.yml               ← Conventional Commits PR title check│   │   ├── release-please.yml         ← version PRs, tagging, GitHub releases│   │   ├── publish-mcp-registry.yml   ← publishes server.json to the MCP Registry│   │   └── rebuild-release-assets.yml ← manual re-attach fallback│   ├── ISSUE_TEMPLATE/│   ├── PULL_REQUEST_TEMPLATE.md│   └── dependabot.yml├── go-server/                  ← the MCP server source│   ├── main.go│   ├── main_test.go│   ├── go.mod / go.sum│   └── README.md└── plugin/                     ← installable Cowork/Claude plugin    ├── .claude-plugin/plugin.json    ├── .mcp.json                ← holds credentials locally — never commit real ones    └── servers/go/              ← compiled binary goes here

🤝 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

来源:README.md,提交 b68a269

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分