Token导航 LogoToken导航TokenDH.com
MCP Cross Account Pipeline logo
运维云端未说明官方级别未说明来源级核验

MCP Cross Account Pipeline

MCP Server

一个端到端的AWS基础设施分析管道,支持跨账户、集成Nova Pro AI和增强型Strands实现,提供全面的AWS SigV4认证。

工具数

12

提示词数

0

GitHub Stars

0

资源数

0
安全认证PythonCursorCursorVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Demo-MCP

提供方

Demo-MCP

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP跨账户管道

使用模型上下文协议(MCP)服务器的端到端AWS基础设施分析管道,具有跨帐户支持、Nova Pro AI集成、增强的Strands实施和全面的AWS SigV4身份验证。

🎥 快速演示

Kiro CLI Demo

![Watch Full Demo Video](https://www.linkedin.com/pulse/building-secure-ai-powered-aws-infrastructure-part-5-suhaib-chishti-qla6c/)

演示亮点:

  • 🚀 使用单个命令部署到开发环境
  • 📊 实时部署状态跟踪
  • 🔄 自动状态更新和运行详细信息
  • ⚡ 在2分钟内完成工作流程

📚 完整实施指南

构建安全的AI驱动的AWS基础架构助手 -5部分系列:

部分主题链接
第1部分企业人工智能采用挑战在LinkedIn上阅读
第2部分利用Strands和MCP实现分层访问控制在LinkedIn上阅读
第3部分从GitHub评论到生产:部署编排在LinkedIn上阅读
第4部分使用Kiro CLI集成进行本地开发在LinkedIn上阅读
第5部分经验教训:扩展人工智能基础设施工具在LinkedIn上阅读

你将学到什么:

  • 🔒 AI代理的企业级安全模式
  • 🏗️ AWS Strands框架具有增强的可观察性
  • 🔄 GitHub Actions+AI代理集成
  • 🖥️ 使用Kiro CLI和MCP进行本地开发
  • 📊 现实世界的绩效见解和经验教训

⚡ 快速开始

选项1:Kiro CLI集成(推荐)

# 1. Clone the repository
git clone https://github.com/your-org/mcp-cross-account-pipeline.git
cd mcp-cross-account-pipeline

# 2. Set up Kiro CLI integration
./scripts/setup-kiro-mcp.sh

# 3. Start using AI-powered infrastructure tools
kiro-cli chat
> deploy to dev
> deploy_status Demo-MCP/mcp-cross-account-pipeline
> deploy_get_run 

选项2:GitHub操作集成

# 1. Comment on any PR:
/deploy to staging

# 2. Check deployment status:
/ask What's the status of my deployment?

# 3. Analyze PR changes (admin only):
/analyze can you summarize pr for me

选项3:API直接集成

# Test the API directly
curl -X POST "https://your-api-gateway.amazonaws.com/prod/ask" \
  -H "Authorization: AWS4-HMAC-SHA256 ..." \
  -d '{"query": "List ECS clusters", "metadata": {"account_id": "123456789012"}}'

🚀 主要特点

🔒 企业安全

  • AWS SigV4身份验证:加密请求签名
  • 分层访问控制:用户(/ask)vs管理员(/admin)端点
  • 跨账户支持:安全STS角色假设
  • GitHub Runner隔离:基于角色的工作流隔离

🤖 人工智能驱动的操作

  • AWS Strands集成:企业级AI代理框架
  • 编排工具模式:在没有LLM超时的情况下处理大型CloudFormation模板
  • 智能参数解析:上下文感知命令解释
  • 实时状态更新:自动部署监控

🔄 多平台集成

  • GitHub操作:PR评论触发工作流
  • Kiro命令行界面:使用MCP协议进行本地开发
  • IDE兼容:适用于VS Code、Cursor和任何启用MCP的编辑器
  • API网关:通过身份验证直接访问REST API

📊 生产就绪

  • 开放遥测可观测性:完整的请求跟踪和指标
  • 容器编排:具有自动缩放功能的ECS Fargate
  • 部署指标:实时GitHub操作跟踪
  • 成本分析:AWS定价计算器集成

🏗️ 建筑

graph LR
    subgraph DevAccount [Developer Laptop]
        Client[AWS Kiro / IDE]
        Role[Developer IAM role]
    end

    subgraph GitHubActions [GitHub Actions Workflow]
        PullRequestComments
	Analyze[Admin Tools /Analyze]
        Ask[User Tools /Ask]
        
    end

    subgraph OpsAccount [Ops Account - Public]
        NLB[Api Gateway  
 Port 443]
        Fargate[VPC Link 
 IAM Auth]
    end

    subgraph OpsAccountPrivate [Ops Account - Private VPC]
        BrokerALB[Internal Broker ALB]
        BrokerSvc[Broker Container 
 FastAPI + Strands Agent + Otel + Ground Truth + Sigv4]
        MCPALB[Internal MCP ALB]
        
        subgraph MCPServices [MCP Service Containers]
            Pricing[Pricing Calc MCP]
            PR[PR Context MCP]
            Metrics[Deployment Metrics MCP]
            ECS[ECS Read Only MCP]
            IAC[IAC Read Only MCP]
        end
    end

    Client -- HTTPS/SigV4 --> NLB
    GitHubActions -- Workflow Metadata --> NLB
    NLB --> Fargate
    Fargate -- Verified IAM Identity --> BrokerALB
    BrokerALB -- /ask ( User Tools )--> BrokerSvc
    BrokerALB -- /admin ( Admin Tools )--> BrokerSvc
    BrokerSvc -- Orchestrated Tool Call --> MCPALB
    MCPALB --> Pricing
    MCPALB --> PR
    MCPALB --> Metrics
    MCPALB --> ECS
    MCPALB --> IAC

集成路径:

  • GitHub操作:PR评论触发经过身份验证的工作流
  • Kiro命令行界面:本地开发,可直接访问MCP服务器
  • API网关:集中身份验证和路由
  • MCP协议:跨所有路径的标准化工具集成

🔒 身份验证和安全

AWS SigV4身份验证

  • API网关集成:所有请求都必须通过经过身份验证的API网关终结点
  • 基于角色的访问控制:具有不同权限的开发人员和管理员角色
  • 会话令牌验证:验证假定角色的AWS会话令牌
  • 纵深防御:API网关IAM验证和中间层验证

访问控制矩阵

角色/ask 端点/admin 端点可用工具
DevMcpInvokeRole✅ 允许❌ 拒绝仅限用户工具(7个工具)
AdminMcpInvokeRole✅ 允许✅ 允许所有工具(11个工具)
未认证❌ 拒绝❌ 拒绝

安全特性

  • 直接ALB访问被阻止:GitHub工作流无法绕过身份验证
  • 会话令牌验证:验证令牌是否来自授权角色
  • API网关标头:验证通过正确的API网关发出的请求
  • 关闭安全失败:默认情况下,所有端点都需要身份验证

✨ 增强型Strands实施

🧠 高级快速工程

  • 上下文感知提示:基于工具上下文和用户意图的动态提示生成
  • 多回合对话:跨工具调用保持对话状态
  • 工具特定说明:针对不同工具类别(ECS、IAC、PR分析)定制提示
  • 错误恢复提示:具有上下文重试策略的智能错误处理

🛡️ 智能防护系统

  • 执行前验证:执行前验证工具参数
  • 保安:防止未经授权访问敏感操作
  • 速率限制:防止过多的API调用
  • 输入消毒:验证和净化所有用户输入
  • 工具兼容性检查:确保工具组合有效

🎯 模型最小架构

  • 有效使用令牌:优化提示以最大限度地减少令牌消耗
  • 选择性语境:仅包括每个工具调用的相关上下文
  • 响应压缩:在保留关键信息的同时压缩详细的API响应
  • 智能缓存:缓存常用数据以减少模型调用
  • 流媒体优化:处理大型响应而不会出现令牌溢出

🔄 状态数据切换

  • 内部工具编排:工具可以在内部调用其他工具,而不会将复杂性暴露给Nova
  • 数据管道:pr_get_diff之间的无缝数据流→ pr分析→ pr_总结
  • 上下文保护:在多步骤操作中保持状态
  • 错误隔离:一步的失败不会蔓延到其他步骤
  • 响应聚合:将多个工具输出组合成连贯的响应

🚫 幻觉预防

  • 基于事实的回应:基于实际API数据的所有响应
  • 消息来源:明确信息来源的归属
  • 验证层:多个验证步骤可防止错误信息
  • 结构化输出:强制JSON模式以获得一致、准确的响应
  • 实时验证:将响应与实时AWS数据进行交叉引用

✨ 核心功能

  • 🔄 基于层级的经纪人:通过以下方式实现安全的多层访问控制 /ask (用户)和 /admin (特权)端点
  • 🔒 安全第一设计:使用AWS SigV4身份验证和基于角色的访问控制进行故障关闭安全
  • 📊 部署指标集成:实时GitHub Actions部署跟踪和分析
  • 🔍 公关分析工具:具有安全扫描功能的全面拉取请求分析(仅限管理员)
  • 🤖 Nova Pro集成:具有代理循环和流超时解决方案的高级AI工具调用
  • 🔀 跨账户支持:每个API调用的动态角色假设
  • 🌐 MCP协议:标准化的AI工具与网关路由集成
  • ☁️ ECS Fargate:无服务器容器执行,容器稳定性得到改善
  • 🔗 GitHub集成:PR评论触发和响应,具有增强的工作流程输出
  • 🏗️ 多业务:ECS、基础设施即代码、部署分析和定价

🆕 增强:流超时解决方案

问题已解决大型CloudFormation模板(169+行)导致“响应过早结束”错误和容器崩溃。

解决方案已实施:

  • 工具编排:创建了内部处理大型差异数据的pr_analyze编排器工具
  • 有状态的交接模式:pr_analyze在内部处理较大的差异,并向Nova返回轻量级摘要
  • 参数分辨率:修复了缺少correlation_id和pr_get_diff参数的问题
  • 集装箱稳定性:在PR分析期间消除了504个网关超时和容器崩溃
  • 保留Checkov集成:通过内部工具调用维护完整的安全扫描功能

结果:

  • 不再出现流媒体故障:处理的大型模板没有“响应提前结束”错误
  • 集装箱稳定性:分析期间不再发生代理容器崩溃
  • 全面安全扫描:通过综合分析输出保持Checkov集成
  • 演出:复杂CloudFormation模板的2分钟以下分析

🆕 增强:工具选择和编排

智能工具策略管理:

  • 工具说明:更新以指导Nova进行最佳刀具选择
  • 编排模式:pr_analyze在内部同时调用pr_get_diff和pr_summarize
  • 基于策略的选择:如果策略中有其他工具,工具可以在内部调用它们
  • 重复功能清理:删除了冲突的工具定义

按层级划分的工具可用性:

按层级划分的工具可用性:

👤 用户层(/ask 端点):

  • 9种可用工具:基本基础设施和部署工具
  • 安全操作:对ECS、CloudFormation、部署的只读访问
  • 定价分析:核定资源的费用估计数
  • 无敏感访问:无法访问PR分析或堆栈定价

🔐 管理层(/admin 端点):

  • 12种可用工具:所有用户工具+敏感操作
  • 公关分析:使用pr_analyze编排器进行完整的拉取请求差异分析和安全扫描
  • 堆栈定价:任何CloudFormation堆栈的成本估算
  • 完全访问:所有基础设施分析功能

安全特性:

  • 失败关闭设计:未明确允许的工具被阻止
  • 工具执行门控:广告和执行时的双重验证
  • 元数据驱动:使用GitHub Actions上下文进行安全参数映射
  • 审计日志:跟踪所有工具调用和被拒绝的尝试
  • 关联ID跟踪:用于调试和安全的完整请求跟踪

🆕 新增:AWS定价计算器集成

该系统现在包括全面的AWS成本估算功能:

  • 实时定价:使用AWS定价API进行准确、最新的成本计算
  • CloudFormation支持:根据CloudFormation模板(YAML/JSON)估算成本
  • 跨账户定价:部署在不同AWS帐户中的价格堆栈
  • 47 AWS服务:支持EC2、RDS、Lambda、S3、ECS、ALB等40多种服务
  • 免费等级处理:自动应用AWS免费等级津贴
  • 月度估算:提供详细的月度成本明细
  • 模板解析:处理CloudFormation内部函数和引用

🆕 新增:统一MCP代理集成

代理服务现在为所有部署工具提供了一个单一的智能入口点:

  • 动态工具发现:从PR上下文、部署指标和定价MCP服务器中自动发现工具
  • 智能路由:路线 pr_* PR上下文工具, deploy_* 工具到度量, pricingcalc_* 定价工具
  • 工具缓存:启动时缓存12个工具,以获得一致的亚秒级响应时间
  • 元数据集成:使用GitHub Actions元数据作为存储库和run_id(如果可用)
  • 参数映射:自动将基岩参数映射到MCP服务要求
  • 自动运行选择:当没有提供run_id时,自动选择RUNNING部署
  • 文本响应处理:为基岩兼容性正确设置文本响应格式
  • 存储库验证:验证存储库格式,更喜欢元数据而不是人工智能猜测

🆕 增强:公关分析和安全扫描

综合分析管道:

  • 差异分析:使用大模板支持完成PR差异检索和解析
  • 安全扫描:Checkov集成用于基础设施安全分析
  • 编排好的工作流:pr_分析→ pr_get_diff→ pr_总结内部切换
  • IAC资源检测:识别云层形成、地形和其他IAC变化
  • 成本影响分析:估计基础设施变化对定价的影响
  • 仅管理员访问:敏感代码分析仅限于特权用户
  • GitHub集成:与GitHub Actions工作流无缝集成

增强的安全功能:

  • 中/高/关键问题检测:综合安全发现分类
  • 特定资源调查结果:确定有问题的确切资源和行号
  • 补救指南:提供可操作的步骤来解决安全问题
  • 合规性扫描:检查AWS安全最佳实践
  • 大模板支持:处理169+行CloudFormation模板,无超时

工作流集成:

  • 清洁输出:已删除 .answer 更清晰的GitHub工作流结果的回退
  • 结构化响应:一致的JSON响应格式
  • 错误处理:优雅地处理分析失败,并显示详细的错误消息

🖥️ Kiro CLI集成

MCP的地方发展

该管道现在包括 Kiro CLI集成 用于本地开发和测试,通过本地MCP服务器提供对部署编排工具的直接访问。

🔧 主要特点:

  • 本地MCP服务器:在没有GitHub操作的情况下在本地运行部署工具
  • 自动状态更新: deploy_local 自动呼叫 deploy_status 发布公关评论后
  • 跨帐户身份验证:使用AWS角色假设进行安全的API访问
  • 实时部署跟踪:直接从终端监控部署进度
  • 后备保护:如果自动状态调用失败,则性能会下降

🛠️ 可用工具:

  • `deploy_local

` -部署后评论并获取状态

  • deploy_status -检查当前部署状态
  • deploy_get_run -获取详细的跑步信息
  • deploy_list_runs -列出最近的部署运行

⚡ 快速设置:

# 1. Run setup script
./scripts/setup-kiro-mcp.sh

# 2. Start Kiro CLI
kiro-cli chat

# 3. Deploy and monitor
deploy_local Demo-MCP/mcp-cross-account-pipeline feature-branch dev

📺 终端会话示例

$ kiro-cli chat
✓ aws-mcp-broker loaded in 2.73 s

> cd /Users/local_user/Downloads/mcp-cross-account-pipeline
/Users/local_user/Downloads/mcp-cross-account-pipeline

> deploy to dev
Deployment to dev environment has been initiated! 

The deployment is running in the background for:
- Repository: Demo-MCP/mcp-cross-account-pipeline
- Branch: dev  
- PR: #15

You can track progress using:
- deploy_status Demo-MCP/mcp-cross-account-pipeline for latest status
- Check PR #15 for the run_id when it appears in GitHub Actions comments

> deploy_status Demo-MCP/mcp-cross-account-pipeline
Current deployment status for Demo-MCP/mcp-cross-account-pipeline:

Latest Deployments:

⏳ Run 20641130601 - RUNNING
- Branch: main
- Started: 2026-01-01 15:32:42+00:00

✅ Run 20639402793 - SUCCEEDED  
- Branch: main
- Started: 2026-01-01 13:31:30+00:00

The most recent deployment (Run 20641130601) is currently running. 
Use deploy_get_run 20641130601 for more details.

> deploy_get_run 20641130601
Deployment Run 20641130601 Details:

✅ Status: SUCCEEDED
- Repository: Demo-MCP/mcp-cross-account-pipeline
- Branch: main
- Workflow: Deploy Infrastructure
- Duration: 46 seconds
- Started: 2026-01-01 15:32:42+00:00
- Ended: 2026-01-01 15:33:28+00:00
- Runner: ecs-runner-ip-172-31-19-50.ec2.internal

The deployment completed successfully with no errors!

🔄 工作流程增强:

  • 之前:手动PR评论→ 手动状态检查→ 手动运行详细信息
  • 之后:单一命令→ 自动状态→ 综合监测

📁 集成文件:

  • scripts/aws-mcp-broker/ -完成MCP服务器的实施
  • scripts/setup-kiro-mcp.sh -自动设置脚本
  • scripts/kiro-mcp-config.json -配置模板
  • KIRO_INTEGRATION.md -详细的集成文档

🔒 安全:

  • 使用与GitHub Actions相同的AWS角色假设
  • 验证存储库访问权限
  • 通过AWS配置文件进行安全的凭证处理
  • 没有硬编码的秘密或令牌

🚀 从零开始快速部署

先决条件

  • 配置了管理员权限的AWS CLI
  • Docker已安装并登录ECR
  • 启用了Actions的GitHub存储库

1.配置基础结构参数

使用您的AWS帐户详细信息更新以下文件:

scripts/mcp-gateway-task.json

{
  "family": "mcp-gateway",
  "taskRoleArn": "arn:aws:iam::YOUR-ACCOUNT-ID:role/McpServerTaskRole",
  "executionRoleArn": "arn:aws:iam::YOUR-ACCOUNT-ID:role/ecsTaskExecutionRole"
}

🔐 身份验证设置

1.部署身份验证基础架构

使用AWS SigV4身份验证部署API网关:

cd infrastructure
./deploy-auth.sh

这将创建:

  • API网关HTTP API 具有AWS_IAM授权
  • DevMcpInvokeRole -仅限于 /ask 端点(用户工具)
  • AdminMcpInvokeRole -访问两者 /ask/admin 端点
  • VPC链接 用于安全的ALB集成

2.测试认证

测试身份验证系统:

cd scripts
./test-auth.sh

预期成果:

  • ✅ 开发人员角色可以调用 /ask (HTTP 200)
  • ✅ 开发人员角色被拒绝 /admin 访问(HTTP 403)
  • ✅ 管理员角色可以调用 /admin (HTTP 200)
  • ✅ 未签名的请求被拒绝(HTTP 403)

3.API终点

经过身份验证的API网关URL:

  • 询问端点: https://YOUR-API-ID.execute-api.us-east-1.amazonaws.com/prod/ask
  • 管理员端点: https://YOUR-API-ID.execute-api.us-east-1.amazonaws.com/prod/admin
  • 工具端点: https://YOUR-API-ID.execute-api.us-east-1.amazonaws.com/prod/tools (无身份验证)

直接访问ALB: ❌ 已屏蔽 -所有请求必须通过API网关

🔐 安全和访问控制

Tiered Access Demo

身份验证流程

GitHub Actions → Assume Role → SigV4 Sign → API Gateway → Broker → MCP Servers

基于层的访问

系统实现了两个访问层以确保安全:

👤 用户层(/ask 端点):

# Safe for general use - 9 tools available
curl -X POST http://your-broker-url/ask \
  -H "Content-Type: application/json" \
  -d '{"ask_text": "List ECS clusters"}'

🔐 管理层(/admin 端点):

# Privileged access - 12 tools available (includes PR analysis)
curl -X POST http://your-broker-url/admin \
  -H "Content-Type: application/json" \
  -d '{
    "ask_text": "Analyze pull request #9 for security issues",
    "metadata": {
      "repository": "org/repo",
      "pr_number": 9,
      "actor": "username",
      "run_id": "12345"
    }
  }'

