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 |
| Stars | 8605 |
| Forks | 1392 |
| 支持平台 | 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_bucket和put_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_buckets和get_bucket_acl工具,检查每个存储桶的权限。
高级使用示例
示例6:部署CloudFormation堆栈
用户输入:
部署一个CloudFormation堆栈,创建一个包含安全组的EC2实例
AI会:
- 生成CloudFormation模板
- 调用CloudFormation服务器的
create_stack工具 - 监控部署状态
- 返回部署结果
示例7:自动扩展配置
用户输入:
为Web服务器组配置自动扩展,CPU使用率超过70%时增加实例,低于30%时减少
AI会:
- 创建Auto Scaling Group配置
- 创建CloudWatch告警
- 配置扩展策略
- 返回配置详情
示例8:成本优化建议
用户输入:
分析我的EC2使用情况,提供成本优化建议
AI会:
- 查询所有EC2实例的配置和使用率
- 识别低使用率的实例
- 检查是否有可用的预留实例机会
- 生成优化建议报告
预期响应:
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会:
- 查询Lambda函数配置(内存、超时设置)
- 获取CloudWatch日志,查找错误信息
- 查看函数执行指标(持续时间、错误率)
- 分析并给出建议
预期响应:
process-order函数问题分析:
- 当前内存配置: 512MB
- 平均执行时间: 4.2秒 (超时设置: 5秒)
- 最近5次执行有3次超时
可能原因:
1. 内存配置不足,导致处理变慢
2. 依赖的外部API响应变慢
建议:
1. 增加内存到1024MB,可提升CPU性能
2. 增加超时设置到10秒
3. 优化代码,添加数据库查询缓存示例10:批量操作
用户输入:
为所有开发环境的EC2实例添加标签 Environment=Development,Owner=TeamA
AI会:
- 查询所有带有特定标签的实例
- 对每个实例调用
create_tags工具 - 返回操作结果汇总
示例11:生成IaC代码
用户输入:
生成一个CloudFormation模板,部署一个包含S3存储桶、Lambda函数和API Gateway的Web应用
AI会:
- 分析需求
- 生成完整的CloudFormation YAML模板
- 解释模板中的各个部分
预期响应:
已生成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与云服务融合的未来方向,值得每个云架构师和开发者关注和尝试。
I integrated this with our Slack bot. Now team members can ask "how many EC2 instances are running?" and get instant answers without leaving Slack.
IAM权限控制很灵活。我专门给AI创建了一个只读角色,只能查询不能修改。这样既享受AI的便利,又不用担心误操作。
Cost Explorer API集成得很好。AI可以分析按服务、按标签、按区域的各种成本维度。对比上个月和上上个月,一眼看出哪里成本涨了。
CloudFormation集成太方便了。让AI帮我生成一个WordPress部署的模板,它直接写出了完整的YAML,包含EC2、RDS、安全组配置。省去了查文档的时间。
The multi-server design is clever. Each AWS service has its own MCP server, so I can install only what I need. EC2, S3, Lambda, CloudWatch - they all work seamlessly together.
安全审计功能很强大。让AI定期检查S3存储桶的公开访问权限,发现公开的就自动报警。合规检查自动化了,省了很多人工审计的时间。
I'm using this to automate our cloud cost optimization. The AI analyzes EC2 usage daily, identifies underutilized instances, and recommends right-sizing. Saved us about 25% on compute costs.
成本分析功能太实用了。让AI帮我查上个月的AWS账单,按服务分类展示,还给出了优化建议。发现了好几个未使用的EBS卷,删掉后每个月省了不少钱。
This is huge for cloud operations. I can now ask my AI assistant to check EC2 instances, analyze costs, and even deploy CloudFormation stacks. The official AWS backing gives me confidence in security and reliability.
8600星虽然不算特别多,但这是AWS Labs的项目,质量有保障。在Claude Desktop里配置好之后,让AI帮我查EC2实例和成本,再也不用登录控制台了。
AWS官方出的MCP服务器,这下AI管理云资源终于有标准方案了。之前用各种第三方集成,总担心安全问题和API兼容性。官方出品,放心多了。