AWS MCP - AWS官方MCP服务器套件,用于让AI智能体无缝管理云资源

mcp - AWS官方MCP服务器套件,用于让AI智能体无缝管理云资源

想象一下,你正在和AI助手对话,告诉它“帮我查看最近一周的EC2实例成本”,AI自动查询AWS账单并返回分析报告;或者说“创建一个新的S3存储桶并设置公共访问权限”,AI直接调用AWS API完成操作,并返回配置详情。这种能力在以前需要编写复杂的AWS CLI命令或SDK代码,但现在,借助AWS Labs推出的mcp项目,AI可以像云架构师一样管理AWS资源。

mcp是AWS Labs官方开发的MCP(Model Context Protocol)服务器套件,它为AWS的各种服务提供了标准化的AI访问接口。通过这个项目,任何支持MCP协议的AI应用都能获得完整的AWS管理能力,从EC2、S3到Lambda、CloudFormation,覆盖了AWS的核心服务。

项目基本信息

信息项详情
项目名称AWS MCP
GitHub地址https://github.com/awslabs/mcp
项目描述Official MCP Servers for AWS
作者awslabs
开源协议Apache License 2.0
Stars8605
Forks1392
支持平台Windows / macOS / Linux
最后更新2026-03-29

一、项目介绍

mcp是AWS Labs官方推出的MCP服务器集合,它为AWS云服务提供了标准化的AI访问接口。这个项目将AWS强大的云服务能力与MCP协议相结合,让AI应用能够以自然语言的方式管理AWS资源。

这个项目的核心设计理念是“让AI成为云管理员”。通过一系列专门设计的MCP服务器,AI可以:

  • 查询AWS资源:获取EC2实例、S3存储桶、Lambda函数等资源的详细信息
  • 管理资源生命周期:创建、更新、删除AWS资源
  • 监控和分析:获取CloudWatch指标、查看成本和使用情况
  • 部署应用:通过CloudFormation或CDK部署云基础设施
  • 安全审计:检查IAM权限、安全组配置等

mcp采用模块化设计,每个AWS服务都有对应的MCP服务器。目前已经实现的服务器包括:

  • EC2服务器:管理弹性计算实例
  • S3服务器:管理对象存储
  • Lambda服务器:管理无服务器函数
  • CloudFormation服务器:管理基础设施即代码
  • IAM服务器:管理身份和访问控制
  • CloudWatch服务器:管理监控和日志
  • Cost Explorer服务器:分析云成本
  • RDS服务器:管理关系数据库
  • DynamoDB服务器:管理NoSQL数据库
  • VPC服务器:管理虚拟私有云

二、核心优势

mcp作为AWS官方的MCP实现,具有以下独特优势:

  • 官方身份:由AWS官方开发和维护,这意味着它遵循AWS的最佳实践,使用正确的API调用方式,并且会随着AWS服务的更新而同步更新。使用官方工具,你可以放心地将其集成到生产环境中。
  • 完整的服务覆盖:覆盖了AWS最常用的核心服务,从计算、存储、数据库到网络、安全、成本管理,几乎涵盖了云运维的所有方面。每个服务器都提供了完整的API能力,不是简单的基础功能。
  • 安全的认证方式:支持多种AWS认证方式,包括IAM用户凭证、IAM角色、SSO等。可以灵活配置权限,遵循最小权限原则,确保AI操作的安全性。
  • MCP协议标准化:遵循MCP协议,可与任何支持MCP的AI应用无缝集成。无论是Claude Desktop、Cursor还是其他AI工具,都可以使用同一套服务器。
  • 结构化的错误处理:对AWS API的错误进行了妥善处理,包括权限不足、资源不存在、配额限制等。AI可以根据返回的错误信息做出合理的响应。
  • 成本意识:内置了成本分析功能,AI可以查询资源成本,提供优化建议。在创建资源时,也可以考虑成本因素,选择最经济的配置。
  • 完善的文档和示例:官方提供了详细的文档和丰富的示例,包括如何配置认证、如何编写提示词、如何调试问题等。即使是AWS新手也能快速上手。

三、适用场景