工具类别

类别用户层管理层描述
ECS工具列出集群,描述服务
IAC工具云组叠加分析
部署工具GitHub Actions部署指标
基本价格基于模板的成本估算
公关分析拉取请求差异和安全扫描
堆栈定价任何CloudFormation堆栈的成本估算

GitHub操作集成

使用 /analyze PR注释中的命令用于管理员级别分析:

/analyze Get security analysis and cost impact for this PR

这会触发具有适当元数据上下文的管理工作流。

scripts/broker-task.json

{
  "family": "broker-service", 
  "taskRoleArn": "arn:aws:iam::YOUR-ACCOUNT-ID:role/McpServerTaskRole",
  "executionRoleArn": "arn:aws:iam::YOUR-ACCOUNT-ID:role/ecsTaskExecutionRole"
}

更新部署脚本中的子网和安全组:

  • 子网: subnet-0d1a30fbc37023fea, subnet-0b296ab71b4c7e39d
  • 安全组: sg-0190ab5630f4e7309

2.构建和推送图像

# Login to ECR
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com

# Build and push broker service
cd broker-service
docker build -t YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/broker-service:latest .
docker push YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/broker-service:latest

# Build and push pricing calculator
cd ../pricingcalc-mcp
docker build -t YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/pricingcalc-mcp:latest .
docker push YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/pricingcalc-mcp:latest

