使用说明
AWS模型上下文协议(MCP)服务器
AWS MCP服务器在Claude等大型语言模型(LLM)和您的AWS服务之间架起了一座桥梁。它使Claude能够直接与您的AWS资源交互,包括Lambda函数、S3桶、DynamoDB表、API网关、CloudWatch日志、IAM策略和Cost Explorer数据。
版权所有©2025 Sumedh Patil,Aipresso有限公司英国
特性
- 🔍 全面的AWS访问:连接并管理多个AWS服务
- 🤖 LLM集成:专为Claude和其他兼容MCP的AI助手而设计
- 🧠 情境理解:允许AI了解您的AWS环境
- 🔧 直接运营:根据自然语言请求执行AWS操作
- 📊 资源可视化:轻松查看和分析您的AWS资源
支持的AWS服务
此MCP服务器允许与以下设备直接交互:
- 拉姆达:查看函数、获取代码和调用函数
- 第3页:列出bucket、读/写对象、管理权限
- DynamoDB 数据库:查询表、获取/放置项目、扫描数据
- API网关:列出API、查看资源、创建部署
- 云监控:查看日志、分析指标、创建警报
- 国际机械师协会:查看具有详细权限的角色、用户和策略
- CodeBuild:管理构建项目并查看构建结果
- 成本探索者:分析成本、获取预测并跟踪支出
安装和设置
先决条件
- Node.js 16+和npm
- 具有适当权限的AWS帐户
- 已安装并配置AWS CLI
步骤1:克隆并安装依赖项
# Clone the repository (or download and extract it)
git clone https://github.com/your-repo/aws-mcp-server.git
# Navigate to the project directory
cd aws-mcp-server
# Install dependencies
npm install
步骤2:配置AWS凭据
MCP服务器使用您的AWS凭据。确保您已配置它们:
# Configure AWS CLI with your credentials
aws configure
或者,您可以设置环境变量:
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
export AWS_REGION=your-aws-region
步骤3:设置IAM权限
创建具有以下权限的IAM策略,并将其附加到IAM用户或角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:ListFunctions",
"lambda:GetFunction",
"lambda:Invoke"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:ListTables",
"dynamodb:DescribeTable",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:DeleteItem"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::*/*",
"arn:aws:s3:::*"
]
},
{
"Effect": "Allow",
"Action": [
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:GetLogEvents"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:GetMetricData",
"cloudwatch:ListMetrics",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DescribeAlarms"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"apigateway:GET",
"apigateway:POST"
],
"Resource": "arn:aws:apigateway:*::/restapis*"
},
{
"Effect": "Allow",
"Action": [
"codebuild:ListProjects",
"codebuild:BatchGetProjects",
"codebuild:StartBuild",
"codebuild:BatchGetBuilds",
"codebuild:ListBuildsForProject"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ce:GetCostAndUsage",
"ce:GetCostForecast",
"ce:GetDimensionValues",
"ce:GetReservationUtilization"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:ListRoles",
"iam:ListUsers",
"iam:ListPolicies",
"iam:GetRole",
"iam:GetUser",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:ListAttachedRolePolicies",
"iam:ListAttachedUserPolicies"
],
"Resource": "*"
}
]
}
以下是如何设置此策略:
- 打开AWS管理控制台
- 导航到IAM→ 政策→ 创建策略
- 点击JSON选项卡
- 复制并粘贴上述策略
- 单击“下一步”,为其命名(例如“AWS MCP服务器策略”)并创建策略
- 将此策略附加到将运行MCP服务器的IAM用户或角色
步骤4:构建并运行服务器
# Build the TypeScript project
npm run build
# Start the MCP server
npm run start
服务器将启动并监听来自Claude或其他MCP兼容AI助手的MCP请求。
连接到克劳德
要将此MCP服务器连接到Claude:
- 在浏览器或应用程序中打开Claude
- 转到“设置”→ 插件/工具
- 选择“添加自定义MCP连接”
- 提供运行MCP服务器的URL
- 测试连接
- 连接后,Claude现在可以与您的AWS服务进行交互
使用示例
连接到Claude后,您可以发出以下请求:
# List Lambda functions
"Please show me all my Lambda functions"
# Get Lambda function code
"What's in my zip-and-patch-runner Lambda function?"
# List S3 buckets
"Show me all my S3 buckets"
# Query DynamoDB
"Can you get items from my Users table where the userId is 'user123'?"
# View CloudWatch logs
"Show me the recent logs for my payment-processor Lambda function"
# Analyze costs
"What were my AWS costs last month broken down by service?"
# View IAM policies
"Show me the permissions for the role named 'lambda-execution-role'"
自定义服务器
添加新的AWS服务
要添加对其他AWS服务的支持:
- 在中创建新的服务模块文件
src/services目录 - 定义服务的资源、工具和提示
- 在中导入并注册模块
src/index.ts - 重建与
npm run build
配置选项
可以通过修改以下内容来配置服务器:
- 中的AWS SDK选项
src/utils/aws-config.ts - 中的服务器选项
src/index.ts - 各自文件中的服务特定配置
故障排除
常见问题
权限错误:
- 确保您的IAM策略包括所有必要的权限
- 检查您的AWS凭据是否配置正确
连接问题:
- 验证您的网络是否允许必要的连接
- 如果在防火墙后运行,请确保MCP服务器正确暴露
AWS SDK错误:
- 确保您使用的是兼容的AWS SDK版本
- 检查区域设置是否与您的AWS资源匹配
日志
服务器记录到标准输出。您可以将这些重定向到一个文件进行调试:
npm run start > mcp-server.log 2>&1
安全考虑
- 此服务器提供对您的AWS资源的直接访问。使用适当的IAM限制。
- 考虑在VPC或专用网络中运行以限制暴露。
- 定期审核IAM权限,以确保其遵循最小权限原则。
- 监控使用情况,以检测任何异常模式。
贡献
欢迎投稿!请随时提交带有增强功能、错误修复或文档改进的拉取请求。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
版权所有©2025 Sumedh Patil,Aipresso有限公司英国
