通过Single Sign-On将Claude、Cursor AI和其他AI助手直接连接到您的AWS账户,从而改变您管理和访问AWS基础设施的方式。使用自然语言即时访问您的云资源,执行命令并管理EC2实例。
✅ 询问AI关于您的AWS账户:"显示我所有的AWS账户和可用角色"
✅ 执行AWS命令:"列出生产账户中的所有S3桶"
✅ 管理EC2实例:"检查服务器i-123456789的磁盘使用情况"
✅ 访问多账户设置:"切换到测试环境账户并描述VPC"
✅ 监控资源:"获取所有正在运行的EC2实例的状态"
✅ 运行shell命令:"通过SSM在web服务器上执行'df -h'"
两分钟内启动:
设置AWS IAM身份中心:
https://your-company.awsapps.com/start)# 设置您的AWS SSO配置
export AWS_SSO_START_URL="https://your-company.awsapps.com/start"
export AWS_REGION="us-east-1"
# 启动认证流程
npx -y @aashari/mcp-server-aws-sso login
# 列出可访问的账户和角色
npx -y @aashari/mcp-server-aws-sso ls-accounts
# 执行AWS命令
npx -y @aashari/mcp-server-aws-sso exec-command \
--account-id 123456789012 \
--role-name ReadOnly \
--command "aws s3 ls"
在您的Claude配置文件(~/.claude/claude_desktop_config.json)中添加以下内容:
{
"mcpServers": {
"aws-sso": {
"command": "npx",
"args": ["-y", "@aashari/mcp-server-aws-sso"],
"env": {
"AWS_SSO_START_URL": "https://your-company.awsapps.com/start",
"AWS_REGION": "us-east-1"
}
}
}
}
重启Claude桌面,您将在状态栏看到“🔗 aws-sso”。
大多数AI助手支持MCP。全局安装服务器:
npm install -g @aashari/mcp-server-aws-sso
然后配置您的AI助手以使用具有STDIO传输的MCP服务器。
创建~/.mcp/configs.json进行系统范围的配置:
{
"aws-sso": {
"environments": {
"AWS_SSO_START_URL": "https://your-company.awsapps.com/start",
"AWS_REGION": "us-east-1",
"DEBUG": "false"
}
}
}
替代配置键:系统也接受"@aashari/mcp-server-aws-sso"或"mcp-server-aws-sso"而不是"aws-sso"。
询问您的AI助手:
询问您的AI助手:
询问您的AI助手:
询问您的AI助手:
询问您的AI助手:
aws_sso_login基本登录:
{}
自定义登录选项:
{
"launchBrowser": false
}
aws_sso_status检查认证状态:
{}
aws_sso_ls_accounts列出所有账户和角色:
{}
aws_sso_exec_command列出S3桶:
{
"accountId": "123456789012",
"roleName": "ReadOnly",
"command": "aws s3 ls"
}
描述特定区域中的EC2实例:
{
"accountId": "123456789012",
"roleName": "AdminRole",
"command": "aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,InstanceType]' --output table",
"region": "us-west-2"
}
aws_sso_ec2_exec_command检查系统资源:
{
"instanceId": "i-0a69e80761897dcce",
"accountId": "123456789012",
"roleName": "InfraOps",
"command": "uptime && df -h && free -m"
}
</details>
此服务器支持两种传输模式,用于不同的集成场景:
# 使用STDIO传输(默认用于AI助手)
TRANSPORT_MODE=stdio npx @aashari/mcp-server-aws-sso
# 使用npm脚本(安装后)
npm run mcp:stdio
# 使用HTTP传输(无CLI参数时默认)
TRANSPORT_MODE=http npx @aashari/mcp-server-aws-sso
# 使用npm脚本(安装后)
npm run mcp:http
# 使用MCP Inspector测试
npm run mcp:inspect
传输配置:
TRANSPORT_MODE:设置为stdio或http(默认:服务器模式为http,MCP客户端为stdio)PORT:HTTP服务器端口(默认:3000)DEBUG:启用调试日志(默认:false)认证:
AWS_SSO_START_URL:您的AWS SSO启动URLAWS_SSO_REGION:您的AWS SSO区域AWS_PROFILE:您的AWS配置文件名(可选)AWS_REGION:您的AWS区域(可选)CLI命令使用kebab-case。运行--help以获取详细信息(例如,mcp-aws-sso login --help)。
--no-launch-browser)。示例:mcp-aws-sso login。mcp-aws-sso status。mcp-aws-sso ls-accounts。--account-id,--role-name,--command,--region)。示例:mcp-aws-sso exec-command --account-id 123456789012 --role-name ReadOnly --command "aws s3 ls"。--instance-id,--account-id,--role-name,--command,--region)。示例:mcp-aws-sso ec2-exec-command --instance-id i-0a69e80761897dcce --account-id 123456789012 --role-name InfraOps --command "uptime"。标准登录(自动启动浏览器并轮询):
mcp-aws-sso login
不启动浏览器的登录:
mcp-aws-sso login --no-launch-browser
列出S3桶:
mcp-aws-sso exec-command \
--account-id 123456789012 \
--role-name ReadOnly \
--command "aws s3 ls"
列出特定区域的EC2实例:
mcp-aws-sso exec-command \
--account-id 123456789012 \
--role-name AdminRole \
--region us-west-2 \
--command "aws ec2 describe-instances --output table"
检查系统资源:
mcp-aws-sso ec2-exec-command \
--instance-id i-0a69e80761897dcce \
--account-id 123456789012 \
--role-name InfraOps \
--command "uptime && df -h && free -m"
</details>
重新认证AWS SSO:
# 测试您的SSO配置
npx -y @aashari/mcp-server-aws-sso login
检查您的AWS SSO配置:
AWS_SSO_START_URL是正确的(应该是您的组织SSO门户)AWS_REGION与您的SSO区域配置匹配验证您的SSO设置:
检查可用账户和角色:
# 列出所有可访问的账户
npx -y @aashari/mcp-server-aws-sso ls-accounts
验证账户ID格式:
ls-accounts输出中的确切账户ID检查角色权限:
安装AWS CLI v2:
aws命令在您的系统PATH中独立测试AWS CLI:
aws --version
aws sts get-caller-identity
验证EC2实例设置:
AmazonSSMManagedInstanceCore策略的IAM角色检查您的角色权限:
ssm:SendCommand和ssm:GetCommandInvocation权限测试SSM连接性:
# 测试实例是否可以通过SSM访问
npx -y @aashari/mcp-server-aws-sso exec-command \
--account-id YOUR_ACCOUNT \
--role-name YOUR_ROLE \
--command "aws ssm describe-instance-information"
~/.claude/claude_desktop_config.json如果您仍然遇到问题:
对于AWS SSO设置:
对于通过SSM的EC2命令:
ssm:SendCommand和ssm:GetCommandInvocation权限AmazonSSMManagedInstanceCore策略的IAM角色目前,每个安装支持一个AWS SSO启动URL。对于多个组织,您需要单独的配置或手动切换AWS_SSO_START_URL环境变量。
AWS SSO令牌通常持续8-12小时。特定账户/角色的临时凭证大约持续1小时。该工具会自动处理令牌刷新和凭证缓存。
任何支持模型上下文协议(MCP)的AI助手:
是的!此工具:
是的,需要AWS CLI v2来使用aws_sso_exec_command工具。但是,认证和账户列表功能不需要它。
此工具直接使用AWS SSO,并不依赖于AWS CLI配置文件。它独立管理自己的凭证缓存,与AWS CLI配置无关。
<details> <summary><b>响应格式示例(点击展开)</b></summary>aws_sso_exec_command)# AWS SSO:命令结果
**账户/角色**:123456789012/ReadOnly
**区域**:us-east-1(默认:ap-southeast-1)
## 命令
aws s3 ls
## 输出
2023-01-15 08:42:53 my-bucket-1
2023-05-22 14:18:19 my-bucket-2
2024-02-10 11:05:37 my-logs-bucket
*执行时间:2025-05-19 06:21:49 UTC*
# ❌ AWS SSO:命令错误
**账户/角色**:123456789012/ReadOnly
**区域**:us-east-1(默认:ap-southeast-1)
## 命令
aws s3api get-object --bucket restricted-bucket --key secret.txt output.txt
## 错误:权限被拒绝
角色`ReadOnly`没有执行此命令的权限。
##