# Build and push MCP gateway
cd ../mcp-gateway
docker build -f Dockerfile -t YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/mcp-gateway:latest .
docker push YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/mcp-gateway:latest

# Build and push GitHub runner (for testing)
cd ../github-runner
docker build -t YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/github-runner:latest .
docker push YOUR-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/github-runner:latest

3.部署基础设施

# Create ECS cluster
aws ecs create-cluster --cluster-name mcp-cluster

# Register task definitions
aws ecs register-task-definition --cli-input-json file://scripts/broker-task.json
aws ecs register-task-definition --cli-input-json file://scripts/mcp-gateway-task.json

# Create ALB and target groups (update with your VPC/subnet IDs)
aws elbv2 create-load-balancer --name broker-internal-alb --subnets subnet-YOUR-ID subnet-YOUR-ID --security-groups sg-YOUR-ID --scheme internal
aws elbv2 create-load-balancer --name mcp-internal-alb --subnets subnet-YOUR-ID subnet-YOUR-ID --security-groups sg-YOUR-ID --scheme internal

# Create ECS services
aws ecs create-service --cluster mcp-cluster --service-name broker-service --task-definition broker-service:1 --desired-count 1 --launch-type FARGATE --network-configuration "awsvpcConfiguration={subnets=[subnet-YOUR-ID,subnet-YOUR-ID],securityGroups=[sg-YOUR-ID],assignPublicIp=ENABLED}" --load-balancers targetGroupArn=arn:aws:elasticloadbalancing:us-east-1:YOUR-ACCOUNT-ID:targetgroup/broker-targets/YOUR-ID,containerName=broker-service,containerPort=8080