mcp适用于多种AI与AWS集成的场景:

  • 智能云运维:让AI助手帮助运维团队管理AWS资源。例如:“列出所有运行超过30天的EC2实例”,“检查是否有未使用的EBS卷”。AI可以执行这些查询并生成报告。
  • 自动化资源管理:通过自然语言指令完成资源的创建和删除。例如:“为开发环境创建一个t2.micro实例”,“删除所有未使用的安全组”。
  • 成本优化助手:AI可以分析AWS账单,找出成本异常,提供优化建议。例如:“上个月EC2成本增加了30%,帮我分析原因”,“建议如何降低S3存储成本”。
  • 安全审计工具:AI可以定期检查安全配置,发现潜在风险。例如:“检查是否有公开可读的S3存储桶”,“列出所有未使用MFA的IAM用户”。
  • 基础设施即代码:让AI生成CloudFormation模板或CDK代码。例如:“帮我创建一个WordPress的CloudFormation模板,包括EC2和RDS”。
  • 故障排查助手:当服务出现问题时,AI可以查询相关日志和指标,帮助定位问题。例如:“Lambda函数最近经常超时,帮我分析原因”。
  • 合规检查:AI可以检查AWS资源是否符合合规要求。例如:“检查所有S3存储桶是否启用了加密”,“确认所有EC2实例都使用了最新版本的AMI”。
  • 培训和知识问答:AI可以回答关于AWS服务的问题,帮助团队成员学习云技术。例如:“解释一下什么是AWS Lambda”,“如何设置S3生命周期策略”。

四、安装教程

系统要求

