返回市场
MCP可信顾问服务器

MCP可信顾问服务器

作者:tomtapia2 星标更新:2025-07-28

项目介绍

MCP Trusted Advisor Server

一个通过传统支持API和现代TrustedAdvisor API端点提供对AWS Trusted Advisor全面访问的模型上下文协议(MCP)服务器。

Ask DeepWiki Conventional Commits

概述

此服务器实现了模型上下文协议,以提供标准化的AWS Trusted Advisor功能访问,包括:

  • 传统支持API:与现有的Trusted Advisor集成兼容
  • 现代TrustedAdvisor API:具有更好的性能和特性的增强功能
  • 组织支持:面向企业的AWS Organizations功能
  • 资源管理:详细的资源分析和生命周期管理

功能

🔍 检查管理

  • 列出所有可用的Trusted Advisor检查,并进行过滤
  • 获取特定检查的详细信息
  • 支持多种语言(en, ja, fr, zh)

📊 建议

  • 根据各种标准列出并筛选建议
  • 获取详细的建议信息
  • 资源级别的分析和管理
  • 生命周期管理(进行中、已忽略、已解决等)

🏢 组织支持(需要企业级支持)

  • 组织范围内的建议聚合
  • 多账户资源管理
  • 组织级别的生命周期管理
  • 账户特定的资源筛选

⚙️ 资源操作

  • 批量排除/包含资源
  • 资源状态跟踪
  • 元数据和详细的资源信息
  • 跨账户资源可见性

可用资源

传统支持API资源

list-trusted-advisor-checks

使用传统的支持API列出所有可用的Trusted Advisor检查。

  • URItrusted-advisor://checks
  • 参数language, awsAccountId, region
  • 过滤器:基于语言的过滤
  • 需求:商业、企业入门或企业支持计划

get-trusted-advisor-recommendation

使用传统的支持API获取特定建议。

  • URItrusted-advisor://recommendations/{checkId}
  • 参数checkId, language, awsAccountId
  • 需求:商业、企业入门或企业支持计划

现代TrustedAdvisor API资源

list-checks

列出一组可筛选的Trusted Advisor检查。

  • URItrusted-advisor://checks/list
  • 参数awsService, pillar, source, maxResults, nextToken, language, awsAccountId, region
  • 过滤器:AWS服务、支柱、来源
  • 分页:支持nextToken

get-recommendation

获取特定的Trusted Advisor建议。

  • URItrusted-advisor://recommendations/{recommendationIdentifier}
  • 参数recommendationIdentifier, language, awsAccountId, region
  • 响应:带有生命周期信息的详细建议

list-recommendations

列出一组可筛选的Trusted Advisor建议。

  • URItrusted-advisor://recommendations
  • 参数awsService, pillar, source, status, maxResults, nextToken, language, awsAccountId, region
  • 过滤器:AWS服务、支柱、来源、状态
  • 分页:支持nextToken

list-recommendation-resources

列出Trusted Advisor建议的资源。

  • URItrusted-advisor://recommendations/{recommendationIdentifier}/resources
  • 参数recommendationIdentifier, status, exclusionStatus, maxResults, nextToken, language, awsAccountId, region
  • 过滤器:资源状态、排除状态
  • 分页:支持nextToken

update-recommendation-lifecycle

更新Trusted Advisor建议的生命周期。

  • URItrusted-advisor://recommendations/{recommendationIdentifier}/lifecycle
  • 参数recommendationIdentifier, lifecycleStage, updateReason, updateReasonCode, language, awsAccountId, region
  • 生命周期阶段pending_response, in_progress, dismissed, resolved
  • 注意:仅支持优先级建议

batch-update-recommendation-resource-exclusion

更新一批建议资源的排除状态。

  • URItrusted-advisor://recommendations/{recommendationIdentifier}/resource-exclusions
  • 参数recommendationIdentifier, resourceExclusions (数组), language, awsAccountId, region
  • 批量大小:每个请求最多100个资源
  • 响应:每个资源的成功/错误状态

组织资源(需要企业级支持)

list-organization-recommendations