aws ecs create-service --cluster mcp-cluster --service-name mcp-gateway --task-definition mcp-gateway:1 --desired-count 1 --launch-type FARGATE --network-configuration "awsvpcConfiguration={subnets=[subnet-YOUR-ID,subnet-YOUR-ID],securityGroups=[sg-YOUR-ID],assignPublicIp=ENABLED}" --load-balancers targetGroupArn=arn:aws:elasticloadbalancing:us-east-1:YOUR-ACCOUNT-ID:targetgroup/mcp-gateway-targets/YOUR-ID,containerName=mcp-gateway,containerPort=8080

4.配置GitHub操作

设置存储库机密:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_REGION (美国东部-1)
  • GITHUB_TOKEN

更新 .github/workflows/ask.yml 使用您的ALB URL:

env:
  BROKER_URL: "http://internal-broker-internal-alb-YOUR-ID.us-east-1.elb.amazonaws.com"

5.端到端测试

# Test ECS MCP server
curl -X POST http://YOUR-GATEWAY-ALB-URL/call-tool \
  -H "Content-Type: application/json" \
  -d '{"server": "ecs", "tool": "ecs_call_tool", "params": {"tool": "ecs_resource_management", "params": {"api_operation": "ListClusters", "api_params": {}, "account_id": "YOUR-ACCOUNT-ID", "region": "us-east-1"}}}'

