连接 AI 到您的 AWS 资源
通过AWS IAM身份中心(前作为AWS SSO)将克洛德,Cursor AI,以及其他AI助手直接连接到你的AWS账户来转变你的管理和访问AWS基础设施. 立即访问您的云资源, 执行命令, 并使用自然语言管理 EC2 实例 .
你能做什么吗
✅ 询问AI有关您的 AWS 账户数字 : "给我看看我所有的AWS账户 和现有的角色"
✅ 执行 AWS 命令数字 : "把所有S3桶都放进我的生产帐户"
✅ 管理 EC2 实例数字 : "检查服务器i-123456789上的磁盘使用情况"
✅ 访问多账户设置数字 : "切换到中转账户 描述VPC"
✅ 监测资源数字 : 获取所有运行中的 EC2 实例的状态
✅ 运行 shell 命令数字 : 通过SSM在我的网络服务器上执行'df-h'
完美为
- DevOps 工程师 管理多账户AWS环境和基础设施自动化
- 云建筑师 需要快速获取全澳大利亚妇女协会账户的资源信息
- 开发者 想要通过AI检查部署和运行 AWS CLI 命令
- SRE 团队 利用自然语言监测和排除AWS资源出问题
- 信息技术管理员 安全管理 EC2 实例及执行远程命令
- 谁都行 使用对话AI与AWS互动
快速启动
两分钟后起床跑道:
1. 获取您的 AWS SSO 设置
建立AWS IAM身份中心:
- 启用 AWS IAM 身份识别中心 在您的 AWS 账户中
- 配置身份来源 (AWS 目录,活动目录,或外部 IDP)
- 设置权限设置 并指派用户到 AWS 账户
- 注意您的 AWS SSO 启动 URL (例如,
https://your-company.awsapps.com/start(中文(简体) )
2. 立即尝试
# Set your AWS SSO configuration
export AWS_SSO_START_URL="https://your-company.awsapps.com/start"
export AWS_REGION="us-east-1"
# Start the authentication flow
npx -y @aashari/mcp-server-aws-sso login
# List your accessible accounts and roles
npx -y @aashari/mcp-server-aws-sso ls-accounts
# Execute an AWS command
npx -y @aashari/mcp-server-aws-sso exec-command \
--account-id 123456789012 \
--role-name ReadOnly \
--command "aws s3 ls"
连接到 AI 助理
对于 Claude 桌面用户
将此添加到您的 Claude 配置文件( E)~/.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桌面,你可以看到状态栏中的"---sso".
其他助理助理
大多数AI助手支持MCP. 在全球安装服务器 :
npm install -g @aashari/mcp-server-aws-sso
然后配置您的 AI 助手使用 STIO 传输的 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"。 。 。 .
现实世界实例
认证和探索
问你的人工智能助手:
- "Log into AWS SSO 并显示我的认证状态"
- 列出我所有的AWS账户 和我可以假设的角色
- "检查我是否仍然认证到AWS"
- "给我看看AWS的账户"
执行 AWS 命令
问你的人工智能助手:
- "把S3桶都放进我的制作帐户里 使用ReadOnly的角色"
- "给我看看我们西部2区的EC2案例"
- "在我的AWS账户中描述VPC"
- "在123456789012号帐户中 获取我RDS数据库的状态"
管理 EC2 实例
问你的人工智能助手:
- "检查EC2实例的磁盘用法 i-1234567890abcdef0"
- 通过系统管理器在我的网络服务器上运行“ 时空 ”
- 在生产中执行“ systemctl status nginx” 例如i-abc123
- "从我所有的应用程序服务器上获取内存用量"
基础设施监测
问你的人工智能助手:
- "把所有Lambda的功能都列入我的开发账户"
- "给我看看我们东部的"
- "检查我的负载平衡器的健康"
- 获取最新的星云监视警报器
多账户业务
问你的人工智能助手:
- "与行政主管交换987654321098账户,列出所有安全小组"
- 比较中产账户和生产账户之间的运行实例
- "检查所有AWS账户的备份政策"
- 安全帐户中IAM用户的审计
MCP 工具示例( 点击以扩展)
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"
}
运输模式
此服务器支持两种不同集成情景的传输模式:
STIO 运输( MCP 客户端的过失)
- 通过 stdin/ stdout 的传统子进程通信
- 本地AI助理集成的理想( Claude Desktop, Cursor AI)
- 使用管道通信进行直接MCP协议交换
# Run with STDIO transport (default for AI assistants)
TRANSPORT_MODE=stdio npx @aashari/mcp-server-aws-sso
# Using npm scripts (after installation)
npm run mcp:stdio
HTTP 传输( 服务器模式的默认)
- 现代基于 HTTP 的传输 Server- Sent Events (SSE)
- 支持多个并行连接
- 更好地实现网络一体化和发展
- 默认运行于3000端口( 通过 Port env var 可配置)
- 终点:http://localhost:30/mcp
- 健康检查:http://localhost:30/00/
# Run with HTTP transport (default when no CLI args)
TRANSPORT_MODE=http npx @aashari/mcp-server-aws-sso
# Using npm scripts (after installation)
npm run mcp:http
# Test with MCP Inspector
npm run mcp:inspect
环境变量
运输配置 :
TRANSPORT_MODE: 设定为stdio或者说http(默认 :http用于服务器模式,stdio为MCP客户服务)PORT: HTTP 服务器端口( 默认: 3000)DEBUG: 启用调试记录( 默认: 假)
AWS 配置 :
AWS_SSO_START_URL: 您的 AWS IAM 身份中心启动 URL( 例如 ),https://your-org.awsapps.com/start(中文(简体) )AWS_SSO_REGION或者说AWS_REGION: AWS区域用于SSO认证(例如,us-east-1(中文(简体) )AWS_PROFILE: AWS profile 名称(可选,用于CLI相容性)
可用工具
在通过 MCP 与 AI 助手集成时,可以使用以下工具:
认证工具
-
aws_sso_login: 启动 AWS SSO 设备授权流- 参数:
launchBrowser(可选,布尔,默认:真实) - 自动打开浏览器进行认证
- 处理设备授权代码流
- 用于后续操作的缓存符
- 参数:
-
aws_sso_status: 检查当前认证状态- 不需要参数
- 返回会话细节和到期时间
- 验证缓存符号有效性
账户管理工具
aws_sso_ls_accounts: 列出所有可访问的 AWS 账户和角色- 不需要参数
- 显示账户ID、名称、电子邮件和可用角色
- 用于发现您可以使用的账户/作用的基本条件
命令执行工具
-
aws_sso_exec_command: 执行带有SSO证书的 AWS CLI 命令- 要求 :
accountId, (中文(简体) ),roleName, (中文(简体) ),command - 可选 :
region - 自动获取和缓存临时证书
- 支持任何 AWS CLI 命令
- 要求 :
-
aws_sso_ec2_exec_command: 通过 SSM 执行 EC2 实例上的 shell 命令- 要求 :
instanceId, (中文(简体) ),accountId, (中文(简体) ),roleName, (中文(简体) ),command - 可选 :
region - 不需要SSH访问( 使用 AWS 系统管理器)
- 实例必须安装 SSM 代理
- 要求 :
CLI 命令
使用 CLI 命令时,所有工具也可使用 kebab-case运行 --help 详细情况(例如:, mcp-aws-sso login --help) (中文(简体) ).
- 登录: 通过 AWS SSO 认证(
--no-launch-browser) (中文(简体) ). 实例:mcp-aws-sso login。 。 。 . - 状态:检查认证状态(没有选项). 实例:
mcp-aws-sso status。 。 。 . - 账户: 列出账户/作用(无选项)。 实例:
mcp-aws-sso ls-accounts。 。 。 . - 执行命令:运行 AWS CLI 命令 (
--account-id, (中文(简体) ),--role-name, (中文(简体) ),--command, (中文(简体) ),--region) (中文(简体) ). 实例:mcp-aws-sso exec-command --account-id 123456789012 --role-name ReadOnly --command "aws s3 ls"。 。 。 . - ec2-执行命令: 在 EC2 上运行 shell 命令(
--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"。 。 。 .
CLI 命令示例( 点击以扩展)
登录
标准登录( 自动启动浏览器和民意调查) :
mcp-aws-sso login
不浏览器启动登录 :
mcp-aws-sso login --no-launch-browser
执行 AWS 命令
列表 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"
执行 EC2 命令
检查系统资源 :
mcp-aws-sso ec2-exec-command \
--instance-id i-0a69e80761897dcce \
--account-id 123456789012 \
--role-name InfraOps \
--command "uptime && df -h && free -m"
解决问题
"认证失败"或"托肯过期"
-
与 AWS SSO 重新认证数字 :
# Test your SSO configuration npx -y @aashari/mcp-server-aws-sso login -
检查您的 AWS SSO 配置数字 :
- 检查您
AWS_SSO_START_URL正确(应作为贵组织的SSO门户) - 保证您
AWS_REGION匹配您的 SSO 区域配置
- 检查您
-
校验您的 SSO 设置数字 :
- 确保您可以在浏览器中访问 SSO 门户
- 检查您的 AWS 账户任务是否在运行
"账户未找到"或"未找到"
-
检查可用的账户和作用数字 :
# List all accessible accounts npx -y @aashari/mcp-server-aws-sso ls-accounts -
校验账户ID格式数字 :
- 账号应该是12位数
- 使用来自
ls-accounts产出
-
检查角色权限数字 :
- 确保您有权限承担指定的角色
- 使用您权限集中的确切角色名称
找不到 AWS CLI 或命令执行错误
-
安装 AWS CLI v2数字 :
- 从 AWS CLI 安装指南
- 保证
aws命令位于您的系统路径
-
独立测试 AWS CLI数字 :
aws --version aws sts get-caller-identity
"EC2命令失败"或"SSM连接问题"
-
验证 EC2 实例设置数字 :
- 实例必须安装和运行 SSM 代理
- 实例需要 IAM 角色与
AmazonSSMManagedInstanceCore政策
-
检查您的角色权限数字 :
- 你的角色需要吗
ssm:SendCommand财务报告和审定财务报表ssm:GetCommandInvocation权限 - 校验实例处于运行状态
- 你的角色需要吗
-
测试 SSM 连接数字 :
# Test if instance is reachable via 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 桌面 更新配置文件后
- 检查状态栏 用于“ ows- sso” 指标
- 验证配置文件位置数字 :
- 马可斯:
~/.claude/claude_desktop_config.json - 窗口 :
%APPDATA%\Claude\claude_desktop_config.json
- 马可斯:
获取帮助
如果你仍然有问题:
- 运行一个简单的测试命令来验证所有工作
- 检查 GitHub 问题 类似的问题
- 以错误消息创建新问题并设置细节
经常被问到的问题
我需要什么许可?
为AWS IAM身份中心设置:
- 使用配置身份源访问 AWS IAM 身份中心
- 您的 AWS 管理员分配给您的权限集
- 访问您想要管理的特定 AWS 账户
对于通过SSM的EC2命令:
- 你的角色需要吗
ssm:SendCommand财务报告和审定财务报表ssm:GetCommandInvocation权限 - EC2 实例需要一个 IAM 角色
AmazonSSMManagedInstanceCore政策 - 特别事务 在目标实例上必须安装和运行代理
我可以用它与多个AWS组织?
目前,每个安装都支持一个AWS SSO一次启动URL. 对于多个组织,您可以:
- 切换
AWS_SSO_START_URL会话之间的环境变量 - 运行不同配置的单独实例
- 为不同的组织使用多个 Claude 桌面配置
证监会证书能持续多久?
- SSO 符号: 通常为8-12小时(由AWS IAM身份中心管理)
- 临时全权证书: 每个账户/作用约1小时
- 该工具自动处理令牌刷新和证书缓存
- 等信物过期,你就会被召回
人工智能助理是做什么工作的?
任何支持模式背景协议的AI助手:
- 克劳德桌面 (最受欢迎和经过充分检验)
- 光标AI (代码编辑器与AI)
- 继续. dev (VS 代码扩展)
- 任何其他 MCP 兼容客户端
我的数据安全吗?
没错! 这个工具优先处理安全:
- 完全运行在本地机器上( 没有外部服务器)
- 使用自己的 AWS SSO 证书( 无第三方认证)
- 从不向第三方发送数据
- 只访问您明确允许的
- 使用自动过期的 AWS 临时证书
- 遵循AWS证书管理的最佳做法
- 全权证书存放在标准AWS地点(
~/.aws/(中文(简体) )
我需要安装AWS CLI吗?
对于 aws_sso_exec_command数字 : 是, AWS CLI v2 需要执行 AWS 命令 .
其他工具: 否, 认证( N)aws_sso_login),状态检查(aws_sso_status)和账户上市(aws_sso_ls_accounts没有AWS CLI的工作.
对于 aws_sso_ec2_exec_command数字 : 不,这直接通过系统管理器使用AWS SDK.
我能用AWS CLI简介吗?
这个工具直接使用AWS IAM身份中心,并管理自己的证书缓存. 它不需要 AWS CLI 配置文件,而是与之兼容 :
- 该工具将证书存储在
~/.aws/sso/cache/(标准AWS位置) - 您可以选择设置
AWS_PROFILE与其他 AWS 工具兼容 - 该工具独立于 AWS CLI 配置
AWS SSO与AWS IAM身份中心有何区别??
他们是同一种服务! AWS SSO被重新命名为 AWS IAM 身份识别中心 在2022年时. 这个工具可以同时使用两个名称:
- 代码和文档中提及"AWS SSO"时提及了AWS IAM身份中心
- 您的开始 URL 格式保持不变 :
https://your-org.awsapps.com/start - 所有功能都是一样的,无论命名
TON 格式是怎样的?
TON(Token-Oriented Object Notation)是大语言模型优化的一种输出格式:
- 比JSON更紧凑(在向AI发送数据时保存令牌)
- 还是人能读取的
- 可用时自动使用, 如有需要, 跳回 JSON
- 学习更多: @ton-format/toon (中文(简体) )
原木存放在哪里?
调试日志写入 : ~/.mcp/data/@aashari.mcp-server-aws-sso.[session-id].log
每个会话都获得一个独特的日志文件. 启用调试记录 DEBUG=true。 。 。 .
响应格式示例( 点击以扩展)
输出格式( TOON)
答复采用格式 TON( 面向对象的标记) 格式,用于 LLM 符号效率的优化。 TON在保持可读性的同时提供比JSON更为紧凑的表示.
关键特性 :
- 可用时自动转换对 TON 格式的响应
- 如果 ToON 转换失败, 则返回 JSON
- 将大型响应( > 10KB)与全响应位置的注释相切
- 日志完整回复
~/.mcp/data/@aashari.mcp-server-aws-sso.[session-id].log
MCP 工具响应示例aws_sso_exec_command(中文(简体) )
# AWS SSO: Command Result
**Account/Role:** 123456789012/ReadOnly
**Region:** us-east-1 (Default: ap-southeast-1)
## Command
aws s3 ls
## Output
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
*Executed: 2025-05-19 06:21:49 UTC*
错误反应示例
# ❌ AWS SSO: Command Error
**Account/Role:** 123456789012/ReadOnly
**Region:** us-east-1 (Default: ap-southeast-1)
## Command
aws s3api get-object --bucket restricted-bucket --key secret.txt output.txt
## Error: Permission Denied
The role `ReadOnly` does not have permission to execute this command.
## Error Details
An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
### Troubleshooting
#### Available Roles
- AdminAccess
- PowerUserAccess
- S3FullAccess
Try executing the command again using one of the roles listed above that has appropriate permissions.
*Executed: 2025-05-19 06:17:49 UTC*
大型反应处理
当 API 响应超过 10KB 时, 输出被切换为消息 :
[Response truncated for AI consumption. Full response logged to: /path/to/log/file.log]
这保证了AI助手在开发者可以在日志文件中访问完整输出时,得到可控响应大小.
技术细节
建筑
此服务器遵循一个干净的5层架构 :
- CLI 层 (单位:千美元)
src/cli/: 使用command.js的命令行界面 - 工具层 (单位:千美元)
src/tools/: MCP 工具定义并带有 Zod 验证计划 - 控制层 (单位:千美元)
src/controllers/: 商业逻辑和管弦乐 - 服务层 (单位:千美元)
src/services/:外部 API 交互(AWS SDK) - Utils 图层 (单位:千美元)
src/utils/:共享公用事业(博客、配置、缓存、格式化)
关键依赖
- @ modelcontextprotocol/ sdk (英语) v1.23.0: MCP协议执行
- @aws-sdk/客户端-sso v3.893.0: AWS SSO API 客户端
- @aws-sdk/客户端-sm v3.893.0: EC2命令的AWS系统管理器
- @ton-format/toon (中文(简体) ) v2.0.1: 托肯高效输出格式化
- 佐德语 v 4.1.1.3: 运行时类型验证
- 指挥官 v14.0.2:CLI框架
日志
调试日志写入 : ~/.mcp/data/@aashari.mcp-server-aws-sso.[session-id].log
通过设置启用调试日志 DEBUG=true 在你的环境.
缓存
- SSO 符号: 缓存
~/.aws/sso/cache/(标准AWS位置) - 临时全权证书:每个账户1小时缓存/作用组合
- 账户信息: 在每个请求中获取新内容( 无持续缓存)
发展
# Clone repository
git clone https://github.com/aashari/mcp-server-aws-sso.git
cd mcp-server-aws-sso
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode with HTTP transport
npm run dev:http
# Run with STDIO transport (for MCP client testing)
npm run dev:stdio
# Run with MCP Inspector (visual debugging)
npm run mcp:inspect
# Run tests
npm test
# Run tests with coverage
npm test:coverage
# Lint code
npm run lint
# Format code
npm run format
可用的 npm 脚本
npm run build- 编译类型脚本到 JavaScriptnpm run mcp:stdio- 使用STIO运输工具运行npm run mcp:http- 使用HTTP运输工具运行npm run mcp:inspect- 与 MCP 检查器进行调试npm test- 运行杰斯特测试npm run lint- 运行ESLintnpm run format- 有Pretier格式代码
所需资源
- 节点.js: 18.0.0或更高版本
- AWS CLI (英语): 2.x版本(仅需要用于
aws_sso_exec_command(中文(简体) ) - AWS IAM 身份识别中心: 配置和无障碍
- 操作系统: macOS、 Linux 或 Windows
版本历史
v3.0.1 (当前)
- Npm ci 的固定相配依赖冲突
- 加强原始反应记录,对大型API反应进行截取
- AWS SSO 登录指令的改进AI指导
页:1
- 刹车: 现代化为 @ modelcontextprotocol/sdk v1.23.0 有注册工具API
- 添加了节点.js版本规格(22.14.0相容性)
- 加强记录和错误处理
页:1
- 刹车: 固定 AWS CLI 执行和证书区域错配问题
- 改进跨区域的认证处理
- 防止 dotenv 在 MCP 模式下输出到 STIO
见 变动情况 用于完整版本历史.
捐款
欢迎捐款! 请随意提交拉力请求 对于重大变动,请先开出一个问题来讨论你想要改变什么.
许可证
ISC 许可证 - 请参看 LICENSE 文件详情
支助
需要帮忙吗? 如何获得援助:
- 检查上面的故障排除区域 - 涉及最常见的问题
- 访问 GitHub 仓库 文件和实例: github.com/aashari/mcp-服务器-aws-so
- 报告问题 时间 GitHub 问题
- 开始讨论 专题请求或一般问题
- 检查调试日志 时间
~/.mcp/data/@aashari.mcp-server-aws-sso.[session-id].log详细错误信息
以下列方式建造: TypeScript, MCP SDK, JavaScript v3, TON 格式的 AWS SDK
照顾那些想将AI带入AWS工作流程的DevOps团队.