使用说明
云优化器MCP
Cloud Optimizer MCP是一个演示就绪的云优化演示,具有glassmorphic React前端和FastAPI后端。它模拟云成本优化工作流程,支持聊天机器人副本,并允许您在模拟或真实验证模式下演示推荐接受、拒绝、回放、可观察性和AWS帐户登录。
实时部署
- 前端: https://cloud-optimizer-mcp-frontend.vercel.app
- 后端: https://cloud-optimizer-mcp-backend.vercel.app
- 健康: https://cloud-optimizer-mcp-backend.vercel.app/health
项目包括什么
frontend/- React+TypeScript+Vite
- 仪表板、服务、聊天、帐户、影响工作室和可观察性视图
- 暗模式、glassmorphic UI、图表、内部滚动面板和以演示为中心的交互
backend/- FastAPI API
- 模拟AWS学生帐户模式
- 通过仅后端的STS检查实现真正的AWS凭据验证模式
- 确定性推荐引擎
- 支持Gemini回退的聊天编排
- DynamoDB就绪存储库层
- Datadog式遥测挂钩
主要特点
- 带有KPI、资源清单、折线图、饼图、时间线和可观察性面板的仪表板
- Impact Studio提供接受、拒绝和重复回放流程,用于演示建议
- 优化带有后端支持状态感知的Copilot聊天
- 显示后端馈送服务集群的“服务”选项卡
- 账户流量:
mocked演示演示模式realAWS凭据后端验证模式
- 可观察性面板,带有指标和单独的事件提要
建筑
- 前端通过调用后端
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=falsePRISM_DYNAMODB_REGION=ap-south-1PRISM_DYNAMODB_TABLE_PREFIX=prism_demoPRISM_DATA_FILE=backend/.local/prism_state.jsonPRISM_FRONTEND_ORIGIN=http://localhost:5173GEMINI_API_KEY=...GOOGLE_API_KEY=...GEMINI_MODEL=gemini-2.5-flashGEMINI_API_BASE=https://generativelanguage.googleapis.com/v1betaDD_API_KEY=...DD_APP_KEY=...DD_SITE=datadoghq.comDD_ENV=demoDD_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_KEYGEMINI_MODEL=gemini-2.5-flash
如果密钥丢失或Gemini失败,后端将退回到内置的基于规则的聊天响应。
AWS帐户模式
模拟模式
最适合演示/演示使用。
- 打开
/account - 选择
Mocked demo AWS - 输入学生详细信息和占位符凭据
- 提交种子资源、推荐、活动和聊天环境
真实模式
最适合验证真实的AWS学生或实验室帐户。
- 打开
/account - 选择
Real AWS via backend validation - 输入AWS访问密钥ID和秘密访问密钥
- 如果您的学生帐户使用临时凭据,请添加会话令牌
- 提交
后端使用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_DOMAINGEMINI_API_KEY=...如果使用GeminiGEMINI_MODEL=gemini-2.5-flashDD_API_KEY=...如果使用DatadogDD_APP_KEY=...DD_SITE=datadoghq.comDD_ENV=productionDD_SERVICE=cloud-optimizer-mcp-backend
前端项目
- 根目录:
frontend
必需的环境变量:
VITE_API_BASE=https://YOUR_BACKEND_DOMAIN/api
重要部署说明
- 后端CORS支持Vercel前端部署URL
- Vercel后端状态写入使用临时存储来避免只读文件系统故障
- 实时应用程序不应再显示通用
Failed to fetch用于正常交互
验证检查表
- 打开前端
- 确认仪表板加载无请求错误
- 打开
/account并提交模拟模式 - 打开
/chat并发送消息 - 接受或拒绝推荐
- 清除时间线或聊天
- 确认每次操作后的UI更新
演示流程
- 开始做
/account - 链接一个模拟的AWS学生帐户
- 显示仪表板KPI和图表
- 打开Impact Studio并接受或拒绝推荐
- 以模拟模式重播重复推荐
- 打开服务以显示后端馈送服务清单
- 打开聊天显示优化副驾驶
- 开放可观察性,显示指标和事件
当前限制
- 真正的AWS模式验证凭据,但尚未从EC2、RDS、S3和Lambda中提取实时资源清册
- Vercel上的本地JSON持久性是临时设计的;启用DynamoDB以实现持久的生产状态
- Gemini是可选的,仅为辅助解释层供电
仓库
- github: https://github.com/Incertyo/MCP