# Test IAC MCP server  
curl -X POST http://YOUR-GATEWAY-ALB-URL/call-tool \
  -H "Content-Type: application/json" \
  -d '{"server": "iac", "tool": "iac_call_tool", "params": {"tool": "troubleshoot_cloudformation_deployment", "params": {"account_id": "YOUR-ACCOUNT-ID", "region": "us-east-1", "stack_name": "sample-demo"}}}'

# Test unified broker with pricing calculator
curl -X POST http://YOUR-BROKER-ALB-URL/ask \
  -H "Content-Type: application/json" \
  -d '{"ask_text": "How much does my sample-demo stack cost per month?", "account_id": "YOUR-ACCOUNT-ID", "region": "us-east-1"}'

# Test unified broker with deployment metrics
curl -X POST http://YOUR-BROKER-ALB-URL/ask \
  -H "Content-Type: application/json" \
  -d '{"ask_text": "Get deployment summary for the latest run", "account_id": "YOUR-ACCOUNT-ID", "region": "us-east-1", "metadata": {"repository": "Demo-MCP/mcp-cross-account-pipeline", "run_id": "20490462868"}}'

# Test broker service with ECS tools
curl -X POST http://YOUR-BROKER-ALB-URL/ask \
  -H "Content-Type: application/json" \
  -d '{"ask_text": "List all ECS clusters in my account", "shim_url": "http://YOUR-GATEWAY-ALB-URL", "account_id": "YOUR-ACCOUNT-ID", "region": "us-east-1", "metadata": {"source": "test"}}'

