云优化演示工具

Cloud Optimizer MCP是一个具有玻璃态React前端和FastAPI后端的云成本优化演示工具,支持聊天机器人辅助和AWS账户模拟验证。

  • by Incertyo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Incertyo/MCP

使用说明

云优化器MCP

Cloud Optimizer MCP是一个演示就绪的云优化演示,具有glassmorphic React前端和FastAPI后端。它模拟云成本优化工作流程,支持聊天机器人副本,并允许您在模拟或真实验证模式下演示推荐接受、拒绝、回放、可观察性和AWS帐户登录。

实时部署

项目包括什么

  • frontend/
    • React+TypeScript+Vite
    • 仪表板、服务、聊天、帐户、影响工作室和可观察性视图
    • 暗模式、glassmorphic UI、图表、内部滚动面板和以演示为中心的交互
  • backend/
    • FastAPI API
    • 模拟AWS学生帐户模式
    • 通过仅后端的STS检查实现真正的AWS凭据验证模式
    • 确定性推荐引擎
    • 支持Gemini回退的聊天编排
    • DynamoDB就绪存储库层
    • Datadog式遥测挂钩

主要特点

  • 带有KPI、资源清单、折线图、饼图、时间线和可观察性面板的仪表板
  • Impact Studio提供接受、拒绝和重复回放流程,用于演示建议
  • 优化带有后端支持状态感知的Copilot聊天
  • 显示后端馈送服务集群的“服务”选项卡
  • 账户流量:
    • mocked 演示演示模式
    • real AWS凭据后端验证模式
  • 可观察性面板,带有指标和单独的事件提要

建筑

  • 前端通过调用后端 VITE_API_BASE
  • 后端在下为API路由提供服务 /api
  • 状态存储在:
    • 默认情况下为本地JSON
    • 启用DynamoDB时
  • 遥测数据在应用程序中镜像,也可以发送到Datadog
  • Gemini仅用于辅助响应层;推荐逻辑保持确定性

本地开发

后端

cd backend
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

前端

cd frontend
npm install
npm run dev

本地URL:

  • 前端: http://localhost:5173
  • 后端: http://localhost:8000
  • 后端健康: http://localhost:8000/health

环境变量

后端

  • PRISM_USE_DYNAMODB=false
  • PRISM_DYNAMODB_REGION=ap-south-1
  • PRISM_DYNAMODB_TABLE_PREFIX=prism_demo
  • PRISM_DATA_FILE=backend/.local/prism_state.json
  • PRISM_FRONTEND_ORIGIN=http://localhost:5173
  • GEMINI_API_KEY=...
  • GOOGLE_API_KEY=...
  • GEMINI_MODEL=gemini-2.5-flash
  • GEMINI_API_BASE=https://generativelanguage.googleapis.com/v1beta
  • DD_API_KEY=...
  • DD_APP_KEY=...
  • DD_SITE=datadoghq.com
  • DD_ENV=demo
  • DD_SERVICE=cloud-optimizer-mcp-backend

前端

  • VITE_API_BASE=http://localhost:8000/api

模板:

  • [backend/.env.example.](C:\Users\Mohan Achary\Documents\MCP\backend.env.example)
  • [frontend/.env.example.](C:\Users\Mohan Achary\Documents\MCP\frontend.env.example)

Gemini设置

不要将API密钥粘贴到代码库中或将其提交到Git。

本地

cd backend
$env:GEMINI_API_KEY="your-real-key"
$env:GEMINI_MODEL="gemini-2.5-flash"
uvicorn app.main:app --reload --port 8000

维塞尔

在后端Vercel项目中添加以下内容:

  • GEMINI_API_KEY
  • GEMINI_MODEL=gemini-2.5-flash

如果密钥丢失或Gemini失败,后端将退回到内置的基于规则的聊天响应。

AWS帐户模式

模拟模式

最适合演示/演示使用。

  1. 打开 /account
  2. 选择 Mocked demo AWS
  3. 输入学生详细信息和占位符凭据
  4. 提交种子资源、推荐、活动和聊天环境

真实模式

最适合验证真实的AWS学生或实验室帐户。

  1. 打开 /account
  2. 选择 Real AWS via backend validation
  3. 输入AWS访问密钥ID和秘密访问密钥
  4. 如果您的学生帐户使用临时凭据,请添加会话令牌
  5. 提交

后端使用AWS STS验证凭据。当前的实现验证了帐户,然后仍然使用演示资源数据进行可视化。

安全说明:

  • 秘密访问密钥和会话令牌不会返回给前端
  • 后端验证在服务器端执行

Vercel部署

该项目被设计为来自同一GitHub仓库的两个Vercel项目。

后端项目

  • 根目录: backend
  • 入口点:[backend/index.py](C:\Users\Mohan Achary\Documents\MCP\backend\index.py)
  • 路由配置:[backend/vercel.json](C:\Users\Mohan Achary\Documents\MCP\backend\vercel.json)

必需的环境变量:

  • PRISM_FRONTEND_ORIGIN=https://YOUR_FRONTEND_DOMAIN
  • GEMINI_API_KEY=... 如果使用Gemini
  • GEMINI_MODEL=gemini-2.5-flash
  • DD_API_KEY=... 如果使用Datadog
  • DD_APP_KEY=...
  • DD_SITE=datadoghq.com
  • DD_ENV=production
  • DD_SERVICE=cloud-optimizer-mcp-backend

前端项目

  • 根目录: frontend

必需的环境变量:

  • VITE_API_BASE=https://YOUR_BACKEND_DOMAIN/api

重要部署说明

  • 后端CORS支持Vercel前端部署URL
  • Vercel后端状态写入使用临时存储来避免只读文件系统故障
  • 实时应用程序不应再显示通用 Failed to fetch 用于正常交互

验证检查表

  1. 打开前端
  2. 确认仪表板加载无请求错误
  3. 打开 /account 并提交模拟模式
  4. 打开 /chat 并发送消息
  5. 接受或拒绝推荐
  6. 清除时间线或聊天
  7. 确认每次操作后的UI更新

演示流程

  1. 开始做 /account
  2. 链接一个模拟的AWS学生帐户
  3. 显示仪表板KPI和图表
  4. 打开Impact Studio并接受或拒绝推荐
  5. 以模拟模式重播重复推荐
  6. 打开服务以显示后端馈送服务清单
  7. 打开聊天显示优化副驾驶
  8. 开放可观察性,显示指标和事件

当前限制

  • 真正的AWS模式验证凭据,但尚未从EC2、RDS、S3和Lambda中提取实时资源清册
  • Vercel上的本地JSON持久性是临时设计的;启用DynamoDB以实现持久的生产状态
  • Gemini是可选的,仅为辅助解释层供电

仓库