OpsPulse MCP-作战智能仪表板
OpsPulse MCP是一个轻量级的MVP操作智能仪表板,可帮助团队以结构化的方式跟踪和分析生产问题。它包括一个基于FastAPI的MCP服务器,带有WebSocket端点,可以在其中触发工具来创建和存储事件/票证、加载操作数据集统计数据、生成摘要和提取基于配置文件的主题(默认与下文)。该系统支持YAML驱动的评分配置文件,根据数据中的关键字模式动态计算健康指标和类别细分(如支付失败)。为了保持其快速性和可扩展性,它包括具有缓存统计可见性的缓存,以及用于验证服务就绪性的健康探测器。除此之外,它还可以使用LLM客户端生成执行摘要报告,并使用稳定的图像到PDF管道将其导出为可下载的PDF。
此仓库包含后端和前端实现。
______________________________________________________________________
我们建造了什么
后端(MCP服务器-FastAPI)
- 带MCP WebSocket端点的FastAPI后端:
WS /mcp - 使用YAML配置的配置文件感知评分系统(
default,infra) - 持久存储:
- 票 - 事件\ 以JSON格式存储(简单+可移植)
- 快照分解端点以生成仪表板指标
- 动态细分栏(示例: 付款失败)基于票/事件中的关键字计数
- 缓存统计端点(命中/未命中+缓存键可见性)
- 健康探针(基本服务准备状态信息)
- 使用生成LLM执行摘要 Gemini客户端
- 具有安全PDF生成功能的报告下载端点:
- 呈现文本→ 使用枕头的图像 - 导出图像→ PDF(避免unicode/font崩溃)
______________________________________________________________________
前端(仪表板UI)
- 现代操作仪表板UI
- 显示器:
- 健康评分表 - 利用率/分解柱状图 - 票务+事件指标 - 要解决的问题 - 执行报告生成器+下载
- 使用对后端的API调用来获取快照+报表数据
______________________________________________________________________
技术栈
后端
- python
- 快速API
- WebSocket(MCP工具式交互)
- YAML配置
- JSON持久性
- Gemini LLM客户
- 枕头(图片导出为PDF格式)
前端
- Next.js/React
- TailwindCSS
- ShadCN UI组件
______________________________________________________________________
项目结构
opspulse-mcp/
mcp-server/
main.py
llm_client_gemini.py
cache.py
config/
default.yaml
infra.yaml
data/
tickets.json
incidents.json
opspulse-frontend/
src/
package.json
next.config.*______________________________________________________________________
安装指南
1) 后端设置(mcp服务器)
步骤1:进入后端文件夹
cd mcp-server步骤2:创建并激活Python venv
python -m venv .venv
source .venv/bin/activate步骤3:安装依赖项
pip install -r requirements.txt如果 requirements.txt 不可用:
pip install fastapi uvicorn pyyaml pillow python-dotenv步骤4:运行后端
uvicorn main:app --host 0.0.0.0 --port 8000 --reload后端运行时间:
http://localhost:8000______________________________________________________________________
手动MCP WebSocket测试(CLI)
后端运行后,您可以直接从终端测试MCP WebSocket端点。
WebSocket端点
ws://127.0.0.1:8000/mcp步骤1:安装 wscat
如果你还没有:
npm install -g wscat步骤2:连接到MCP插座
打开 2号航站楼 并运行:
npx wscat -c ws://127.0.0.1:8000/mcp成功连接后,服务器返回就绪/连接消息,确认MCP端点处于活动状态。
步骤3:MCP工具命令(复制粘贴就绪)
工具1:Ping
{"tool":"ping","args":{}}工具2:加载数据集计数
{"tool":"load_ops_data","args":{}}工具3:基本总结
{"tool":"get_basic_summary","args":{}}工具4:提取主题(配置文件感知)
默认配置文件:
{"tool":"extract_themes","args":{"profile":"default"}}基础设施概况:
{"tool":"extract_themes","args":{"profile":"infra"}}______________________________________________________________________
2) 前端设置(opspulse前端)
第一步:进入前端文件夹
cd opspulse-frontend步骤2:安装依赖项
npm install步骤3:配置环境变量
创建:
opspulse-frontend/.env.local例子:
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000步骤4:运行前端
npm run dev前端运行于:
http://localhost:3000______________________________________________________________________
如何使用
创建工单/事件
您可以从UI创建新项目。\ 它们保存在JSON文件中:
mcp-server/data/tickets.jsonmcp-server/data/incidents.json
这些基于关键字的条目动态地影响图表类别,如 付款失败.
______________________________________________________________________
生成报告
从仪表板:
- 点击 生成报告
- 后端调用LLM客户端
- 报告已显示+可以下载为PDF格式
______________________________________________________________________
备注
- 可以通过在内部创建新的YAML文件来添加新的配置文件
mcp-server/config/ - 该系统旨在保持简单和演示友好,同时仍然具有可扩展性
______________________________________________________________________
许可证
麻省理工学院