📁 存储库结构

├── broker-service/           # Unified Nova Pro broker service
│   ├── broker.py            # FastAPI broker with unified MCP integration
│   ├── Dockerfile           # Container configuration
│   └── requirements.txt     # Python dependencies
├── pricingcalc-mcp/         # AWS Pricing Calculator MCP server
│   ├── app.py              # MCP server with 47 AWS services pricing
│   ├── estimator.py        # CloudFormation template cost estimation
│   ├── aws_resources/      # Individual service pricing implementations
│   └── Dockerfile          # Container configuration
├── mcp-gateway/             # MCP protocol gateway
│   ├── gateway.py           # FastAPI gateway routing MCP servers
│   └── Dockerfile           # Container configuration
├── ecs-mcp-server/          # ECS MCP server (embedded)
├── aws-iac-mcp-server/      # Infrastructure MCP server (embedded)
├── deployment-metrics-mcp-server/ # GitHub Actions deployment tracking (external)
├── platform_aws_context/   # AWS context utilities
├── scripts/                 # Deployment task definitions
├── .github/workflows/       # GitHub Actions
└── sample-stack.yaml        # Demo CloudFormation template

🔧 关键组件

代理服务(增强型Strands实现)

  • 🔄 统一MCP集成:单个入口点路由到多个MCP服务器
  • 💰 AWS定价集成:使用AWS定价API进行实时成本估算
  • 📊 部署指标:实时GitHub Actions部署跟踪
  • 🤖 增强的Nova Pro集成:用途 bedrock.converse() 具有流超时解决方案的API
  • 🧠 智能刀具路径:路线 pricingcalc_* 到定价服务器, deploy_* 到度量服务器, pr_* 公关分析
  • ⚡ 工具缓存:启动时缓存工具,响应时间不到秒
  • 📝 元数据处理:从GitHub Actions上下文中提取存储库和run_id
  • 🎯 自动运行选择:优先考虑RUNNING部署以进行实时跟踪
  • 🔄 状态数据切换:复杂操作的内部工具编排(pr_analyze→ pr_get_diff→ pr_总结)
  • 🛡️ 高级警卫:执行前验证和安全控制
  • 🚫 幻觉预防:基于事实的答复,注明来源
  • 📋 关联ID跟踪:用于调试和安全的完整请求跟踪
  • 演出:缓存优化后,响应时间约为1-2s,处理大型CloudFormation模板时不会超时