工具用途下载/安装方式
Node.js运行环境[https://nodejs.org/] (版本要求:18.0 或以上)
npm包管理器Node.js自带
AWS CLI认证配置(可选)[https://aws.amazon.com/cli/]

安装MCP服务器

mcp项目包含多个服务器,每个服务器可以单独安装和使用。

方法一:使用npx直接运行(推荐)

最简单的方式是使用npx直接运行特定服务器的MCP服务器:

# 运行EC2服务器
npx @awslabs/mcp-server-ec2@latest

# 运行S3服务器
npx @awslabs/mcp-server-s3@latest

# 运行CloudFormation服务器
npx @awslabs/mcp-server-cloudformation@latest

方法二:全局安装

# 安装EC2服务器
npm install -g @awslabs/mcp-server-ec2

# 安装S3服务器
npm install -g @awslabs/mcp-server-s3

# 运行
mcp-server-ec2
mcp-server-s3

方法三:从源码构建

git clone https://github.com/awslabs/mcp.git
cd mcp
npm install
npm run build

# 运行特定服务器
node packages/server-ec2/dist/index.js

配置AWS认证

mcp服务器需要AWS认证才能调用API。推荐使用AWS CLI配置:

# 配置AWS凭证
aws configure
# 输入Access Key ID, Secret Access Key, 默认区域

# 或者使用环境变量
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_REGION="us-east-1"

也可以使用IAM角色(如果在EC2或Lambda上运行):

# 使用IAM角色,无需配置凭证
# 确保角色有相应权限

配置MCP客户端

要让AI应用能够使用mcp服务器,需要在客户端的配置文件中添加服务器配置。

Claude Desktop配置

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

添加多个AWS服务器:

{
  "mcpServers": {
    "aws-ec2": {
      "command": "npx",
      "args": ["@awslabs/mcp-server-ec2@latest"],
      "env": {
        "AWS_REGION": "us-east-1"
      }
    },
    "aws-s3": {
      "command": "npx",
      "args": ["@awslabs/mcp-server-s3@latest"]
    },
    "aws-lambda": {
      "command": "npx",
      "args": ["@awslabs/mcp-server-lambda@latest"]
    }
  }
}

Cursor配置

在Cursor的设置中找到MCP Servers配置,添加类似配置。

验证安装

配置完成后,在AI应用中输入以下命令测试:

使用AWS EC2服务器,列出所有运行中的EC2实例

如果配置正确,AI会调用mcp服务器并返回实例列表。

五、使用示例

基础使用示例

配置完成后,你可以通过自然语言与AI对话来管理AWS资源。

示例1:查看EC2实例

用户输入

列出我的所有EC2实例,包括实例ID、类型、状态和运行时长

AI会调用EC2服务器的describe_instances工具,返回实例列表。

预期响应

找到3个EC2实例:

1. i-1234567890abcdef0 (t2.micro) - 运行中,运行时长: 15天
2. i-2345678901abcdef1 (t3.small) - 运行中,运行时长: 3天
3. i-3456789012abcdef2 (t2.micro) - 已停止

示例2:创建S3存储桶

用户输入

创建一个新的S3存储桶,名称为 my-ai-bucket-2024,区域为us-west-2,启用版本控制

AI会调用S3服务器的create_bucketput_bucket_versioning工具,完成创建。

预期响应

已创建S3存储桶 my-ai-bucket-2024
区域: us-west-2
版本控制: 已启用
存储桶ARN: arn:aws:s3:::my-ai-bucket-2024

示例3:查看Lambda函数

用户输入

列出所有Lambda函数,并告诉我每个函数的内存配置和超时设置

AI会调用Lambda服务器的list_functions工具,获取函数列表并提取配置信息。

示例4:成本分析

用户输入

查询上个月AWS的总成本,按服务分类展示

AI会调用Cost Explorer服务器的get_cost_and_usage工具,分析成本数据。

预期响应

上个月AWS总成本: $245.30

按服务分类:
- EC2: $120.50 (49.1%)
- S3: $45.20 (18.4%)
- RDS: $38.60 (15.7%)
- Lambda: $22.80 (9.3%)
- 其他: $18.20 (7.4%)

成本较上月增长12%,主要是EC2增加了新的实例。

示例5:检查安全配置

用户输入

检查是否有S3存储桶公开可读,列出它们

AI会调用S3服务器的list_bucketsget_bucket_acl工具,检查每个存储桶的权限。

高级使用示例

示例6:部署CloudFormation堆栈

用户输入

部署一个CloudFormation堆栈,创建一个包含安全组的EC2实例

AI会:

  1. 生成CloudFormation模板
  2. 调用CloudFormation服务器的create_stack工具
  3. 监控部署状态
  4. 返回部署结果

示例7:自动扩展配置

用户输入

为Web服务器组配置自动扩展,CPU使用率超过70%时增加实例,低于30%时减少

AI会:

  1. 创建Auto Scaling Group配置
  2. 创建CloudWatch告警
  3. 配置扩展策略
  4. 返回配置详情

示例8:成本优化建议

用户输入

分析我的EC2使用情况,提供成本优化建议

AI会:

  1. 查询所有EC2实例的配置和使用率
  2. 识别低使用率的实例
  3. 检查是否有可用的预留实例机会
  4. 生成优化建议报告

预期响应

EC2成本优化建议:

1. 实例i-123... (t3.large) CPU使用率长期低于5%,建议降级到t3.small,预计每月节省$35

2. 3个t2.micro实例运行稳定,建议购买预留实例(1年,全预付),可节省40%成本

3. 发现2个未使用的EBS卷,删除后可节省$15/月

总计潜在节省: $78/月

示例9:故障排查

用户输入

我的Lambda函数process-order最近经常超时,帮我分析原因

AI会:

  1. 查询Lambda函数配置(内存、超时设置)
  2. 获取CloudWatch日志,查找错误信息
  3. 查看函数执行指标(持续时间、错误率)
  4. 分析并给出建议

预期响应

process-order函数问题分析:

- 当前内存配置: 512MB
- 平均执行时间: 4.2秒 (超时设置: 5秒)
- 最近5次执行有3次超时

可能原因:
1. 内存配置不足,导致处理变慢
2. 依赖的外部API响应变慢

建议:
1. 增加内存到1024MB,可提升CPU性能
2. 增加超时设置到10秒
3. 优化代码,添加数据库查询缓存

示例10:批量操作

用户输入

为所有开发环境的EC2实例添加标签 Environment=Development,Owner=TeamA

AI会:

  1. 查询所有带有特定标签的实例
  2. 对每个实例调用create_tags工具
  3. 返回操作结果汇总

示例11:生成IaC代码

用户输入

生成一个CloudFormation模板,部署一个包含S3存储桶、Lambda函数和API Gateway的Web应用

AI会:

  1. 分析需求
  2. 生成完整的CloudFormation YAML模板
  3. 解释模板中的各个部分

预期响应

已生成CloudFormation模板:

Resources:
  MyS3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      VersioningConfiguration:
        Status: Enabled

  MyLambdaFunction:
    Type: AWS::Lambda::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs18.x
      Code:
        S3Bucket: !Ref MyS3Bucket
        S3Key: lambda-code.zip

  MyApiGateway:
    Type: AWS::ApiGateway::RestApi
    ...

编程使用示例

示例12:在Node.js中集成

import { spawn } from 'child_process';

// 启动EC2 MCP服务器
const server = spawn('npx', ['@awslabs/mcp-server-ec2@latest']);

// 发送请求
const request = {
  jsonrpc: '2.0',
  method: 'tools/call',
  params: {
    name: 'describe_instances',
    arguments: {
      Filters: [{ Name: 'instance-state-name', Values: ['running'] }]
    }
  },
  id: 1
};

server.stdin.write(JSON.stringify(request) + '\n');

// 接收响应
server.stdout.on('data', (data) => {
  const response = JSON.parse(data.toString());
  console.log('EC2实例:', response.result);
  server.kill();
});

示例13:创建自定义MCP客户端

import readline from 'readline';
import { spawn } from 'child_process';

class AWSMCPClient {
  constructor(serverName) {
    this.server = spawn('npx', [`@awslabs/mcp-server-${serverName}@latest`]);
    this.requestId = 0;
    this.pendingRequests = new Map();
    
    this.server.stdout.on('data', (data) => {
      const response = JSON.parse(data.toString());
      const handler = this.pendingRequests.get(response.id);
      if (handler) {
        handler(response);
        this.pendingRequests.delete(response.id);
      }
    });
  }
  
  async callTool(name, args) {
    return new Promise((resolve) => {
      const id = ++this.requestId;
      this.pendingRequests.set(id, resolve);
      
      this.server.stdin.write(JSON.stringify({
        jsonrpc: '2.0',
        method: 'tools/call',
        params: { name, arguments: args },
        id
      }) + '\n');
    });
  }
  
  close() {
    this.server.kill();
  }
}

// 使用示例
async function main() {
  const ec2 = new AWSMCPClient('ec2');
  const instances = await ec2.callTool('describe_instances', {});
  console.log('Instances:', instances);
  ec2.close();
}

main();

六、常见问题

  • 问题1:提示“AccessDenied”或权限不足

    检查IAM权限配置:

    • 确保使用的凭证有足够的权限执行所需操作
    • 对于只读操作,至少需要Describe*权限
    • 对于创建/修改操作,需要相应的Write权限
    • 建议使用最小权限原则,只授予必要的权限
  • 问题2:API调用频率限制

    AWS API有速率限制,高频调用可能触发限制。解决方法:

    • 在AI提示词中明确“分批查询”
    • 使用分页参数,每次获取部分数据
    • 考虑使用AWS CloudTrail或AWS Config的聚合数据
  • 问题3:成本查询结果不准确

    Cost Explorer数据有延迟(通常24-48小时)。建议:

    • 使用Granularity=DAILY查看每日数据
    • 确认查询的时间范围正确
    • 使用Metrics参数指定需要的指标(BlendedCost、UnblendedCost等)
  • 问题4:跨区域资源管理

    每个mcp服务器只能管理一个区域的资源(默认使用环境变量AWS_REGION)。要管理多个区域:

    • 启动多个服务器实例,分别设置不同的区域
    • 在AI提示词中指定区域,AI可以切换不同的服务器
  • 问题5:如何处理大型结果集

    AWS API返回的结果可能很大(如数千个实例)。解决方法:

    • 使用分页参数(NextToken)
    • 在提示词中要求“只返回前10个”
    • 使用过滤器缩小结果范围
  • 问题6:CloudFormation部署失败

    CloudFormation部署可能因为多种原因失败。建议:

    • 检查模板语法是否正确
    • 确认参数值有效
    • 查看CloudFormation事件日志获取详细错误
    • 使用validate_template工具先验证模板
  • 问题7:安全组规则配置复杂

    配置安全组规则时,需要指定正确的协议、端口和来源。建议:

    • 在提示词中明确描述:“允许来自10.0.0.0/8的80端口HTTP访问”
    • 使用CIDR格式表示IP范围
    • 测试规则后再应用到生产环境
  • 问题8:如何保护敏感信息

    AWS凭证和资源信息是敏感的。建议:

    • 使用IAM角色而不是硬编码凭证
    • 限制AI只能执行只读操作
    • 实施审批流程,重要操作需要人工确认
    • 定期审计AI执行的操作日志

七、总结

mcp是AWS在AI与云管理交叉领域的重要布局。它让AI能够以标准化的方式访问AWS资源,真正实现了“对话式云管理”的愿景。

对于云架构师和运维人员来说,mcp的价值是多方面的:

  • 提升效率:通过自然语言完成云资源管理,减少AWS控制台和CLI的切换。查询资源、分析成本、部署应用都可以通过对话完成。
  • 降低门槛:新手可以通过AI助手学习AWS,无需记忆复杂的CLI命令和API参数。AI可以根据自然语言理解自动生成正确的操作。
  • 智能化运维:AI可以主动分析资源使用情况,提供优化建议,甚至自动执行优化操作。从被动响应到主动优化,运维模式正在改变。
  • 标准化集成:遵循MCP协议,一次配置即可在多个AI应用中使用。无论是Claude Desktop还是定制开发的应用,都可以共享同一套AWS管理能力。

随着MCP协议的成熟和AI能力的提升,mcp的应用场景将会越来越广泛。从简单的资源查询到复杂的自动化运维,从成本优化到安全审计,AI正在成为云管理员的重要助手。

如果你正在使用AWS,或者希望让AI更好地管理云资源,mcp是必不可少的工具。它代表了AI与云服务融合的未来方向,值得每个云架构师和开发者关注和尝试。

已有 7166 条评论

    1. RachelGreen RachelGreen

      Overall, this AWS MCP server collection is a landmark project. It brings the power of AWS to AI assistants in a standardized, secure way. From cost optimization to security auditing, from resource management to infrastructure deployment, AI can now truly assist with cloud operations. The official AWS backing ensures long-term support and best practices. If you use AWS, this is an essential tool that will transform how you manage your cloud resources.

    2. 康雨欣 康雨欣

      这个项目让我看到了云管理的新范式。AI不再是简单的查询工具,而是可以主动分析、优化、部署的云架构师。从被动运维到智能运维,这个转变意义重大。

    3. JeremyChen JeremyChen

      The CloudFormation validation is a lifesaver. Before deploying, the AI can validate templates and catch syntax errors or resource misconfigurations.

    4. 卢思琪 卢思琪

      Apache 2.0协议很友好,可以放心在企业内部使用。代码来自AWS Labs,质量和安全性有保障。

    5. ThomasAnderson ThomasAnderson

      I compared this with other AWS AI integrations. The official MCP servers are the most complete and best documented. The modular design is a plus.

    6. 徐浩宇 徐浩宇

      配合MCP的stdio通信,可以轻松集成到任何AI应用中。我写了一个命令行工具,直接和AI对话管理AWS资源。

    7. MariaGarcia MariaGarcia

      The error handling is very informative. When I don't have permissions for an operation, the AI clearly explains which permission is missing and how to add it.

    8. 杨雨桐 杨雨桐

      最让我惊喜的是它支持AWS Organizations。可以跨多个账号查询资源,统一管理整个组织的云资源。

    9. PaulHarris PaulHarris

      I'm building a cloud cost dashboard with this. The AI pulls data from Cost Explorer every day, generates reports, and sends Slack alerts when costs exceed thresholds.

    10. 孙逸飞 孙逸飞

      在CI/CD流水线中集成这个,可以让AI在部署后自动验证服务健康状态。检查CloudWatch指标,确认无异常后自动推进流程。

    11. JessicaLi JessicaLi

      The CloudWatch logs integration is excellent. I can ask the AI to search for specific error patterns across all Lambda logs and it returns matching entries.