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与云服务融合的未来方向,值得每个云架构师和开发者关注和尝试。
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.
这个项目让我看到了云管理的新范式。AI不再是简单的查询工具,而是可以主动分析、优化、部署的云架构师。从被动运维到智能运维,这个转变意义重大。
The CloudFormation validation is a lifesaver. Before deploying, the AI can validate templates and catch syntax errors or resource misconfigurations.
Apache 2.0协议很友好,可以放心在企业内部使用。代码来自AWS Labs,质量和安全性有保障。
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.
配合MCP的stdio通信,可以轻松集成到任何AI应用中。我写了一个命令行工具,直接和AI对话管理AWS资源。
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.
最让我惊喜的是它支持AWS Organizations。可以跨多个账号查询资源,统一管理整个组织的云资源。
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.
在CI/CD流水线中集成这个,可以让AI在部署后自动验证服务健康状态。检查CloudWatch指标,确认无异常后自动推进流程。
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.