AWS定价计算器

  • 💲 实时定价:使用AWS定价API进行准确的成本计算
  • 📋 47 AWS服务:EC2、RDS、Lambda、S3、ECS、ALB、CloudWatch等
  • 🆓 免费层支持:自动应用AWS免费等级津贴
  • 📊 CloudFormation集成:根据YAML/JSON模板估算成本
  • 🔄 跨账户支持:不同AWS帐户中的价格堆栈
  • 📈 月度估算:每项服务的详细成本明细

MCP网关

  • 服务器路由:将请求路由到适当的MCP服务器(ECS/IAC)
  • 进程管理:管理MCP服务器进程和通信
  • 协议转换:将HTTP请求转换为MCP协议

MCP服务器(嵌入式)

  • ECS服务器:列出集群、服务、任务,对部署进行故障排除
  • IAC服务器:分析CloudFormation堆栈,排除部署故障
  • 模组分辨率:修复了PYTHONPATH正确进口的问题

基础设施

  • ECS Fargate:无服务器容器执行
  • 应用程序负载平衡器:健康检查和路由(2个ALB:代理+网关)
  • ECR:容器映像注册表
  • 云监控:记录和监控

💡 使用示例

PR评论

# Analyze infrastructure
/ask List all ECS clusters and their status

# Troubleshoot CloudFormation
/ask Check the CloudFormation stack sample-demo for any issues

直接API调用

# Via Broker (recommended)
curl -X POST http://your-broker-alb-url/ask \
  -H "Content-Type: application/json" \
  -d '{
    "ask_text": "List ECS tasks in cluster mcp-cluster",
    "shim_url": "http://your-gateway-alb-url",
    "account_id": "YOUR-ACCOUNT-ID", 
    "region": "us-east-1",
    "metadata": {"source": "api"}
  }'

# Direct Gateway Call
curl -X POST http://your-gateway-alb-url/call-tool \
  -H "Content-Type: application/json" \
  -d '{
    "server": "ecs",
    "tool": "ecs_call_tool", 
    "params": {
      "tool": "ecs_resource_management",
      "params": {
        "api_operation": "ListClusters",
        "api_params": {},
        "account_id": "YOUR-ACCOUNT-ID",
        "region": "us-east-1"
      }
    }
  }'

🔧 配置要求