列出组织内的一组可筛选建议。

  • URItrusted-advisor://organizations/{organizationId}/recommendations
  • 参数organizationId, awsService, pillar, source, status, maxResults, nextToken, language, awsAccountId, region
  • 需求:企业支持计划
  • 注意:仅支持优先级建议

get-organization-recommendation

获取组织内的特定建议。

  • URItrusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier}
  • 参数organizationId, recommendationIdentifier, language, awsAccountId, region
  • 需求:企业支持计划
  • 注意:仅支持优先级建议

list-organization-recommendation-accounts

列出拥有组织聚合建议资源的账户。

  • URItrusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier}/accounts
  • 参数organizationId, recommendationIdentifier, maxResults, nextToken, language, awsAccountId, region
  • 需求:企业支持计划
  • 注意:仅支持优先级建议

list-organization-recommendation-resources

列出组织内建议的资源。

  • URItrusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier}/resources
  • 参数organizationId, recommendationIdentifier, status, exclusionStatus, affectedAccountId, maxResults, nextToken, language, awsAccountId, region
  • 需求:企业支持计划
  • 注意:仅支持优先级建议

update-organization-recommendation-lifecycle

更新组织内建议的生命周期。

  • URItrusted-advisor://organizations/{organizationId}/recommendations/{recommendationIdentifier}/lifecycle
  • 参数organizationId, recommendationIdentifier, lifecycleStage, updateReason, updateReasonCode, language, awsAccountId, region
  • 需求:企业支持计划
  • 注意:仅支持优先级建议

配置

环境变量

所有AWS配置可以通过环境变量管理:

# AWS凭证
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_SESSION_TOKEN=your_session_token  # 如果使用临时凭证

# AWS配置
AWS_REGION=us-east-1                   # 默认区域
AWS_PROFILE=your_profile               # 使用的AWS配置文件

# Trusted Advisor特定配置
AWS_SUPPORT_REGION=us-east-1           # 支持API仅在us-east-1可用

AWS权限

该服务器需要以下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访问
  • 企业入门:完整的单账户Trusted Advisor访问
  • 企业支持:完整的单账户+组织范围的Trusted Advisor访问

错误处理

该服务器实现了全面的错误处理:

  • AWS API错误:带有AWS错误代码的正确格式化错误响应
  • 验证错误:带有详细错误消息的输入验证
  • 网络错误:优雅地处理连接问题
  • 权限错误:明确指示缺少权限

安装

# 安装依赖
pnpm install

# 构建项目
pnpm run build

# 运行服务器
pnpm start

使用MCP

此服务器设计用于与兼容MCP的客户端一起使用。服务器通过stdio通信,并为所有操作提供结构化的JSON响应。

与AI客户端配置

Claude Desktop

将此服务器添加到您的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"
      }
    }
  }
}

Amazon Q Developer

在您的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的客户端,请使用这些参数:

# 运行服务器的命令
node /path/to/mcp-trustedadvisor-server/build/main.js

# 必要的环境变量
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key

# 可选的环境变量
AWS_PROFILE=your-profile
AWS_SESSION_TOKEN=your_session_token

使用服务器

一旦配置完成,您可以向您的AI客户端询问:

  • 列出可用检查:"显示所有可用的Trusted Advisor检查"
  • 获取建议:"我的账户当前有哪些Trusted Advisor建议?"
  • 检查特定服务:"显示成本优化建议"
  • 管理资源:"将建议xyz的生命周期状态更新为已解决"
  • 组织洞察:"列出我组织中的所有建议"

AI客户端将根据您的请求自动使用适当的MCP资源,并提供带有Trusted Advisor数据的结构化响应。

架构

服务器遵循Clean Code原则,包括:

  • 模块化设计:每个功能都在自己的模块中
  • 可重用组件:共享模式、实用工具和错误处理
  • 类型安全:完全使用严格类型的TypeScript实现
  • 错误弹性:全面的错误处理和验证
  • 扩展性:易于添加新的Trusted Advisor功能

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 按照现有模式实施更改
  4. 为新功能添加测试
  5. 提交拉取请求

许可证

本项目采用MIT许可证——详情见LICENSE文件。