mcpField
A
AWS CLI MCP Server

AWS CLI MCP Server

本地服务
github.com/musaddiq-dev云与基础设施023 周前更新

关于 AWS CLI MCP Server

AWS CLI MCP Server 让 MCP 客户端通过 AWS CLI 检查和操作 AWS,适用于管理 AWS 资源的用户。它提供命令执行、建议及账户和区域查询,并对 Shell 运算符和疑似破坏性命令设有防护。

主要功能

  1. 01执行 AWS CLI 命令
  2. 02根据自然语言建议命令
  3. 03列出可用 AWS 区域
  4. 04查询调用者身份
  5. 05标记疑似破坏性操作

适用场景

  1. 01检查 AWS 账户身份
  2. 02查找 AWS 任务的命令
  3. 03从 MCP 客户端执行 AWS CLI 操作

MCP 相关

它通过 stdio 向 MCP 客户端提供 AWS CLI 执行、命令建议、区域查询和调用者身份工具。命令使用服务器进程可用的凭证执行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"musaddiq-dev-aws-cli": {
"command": "uvx",
"args": [
"mdev-aws-mcp-server"
],
"env": {
"AWS_REGION": "<AWS_REGION>",
"AWS_PROFILE": "<AWS_PROFILE>",
"AWS_MCP_WORKING_DIR": "<AWS_MCP_WORKING_DIR>",
"AWS_MCP_REQUIRE_CONFIRMATION": "<AWS_MCP_REQUIRE_CONFIRMATION>",
"AWS_MCP_LOG_LEVEL": "<AWS_MCP_LOG_LEVEL>"
}
}
}
}
启动命令uvx mdev-aws-mcp-server
需要配置的环境变量
AWS_REGIONDefault AWS region
AWS_PROFILEAWS credentials profile
AWS_MCP_WORKING_DIRWorking directory for file operations
AWS_MCP_REQUIRE_CONFIRMATIONEmit warnings for destructive-looking operations
AWS_MCP_LOG_LEVELApplication log level

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimdev-aws-mcp-server0.1.2

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
cli_commandstring是要执行的完整 AWS CLI 命令。必须以 'aws' 开头
max_resultsany否结果数量的可选上限(适用于分页)

详细介绍

AWS MCP Server

一个 Python Model Context Protocol(MCP)服务,可让兼容 MCP 的客户端通过 AWS CLI 检查和操作 AWS。它支持经过验证的命令执行、命令建议、AWS 区域查询和调用者身份检查。

功能

  • 执行 AWS CLI 命令时不进行 shell 扩展,并使用 shell 风格解析保留带引号的参数
  • 根据自然语言请求建议常见的 AWS CLI 命令
  • 返回可用的 AWS 区域
  • 返回当前调用者身份
  • 支持本地 MCP 客户端使用 stdio 传输
  • 验证配置,并将日志写入 stderr 和本地日志文件

安全模型

此服务可以使用进程可用的凭据执行 AWS CLI 命令。它通过 subprocess.run(..., shell=False) 阻止 shell 运算符,并标记看起来具有破坏性的命令,但无法取代 IAM 最小权限原则或人工审核。请使用权限范围受限的 AWS 配置文件或角色,优先使用非生产账户进行测试,并在 MCP 客户端中将破坏性命令设为必须手动批准。

要求

  • Python 3.12+
  • 已安装 AWS CLI v2,且可通过 PATH 访问
  • 已配置 AWS CLI 身份验证和配置,方式包括 AWS 配置文件、IAM Identity Center/SSO、环境变量、IAM 角色或其他 AWS 支持的凭据提供程序
  • 兼容 MCP 的客户端,例如 Claude Desktop、Cursor、VS Code 或其他 MCP 主机

安装

发布到 PyPI 后,可像标准 Python MCP 软件包一样安装或运行此服务:

uvx mdev-aws-mcp-server

从源代码进行本地开发:

git clone https://github.com/musaddiq-dev/aws-cli-mcp-server.git
cd aws-cli-mcp-server
python -m venv .venv
source .venv/bin/activate
pip install -e .

配置

运行此服务前,请使用官方 AWS CLI 安装指南安装 AWS CLI,然后使用官方 AWS CLI 登录指南和 AWS CLI 配置指南配置凭据。AWS 建议尽可能使用短期凭据;除非用例需要,否则请避免使用长期 IAM 用户密钥。

复制示例环境文件,并根据需要调整值。

cp .env.example .env
变量说明默认值
AWS_REGION默认 AWS 区域us-east-1
AWS_PROFILEAWS 凭据配置文件default
AWS_MCP_WORKING_DIR文件操作的工作目录/tmp/aws-mcp-work
AWS_MCP_REQUIRE_CONFIRMATION对看起来具有破坏性的操作发出警告true
AWS_MCP_LOG_LEVEL应用程序日志级别INFO

运行

mdev-aws-mcp-server

在 PyPI 发布前,从本地检出目录运行:

python -m aws_mcp_server.server

MCP 客户端配置

对于已发布的安装,建议使用 uvx。使用 stdio 的 MCP 服务只能将协议消息写入 stdout;此服务会将日志写入 stderr 和 ~/.aws-mcp-server/logs 下的本地文件。

Claude Desktop / Cursor / Windsurf / Cline

大多数 MCP 客户端都接受以下 mcpServers JSON 格式:

{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": ["mdev-aws-mcp-server"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

在此代码库中进行本地开发时,请改用已安装的控制台脚本路径:

{
  "mcpServers": {
    "aws": {
      "command": "/absolute/path/to/aws-cli-mcp-server/.venv/bin/mdev-aws-mcp-server",
      "args": [],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}
Claude Code CLI
claude mcp add aws --env AWS_PROFILE=default --env AWS_REGION=us-east-1 -- uvx mdev-aws-mcp-server
VS Code MCP

VS Code 在其 MCP 配置中使用相同的 command/args/env 模型:

{
  "servers": {
    "aws": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mdev-aws-mcp-server"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

工具

工具用途安全性
call_aws执行 AWS CLI 命令可能修改 AWS 资源
suggest_aws_commands建议常见的 AWS CLI 命令只读
get_aws_regions列出 AWS 区域只读
get_caller_identity返回当前 AWS 身份只读

开发

pip install -e .
pip install -e '.[dev]'
pytest
ruff check .
ruff format .
pyright

冒烟检查

python -m py_compile src/aws_mcp_server/server.py src/aws_mcp_server/config.py src/aws_mcp_server/aws/executor.py
python -m pytest

如果已配置凭据,可手动检查 AWS:

aws sts get-caller-identity

分发

此服务通过标准的 Python MCP 分发渠道发布:

  • PyPI 软件包:mdev-aws-mcp-server
  • MCP Registry 名称:io.github.musaddiq-dev/aws-cli-mcp-server
  • 运行时提示:uvx
  • 传输方式:stdio

此 README 顶部的 mcp-name 标记是通过 MCP Registry 所有权验证的必要条件。建议用户在本地 MCP 客户端配置中使用 uvx mdev-aws-mcp-server。

安全注意事项

  • 请勿提交 .env、AWS 凭据、配置文件、访问密钥或特定账户的输出。
  • 为运行此服务的配置文件或角色使用最小权限 IAM 权限。
  • 在 MCP 客户端中,将 call_aws 设置为必须手动明确批准。
  • 未添加身份验证、TLS 和网络控制措施时,请勿通过网络暴露此服务。
  • 执行生成的命令建议前,请先检查。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。