mcpField
A
AWS MCP Server

AWS MCP Server

本地服务
github.com/Rupeebw云与基础设施080 周前更新

关于 AWS MCP Server

AWS MCP Server 使用类似 AWS CLI 的凭据和配置文件选项连接 AWS 账户,面向需要通过 REST API 操作 S3、EC2 和 Lambda 的用户。

主要功能

  1. 01使用 AWS 凭据连接
  2. 02按配置文件配置凭据
  3. 03管理 S3 存储桶和对象
  4. 04查看和控制 EC2 实例
  5. 05管理并调用 Lambda 函数
  6. 06扫描可能暴露的密钥

适用场景

  1. 01列出或上传 S3 对象
  2. 02启动或停止 EC2 实例
  3. 03查看或调用 Lambda 函数
  4. 04检查代码库中的潜在密钥

MCP 相关

项目自称 MCP 服务,但 README 描述的是 REST API 端点,没有说明向 MCP 客户端公开哪些工具或功能。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AWS MCP 服务

一个可连接 AWS 账户的服务,功能类似于 AWS CLI。

功能

  • 使用凭证连接 AWS 账户
  • 支持多种 AWS 服务
  • 凭证管理方式类似于 AWS CLI
  • 基于配置文件的配置

文件夹结构

src/aws-mcp-server/
├── .env.example           # Example environment variables
├── .gitignore             # Git ignore file
├── README.md              # Documentation
├── package.json           # Project dependencies
└── src/                   # Source code
    ├── config/            # Configuration files
    │   └── aws-config.js  # AWS SDK configuration
    ├── core/              # Core functionality (empty for now)
    ├── index.js           # Main entry point
    ├── services/          # AWS service implementations
    │   ├── ec2.js         # EC2 service endpoints
    │   ├── lambda.js      # Lambda service endpoints
    │   └── s3.js          # S3 service endpoints
    └── utils/             # Utility functions
        ├── logger.js      # Logging utility
        └── session-manager.js # AWS session management

设置

  1. 安装依赖项:
npm install
  1. 配置 AWS 凭证:

    • 根据 .env.example 创建 .env 文件
    • 或使用位于 ~/.aws/credentials 的 AWS 凭证文件
  2. 设置 Git 钩子,防止提交机密:

./scripts/setup-git-hooks.sh
  1. 启动服务:
npm start

配置

该服务支持通过多种方式配置 AWS 凭证:

  1. 环境变量
  2. AWS 凭证文件(~/.aws/credentials)
  3. AWS 配置文件(~/.aws/config)
  4. 实例配置文件(在 EC2 上运行时)
临时凭证

如果你使用的是临时 AWS 凭证(Access Key ID 以 'ASIA' 开头),请确保在 .env 文件中包含会话令牌:

AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_SESSION_TOKEN=your_session_token
AWS_REGION=your_region

安全性

本项目包含多项安全措施,以防止意外泄露凭证:

  1. .gitignore:配置为排除 .env 文件、密钥、证书和其他敏感文件
  2. Git 钩子:提交前钩子,用于检查代码库中可能存在的机密
  3. 机密检查器:用于扫描可能硬编码的机密的脚本

如需手动运行机密检查:

./scripts/check-secrets.sh

使用方法

该服务提供 REST API,用于与 AWS 服务交互:

S3 操作
  • GET /api/s3/buckets - 列出所有 S3 存储桶
  • GET /api/s3/buckets/:bucket/objects - 列出存储桶中的对象
  • POST /api/s3/buckets/:bucket/objects - 将对象上传到存储桶
  • DELETE /api/s3/buckets/:bucket/objects/:key - 删除存储桶中的对象
EC2 操作
  • GET /api/ec2/instances - 列出所有 EC2 实例
  • GET /api/ec2/instances/:instanceId - 获取 EC2 实例详情
  • POST /api/ec2/instances/:instanceId/start - 启动 EC2 实例
  • POST /api/ec2/instances/:instanceId/stop - 停止 EC2 实例
Lambda 操作
  • GET /api/lambda/functions - 列出所有 Lambda 函数
  • GET /api/lambda/functions/:functionName - 获取 Lambda 函数详情
  • POST /api/lambda/functions/:functionName/invoke - 调用 Lambda 函数
  • PATCH /api/lambda/functions/:functionName/configuration - 更新 Lambda 函数配置
与 AWS MCP 服务交互的方式:
  1. 在命令行中使用 curl:

    # List S3 buckets
    curl http://localhost:3000/api/s3/buckets
    
    # List EC2 instances
    curl http://localhost:3000/api/ec2/instances
    
    # List Lambda functions
    curl http://localhost:3000/api/lambda/functions
    
  2. 使用 Postman 等 REST 客户端:

  3. 使用 Web 浏览器(仅适用于 GET 请求):

  4. 构建前端应用:

    • 你可以创建一个前端应用,向此服务发送 API 调用
    • 这样你就能获得类似 AWS 管理控制台的图形用户界面
AWS 凭证故障排除:

如果 AWS 凭证遇到问题,可以尝试以下方法:

  1. 使用临时凭证时(Access Key 以 ASIA 开头):

    • 确保在 .env 文件中包含 AWS_SESSION_TOKEN
    • 这些凭证通常会在几小时后过期
  2. 使用长期凭证时(Access Key 以 AKIA 开头):

    • 这类凭证不需要会话令牌
    • 请谨慎使用这些凭证,切勿将其提交到版本控制系统
  3. 使用 AWS CLI 配置文件:

    • 如果你已配置 AWS CLI,可以使用配置文件:
    AWS_PROFILE=your-profile-name
    
    • 从 .env 中移除 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY
  4. 在 EC2 上运行时使用 IAM 角色:

    • 如果将此服务部署到带有 IAM 角色的 EC2 实例,则无需指定凭证

开发

npm run dev

测试

npm test

评论

支持 Markdown

第一次接触 MCP?

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

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