MCP受信任顾问服务器
模型上下文协议(MCP)服务器,通过传统的支持API和现代的TrustedAdvisor API端点提供对AWS Trusted Advisor的全面访问。
 
概述
此服务器实现了模型上下文协议,以提供对AWS Trusted Advisor功能的标准化访问,包括:
- 传统支持API:与现有的Trusted Advisor集成兼容
- 现代TrustedAdvisor API:功能增强,性能和功能更好
- 组织支持:AWS组织的企业级功能
- 资源管理:详细的资源分析和生命周期管理
特性
🔍 检查管理
- 列出所有可用的Trusted Advisor检查并进行筛选
- 获取有关特定检查的详细信息
- 支持多种语言(en、ja、fr、zh)
📊 建议
- 按各种标准列出和过滤建议
- 获取详细的推荐信息
- 资源水平分析和管理
- 生命周期管理(进行中、终止、已解决等)
🏢 组织支持 (需要企业支持)
- 全组织推荐汇总
- 多账户资源管理
- 组织级生命周期管理
- 特定于帐户的资源筛选
⚙️ 资源操作
- 批量排除/包含资源
- 资源状态跟踪
- 元数据和详细的资源信息
- 跨帐户资源可见性
可用资源
传统支持API资源
list-trusted-advisor-checks
列出使用旧版支持API的所有可用受信任顾问检查。
- 统一资源标识符:
trusted-advisor://checks - 参数:
language,awsAccountId,region - 过滤器:基于语言的过滤
- 需求:业务、企业上线或企业支持计划
get-trusted-advisor-recommendation
使用旧版支持API获取特定建议。
- 统一资源标识符:
trusted-advisor://recommendations/{checkId} - 参数:
checkId,language,awsAccountId - 需求:业务、企业上线或企业支持计划
现代TrustedAdvisor API资源
list-checks
列出一组可筛选的受信任顾问检查。
- 统一资源标识符:
trusted-advisor://checks/list - 参数:
awsService,pillar,source,maxResults,nextToken,language,awsAccountId,region - 过滤器:AWS服务、支柱、来源
- 分页:支持
nextToken
get-recommendation
获取特定的Trusted Advisor建议。
- 统一资源标识符:
trusted-advisor://recommendations/{recommendationIdentifier} - 参数:
recommendationIdentifier,language,awsAccountId,region - 响应:包含生命周期信息的详细建议
list-recommendations
列出一组可筛选的Trusted Advisor建议。
- 统一资源标识符:
trusted-advisor://recommendations - 参数:
awsService,pillar,source,status,maxResults,nextToken,language,awsAccountId,region - 过滤器:AWS服务、支柱、来源、状态
- 分页:支持
nextToken
list-recommendation-resources
列出受信任顾问建议的资源。
- 统一资源标识符:
trusted-advisor://recommendations/{recommendationIdentifier}/resources - 参数:
recommendationIdentifier,status,exclusionStatus,maxResults,nextToken,language,awsAccountId,region - 过滤器:资源状态、排除状态
- 分页:支持
nextToken
update-recommendation-lifecycle
更新可信顾问建议的生命周期。
- 统一资源标识符:
trusted-advisor://recommendations/{recommendationIdentifier}/lifecycle - 参数:
recommendationIdentifier,lifecycleStage,updateReason,updateReasonCode,language,awsAccountId,region - 生命周期阶段:
pending_response,in_progress,dismissed,resolved - 备注:仅支持优先建议
batch-update-recommendation-resource-exclusion
更新推荐资源列表的一个或多个排除状态。
- 统一资源标识符:
trusted-advisor://recommendations/{recommendationIdentifier}/resource-exclusions - 参数:
recommendationIdentifier,resourceExclusions(阵列),language,awsAccountId,region - 批量大小:每个请求最多100个资源
- 响应:每个资源的成功/错误状态
组织资源(需要企业支持)
list-organization-recommendations
列出组织内一组可过滤的建议。
- 统一资源标识符:
trusted-advisor://organizations/{organizationId}/recommendations - 参数:
organizationId,awsService,pillar,source,status,maxResults,nextToken,language,awsAccountId,region - 需求:企业支持计划
- 备注:仅支持优先建议
get-organization-recommendation
在AWS组织内获取具体建议。
- 统一资源标识符:
trusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier} - 参数:
organizationId,recommendationIdentifier,language,awsAccountId,region - 需求:企业支持计划
- 备注:仅支持优先建议
list-organization-recommendation-accounts
列出拥有组织聚合推荐资源的帐户。
- 统一资源标识符:
trusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier}/accounts - 参数:
organizationId,recommendationIdentifier,maxResults,nextToken,language,awsAccountId,region - 需求:企业支持计划
- 备注:仅支持优先建议
list-organization-recommendation-resources
列出组织内推荐的资源。
- 统一资源标识符:
trusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier}/resources - 参数:
organizationId,recommendationIdentifier,status,exclusionStatus,affectedAccountId,maxResults,nextToken,language,awsAccountId,region - 需求:企业支持计划
- 备注:仅支持优先建议
update-organization-recommendation-lifecycle
更新组织内建议的生命周期。
- 统一资源标识符:
trusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier}/lifecycle - 参数:
organizationId,recommendationIdentifier,lifecycleStage,updateReason,updateReasonCode,language,awsAccountId,region - 需求:企业支持计划
- 备注:仅支持优先建议
配置
环境变量
所有AWS配置都可以通过环境变量进行管理:
# AWS Credentials
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_SESSION_TOKEN=your_session_token # if using temporary credentials
# AWS Configuration
AWS_REGION=us-east-1 # Default region
AWS_PROFILE=your_profile # AWS profile to use
# Trusted Advisor specific
AWS_SUPPORT_REGION=us-east-1 # Support API only available in us-east-1AWS权限
服务器需要以下AWS权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"support:DescribeTrustedAdvisorChecks",
"support:DescribeTrustedAdvisorCheckResult",
"trustedadvisor:ListChecks",
"trustedadvisor:GetRecommendation",
"trustedadvisor:ListRecommendations",
"trustedadvisor:ListRecommendationResources",
"trustedadvisor:UpdateRecommendationLifecycle",
"trustedadvisor:BatchUpdateRecommendationResourceExclusion",
"trustedadvisor:ListOrganizationRecommendations",
"trustedadvisor:GetOrganizationRecommendation",
"trustedadvisor:ListOrganizationRecommendationAccounts",
"trustedadvisor:ListOrganizationRecommendationResources",
"trustedadvisor:UpdateOrganizationRecommendationLifecycle"
],
"Resource": "*"
}
]
}支持计划
不同的功能需要不同的AWS支持计划:
- 基本支持:没有受信任的顾问访问权限
- 开发者支持:受信任的顾问访问权限有限
- 业务支持:完全个人帐户Trusted Advisor访问权限
- 企业在坡道上:完全个人帐户Trusted Advisor访问权限
- 企业支持:完整的个人帐户+组织范围内的Trusted Advisor访问权限
错误处理
服务器实现了全面的错误处理:
- AWS API错误:带有AWS错误代码的格式正确的错误响应
- 验证错误:带有详细错误消息的输入验证
- 网络错误:妥善处理连接问题
- 权限错误:明确指出缺少权限
安装
# Install dependencies
pnpm install
# Build the project
pnpm run build
# Run the server
pnpm start使用MCP
此服务器旨在与MCP兼容的客户端一起使用。服务器通过stdio进行通信,并为所有操作提供结构化的JSON响应。
使用AI客户端进行配置
克劳德桌面
将此服务器添加到您的Claude Desktop配置文件中:
位置: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%/Claude/claude_desktop_config.json (Windows)
{
"mcpServers": {
"trusted-advisor": {
"command": "node",
"args": ["/path/to/mcp-trustedadvisor-server/build/main.js"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_ACCESS_KEY_ID": "your_access_key",
"AWS_SECRET_ACCESS_KEY": "your_secret_key"
}
}
}
}亚马逊Q开发者
在Amazon Q Developer设置中配置MCP服务器:
{
"mcp": {
"servers": {
"trusted-advisor": {
"command": "node",
"args": ["/path/to/mcp-trustedadvisor-server/build/main.js"],
"environment": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "your-aws-profile"
}
}
}
}
}其他MCP客户端
对于任何兼容MCP的客户端,请使用以下参数:
# Command to run the server
node /path/to/mcp-trustedadvisor-server/build/main.js
# Required environment variables
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
# Optional environment variables
AWS_PROFILE=your-profile
AWS_SESSION_TOKEN=your_session_token使用服务器
配置后,您可以要求您的AI客户端:
- 列出可用检查:“显示所有可用的Trusted Advisor检查”
- 获取推荐:“Trusted Advisor目前对我的帐户有哪些建议?”
- 查看具体服务:“显示成本优化建议”
- 管理资源:“将建议xyz的生命周期状态更新为已解决”
- 组织见解:“列出我所在组织的所有建议”
AI客户端将根据您的请求自动使用适当的MCP资源,并使用Trusted Advisor数据提供结构化响应。
建筑
服务器遵循干净代码原则,包括:
- 模块化设计:每个功能都在自己的模块中
- 可重用组件:共享架构、实用程序和错误处理
- 类型安全:具有严格类型的完整TypeScript实现
- 差错恢复:全面的错误处理和验证
- 可扩展性:易于添加新的Trusted Advisor功能
贡献
- 分叉存储库
- 创建要素分支
- 按照现有模式实施更改
- 添加新功能的测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