所需AWS资源

  • ECS集群: mcp-cluster
  • 虚拟私有云:具有公共/私有子网
  • 安全组:允许服务之间的HTTP流量
  • IAM角色:

- ecsTaskExecutionRole (ECS任务执行) - McpServerTaskRole (AWS API访问)

  • ECR存储库:

- broker-service - mcp-gateway - github-runner

环境变量

  • 中间人服务:不需要特殊的环境变量
  • MCP网关:使用带有固定PYTHONPATH的嵌入式MCP服务器
  • GitHub操作:使用存储库机密作为AWS凭据

🚨 故障排除

常见问题

  1. 模块导入错误(已修复)

- 问题: ModuleNotFoundError: No module named 'awslabs.aws_iac_mcp_server' - 解决方案:网关现在为IAC服务器使用显式PYTHONPATH: env PYTHONPATH=/app/aws-iac-mcp-server:/app python /app/aws-iac-mcp-server/awslabs/aws_iac_mcp_server/server.py

  1. 网关健康检查失败

- 检查ALB目标群体的健康状况 - 验证安全组是否允许端口8080上的流量 - 检查ECS服务状态

  1. 经纪人超时问题

- 将复杂操作的超时时间增加到2分钟 - 从代理检查网关ALB连接

调试命令

# Check ECS service status
aws ecs describe-services --cluster mcp-cluster --services broker-service mcp-gateway

# View logs
aws logs get-log-events --log-group-name /ecs/broker-service --log-stream-name LATEST
aws logs get-log-events --log-group-name /ecs/mcp-gateway --log-stream-name LATEST

# Test ALB health
curl http://your-broker-alb-url/health
curl http://your-gateway-alb-url/health

# Test MCP servers directly
aws ecs run-task --cluster mcp-cluster --task-definition github-runner:3 --launch-type FARGATE --network-configuration "awsvpcConfiguration={assignPublicIp=ENABLED,securityGroups=[sg-YOUR-ID],subnets=[subnet-YOUR-ID]}" --overrides '{"containerOverrides":[{"name":"github-runner","command":["curl","-X","POST","http://YOUR-GATEWAY-ALB/call-tool","-H","Content-Type: application/json","-d","{\"server\":\"ecs\",\"tool\":\"ecs_call_tool\",\"params\":{\"tool\":\"ecs_resource_management\",\"params\":{\"api_operation\":\"ListClusters\",\"api_params\":{},\"account_id\":\"YOUR-ACCOUNT-ID\",\"region\":\"us-east-1\"}}}"]}]}'

🔄 开发工作流程

  1. 本地测试:部署前单独测试MCP服务器
  2. 构建图像:构建并推进ECR
  3. 部署服务:用新的任务定义更新ECS服务
  4. 测试集成:验证经纪人→ 网关→ MCP服务器流
  5. GitHub集成:通过PR评论进行测试

🚀 部署指标集成

统一代理现在包括实时GitHub Actions部署跟踪:

可用部署工具

  • deploy_find_latest:查找存储库的最新部署运行
  • deploy_get_summary:获取详细的部署摘要,包括时间和状态
  • deploy_get_run:获取特定的部署运行详细信息
  • deploy_get_steps:获取部署步骤详细信息和日志
  • deploy_find_active:查找当前正在运行的部署

使用示例

# Get latest deployment for current repository (uses metadata)
"Get the latest deployment summary"

# Get specific deployment details
"Get deployment summary for run 20490462868"

# Find running deployments
"Show me any deployments currently running"

# Get deployment with steps
"Get deployment summary with run and step details for run_id 20490462868"

元数据集成

当从GitHub Actions调用时,代理会自动使用:

  • 仓库:来自 github.repository 上下文
  • 运行ID:来自 github.run_id 上下文
  • 自动选择:未指定run_id时,优先考虑RUNNING部署

📈 监控

  • CloudWatch日志:

- /ecs/broker-service -带有详细工具调用的代理服务日志 - /ecs/mcp-gateway -网关路由和MCP服务器管理 - /ecs/github-runner -测试执行日志

  • ECS指标:两个服务的CPU、内存、任务运行状况
  • ALB指标:两个ALB的请求计数、延迟、错误

🤝 贡献

  1. 分叉存储库
  2. 使用您的AWS帐户详细信息更新配置文件
  3. 使用上述调试命令进行本地测试
  4. 提交拉取请求
  5. 评论 /ask test the system 触发验证

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件

目录标签

目录标签

安全认证PythonCursorAWS基础设施本地部署跨账户支持AI集成部署自动化

支持客户端

CursorVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP