Back to MCP directory
publicPublicdnsLocal runtime

baryhuang_mcp-server-aws-resources-python

一个基于Python和boto3的AWS资源查询MCP服务器,通过Docker容器化部署,提供安全的代码沙箱执行环境,支持多种AWS服务操作

article

README

🚀 AWS 资源 MCP 服务器

这是一个由 Python 实现的 AWS 资源 MCP 服务器,借助 boto3 库对 AWS 资源进行查询和管理。该服务器支持 S3、EC2、DynamoDB 等多种 AWS 服务,还能通过 Docker 容器运行,为 AWS 资源管理提供了简单灵活的解决方案。

🚀 快速开始

配置 AWS 凭证

确保在运行容器前已正确配置 AWS 凭证(访问密钥 ID 和秘密访问密钥)。

选择区域

可以通过设置 AWS_DEFAULT_REGION 环境变量来指定默认区域,或在调用中显式指定区域。

使用 API

通过发送 HTTP 请求到 MCP 服务器,并包含所需的 AWS 操作和参数。

✨ 主要特性

支持的服务

  • S3:可进行列出桶、上传/下载文件等操作。
  • EC2:能查询实例状态、启动/停止实例等。
  • DynamoDB:支持读写表数据、查询索引等操作。
  • IAM:可管理用户和权限。

轻量级与易集成

与现有的工具相比,本项目的实现更加轻量级且易于集成到各种环境中。

📦 安装指南

Docker 安装

支持平台

  • Linux/amd64
  • Linux/arm64
  • Linux/arm/v7

方案 1: 从 Docker Hub 拉取

docker pull buryhuang/mcp-server-aws-resources:latest

方案 2: 本地构建

docker build -t mcp-server-aws-resources .

运行容器

方式一:使用环境变量配置凭证

docker run \
  -e AWS_ACCESS_KEY_ID=your_access_key_id_here \
  -e AWS_SECRET_ACCESS_KEY=your_secret_access_key_here \
  -e AWS_DEFAULT_REGION=us-east-1 \
  buryhuang/mcp-server-aws-resources:latest

方式二:使用配置文件和本地凭证

docker run \
  -e AWS_PROFILE=default \
  -v ~/.aws:/root/.aws \
  buryhuang/mcp-server-aws-resources:latest

跨平台发布

要将镜像推送到多个平台,请按照以下步骤操作:

  1. 创建新的构建器实例(如果尚未创建):

    docker buildx create --use
    
  2. 构建并推送多平台镜像

    docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-server-aws-resources:latest --push .
    
  3. 验证镜像是否可用于指定平台

    docker buildx imagetools inspect buryhuang/mcp-server-aws-resources:latest
    

💻 使用示例

基础用法

示例查询

# 列出所有 S3 桶
{
  "operation": "list_buckets",
  "params": {}
}

# 查询 EC2 实例状态
{
  "operation": "describe_instances",
  "params": {
    "InstanceIds": ["i-12345678"]
  }
}

使用 Claude Desktop 的 Docker 运行示例

示例 1:使用 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY
{
  "mcpServers": {
    "aws-resources": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "AWS_ACCESS_KEY_ID=your_access_key_id_here",
        "-e",
        "AWS_SECRET_ACCESS_KEY=your_secret_access_key_here",
        "-e",
        "AWS_DEFAULT_REGION=us-east-1",
        "buryhuang/mcp-server-aws-resources:latest"
      ]
    }
  }
}
示例 2:使用 PROFILE 和挂载本地 AWS 凭证
{
  "mcpServers": {
    "aws-resources": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "AWS_PROFILE=default",
        "-v",
        "~/.aws:/root/.aws",
        " buryhuang/mcp-server-aws-resources:latest"
      ]
    }
  }
}

示例代码

import requests

# 初始化 MCP 服务器地址
mcp_server_url = "http://localhost:5000"

# 列出 S3 桶
response = requests.post(mcp_server_url, json={
    "operation": "list_buckets",
    "params": {}
})
print(response.json())

# 查询 EC2 实例状态
response = requests.post(mcp_server_url, json={
    "operation": "describe_instances",
    "params": {
        "InstanceIds": ["i-12345678"]
    }
})
print(response.json())

⚠️ 注意事项

⚠️ 重要提示

确保 AWS 凭证的安全性,避免泄露。

💡 使用建议

定期更新依赖库以获取最新的功能和安全修复。

通过以上步骤,您可以轻松地在本地或云环境中部署并使用这个 MCP 服务器来管理和查询 AWS 资源。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client