危机物流AI管理平台

Project Valkyrie是一个基于Model Context Protocol (MCP)的AI驱动危机物流管理平台,通过整合实时威胁数据和内部资产数据,自动生成响应计划并支持人工审批。

  • by kanyingidickson
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kanyingidickson-dev/valkyrie-mcp-server

使用说明

🛰️ 瓦尔基里项目:人工智能驱动的危机物流

全球基础设施模型上下文协议(MCP)指挥中心


演示视频: Youtube.com/Project Valkyrie:人工智能驱动的危机物流(Notion工作区)

🌪️ 问题

在现代物流中, “延迟会致命。” 当自然灾害或地缘政治事件发生时,信息分散在新闻源、天气图和内部数据库中。运营商在切换标签页时浪费了宝贵的时间,试图拼凑出危机的全貌。

上下文切换疲劳导致数百万人延迟响应时间。


🛡️ 瓦尔基里解决方案

瓦尔基里使用 模型上下文协议(MCP) 把Notion变成一个活生生的指挥中心。它将实时外部“威胁数据”与内部“资产数据”连接起来,允许人工智能代理自主制定响应计划以供人类批准。

主要特点

特性 描述
自主威胁监控 定期扫描全球信息流,查找Notion中列出的资产附近的风险
即时事件分级 自动生成包含威胁分析和建议响应的Notion页面
关系完整性 使用Notion的关系属性将事件链接到受影响的资产
循环中的人类 人工智能提出解决方案;人类批准并执行

🛠️ 技术实现

建筑

高级核心MCP连接-MCP服务器作为智能中心

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Python Mock   │────▶│   MCP Server    │────▶│     Notion      │
│   Threat API    │     │   (TypeScript)  │     │   Workspace     │
└─────────────────┘     └─────────────────┘     └─────────────────┘
       ▲                        │                       │
       │                        ▼                       ▼
   Simulated            AI Agent (IDE)           Operations Dashboard
   Crisis Data          via MCP Client           & Logistics DB

部署堆栈

技术组件堆栈-MCP服务器和模拟API的Docker容器

技术栈

  • MCP服务器:使用TypeScript @modelcontextprotocol/sdk
  • API通知:v2022-06-28,带屏蔽儿童,内容丰富
  • 威胁模拟器:用于真实演示场景的Python FastAPI
  • 部署:Docker编写+GitHub操作CI/CD

MCP工具暴露

工具 说明
analyze_global_threats 检查特定资产是否存在威胁,如果检测到,则报告事件
scan_all_assets 扫描物流数据库中的所有资产以查找威胁
get_asset_details 检索特定资产的完整详细信息
list_all_assets 列出所有跟踪的资产及其风险等级
find_nearest_safe_asset 查找最近的稳定资产以重新路由

🚀 快速开始

先决条件

  • Node.js 20+
  • Python 3.11+
  • 具有集成访问权限的Notion帐户

1.克隆和安装

git clone https://github.com/kanyingidickson-dev/valkyrie-mcp-server.git
cd valkyrie-mcp-server
npm install

2.配置概念

  1. 首选 概念整合
  2. 创建一个名为“Valkyrie引擎”的新集成
  3. 复制集成令牌

3.创建概念数据库

操作仪表板数据库:

属性 类型
事件名称 标题
状态 状态(草稿、等待批准、进行中、已解决)
威胁级别 选择(严重(红色)、高级(黄色)、稳定(绿色))
受影响资产 关系→ 物流数据库
人工智能评估 富文本

全球资产与物流数据库:

属性 类型
资产名称 标题
坐标 文本
风险敏感性 数字(1-10)
状态 选择(活动、非活动、维护)
设施类型 选择(配送中心、传输节点、数据中心)
主要联系人 文本
主电话 电话
主电子邮件 电子邮件
设施经理 文本
上次审核 日期

4.通过集成共享数据库

在每个数据库上:单击 ... → 添加连接→ 选择“瓦尔基里发动机”

5.配置环境

cp .env.example .env
# Edit .env with your Notion token and database IDs

确保在您的 .env (示例见 .env.example):

  • NOTION_TOKEN, DASHBOARD_DB_ID, LOGISTICS_DB_ID
  • MOCK_API_URL (发展)
  • WEBHOOK_PORT, WEBHOOK_ACTION_TOKEN (webhook安全)
  • 可选通知: SLACK_WEBHOOK_URL, SLACK_SIGNING_SECRET, EMAIL_SMTP_*, ALERT_RECIPIENT

其他运行时脚本

该存储库包括用于本地测试和编排的辅助脚本:

  • 启动webhook服务器(处理Slack交互操作和链接按钮):
npm run start:webhook
  • 启动Notion观察程序(在操作仪表板上轮询状态更改):
npm run start:watcher
  • 启动调度程序(定期 scan_and_stage 运行):
npm run start:scheduler

只有在以下情况下才会发送通知 SLACK_WEBHOOK_URL 和/或配置SMTP环境变量。必须设置webhook操作令牌以启用安全操作链接。

6.种子资产

pip install -r scripts/requirements.txt
python scripts/seed_assets.py

7.运行模拟API

pip install -r mock-api/requirements.txt
python mock-api/valkyrie_mock_api.py

8.构建并运行MCP服务器

npm run build
npm start

9.配置MCP客户端

添加到您的MCP客户端设置(Windsurf、Cursor等):

{
  "mcpServers": {
    "valkyrie": {
      "command": "node",
      "args": ["/path/to/valkyrie-mcp-server/dist/index.js"],
      "env": {
        "NOTION_TOKEN": "secret_xxx",
        "DASHBOARD_DB_ID": "xxx",
        "LOGISTICS_DB_ID": "xxx"
      }
    }
  }
}

🎬 演示工作流程

数据流和人在环序列-从威胁检测到人工批准

  1. 检测:问AI: “瓦尔基里,检查我们新加坡中心附近的威胁”
  2. 自主行动:AI通过MCP获取威胁数据,识别地震事件
  3. 暂存:AI创建状态为“等待批准”的Notion页面
  4. 人为干预:操作员审核,将状态更改为“进行中”
  5. 执行:危机应对手册已触发

验证命令

# Run each command on its own line
npm test
npm run lint
npm run format
npm run type-check
npm run build
npm start

📊 架构图

图表 说明
逻辑概述 MCP服务器作为情报中心
部署概述 Docker容器和技术栈
演示工作流程 人在循环序列

🧪 测试

运行模拟API测试

# Health check
curl http://localhost:8000/health

# Check specific location
curl http://localhost:8000/status/Singapore%20Hub

# Force a threat (for demo)
curl http://localhost:8000/trigger/Singapore%20Hub

# Batch scan
curl http://localhost:8000/batch/scan

Docker部署

docker-compose up -d
docker-compose logs -f

📁 项目结构

valkyrie-mcp-server/
├── src/                              # MCP server source code
│   ├── index.ts                      # MCP server entry point
│   ├── config.ts                     # Configuration management
│   ├── lib/                          # Core libraries
│   │   ├── assets.ts                 # Asset data utilities
│   │   └── assets.d.ts               # Type definitions
│   ├── tools/                        # MCP tool implementations
│   │   ├── index.ts                  # Tool exports
│   │   ├── analyze-threats.ts        # analyze_global_threats tool
│   │   ├── scan-assets.ts            # scan_all_assets tool
│   │   ├── get-asset-details.ts      # get_asset_details tool
│   │   ├── list-assets.ts            # list_all_assets tool
│   │   └── find-nearest-safe.ts      # find_nearest_safe_asset tool
│   └── types/                        # Type definitions
├── mock-api/                         # Threat simulator API
│   ├── valkyrie_mock_api.py          # FastAPI threat simulator
│   ├── requirements.txt
│   └── Dockerfile
├── scripts/                          # Orchestration & utility scripts
│   ├── seed_assets.py                # Populate Notion logistics DB
│   ├── clean_duplicates.py           # Remove duplicate assets
│   ├── scan_and_stage.js             # Scan assets and stage incidents
│   ├── trigger_and_stage.js          # Trigger threats and stage incidents
│   ├── notion_watcher.js             # Poll Notion for status changes
│   ├── webhook_server.js             # Handle Slack actions
│   ├── scheduler.js                  # Periodic scan scheduler
│   ├── notify.js                     # Notification utilities
│   └── requirements.txt
├── tests/                            # Test files
├── docs/                             # Documentation assets
│   ├── logical-overview.png
│   ├── deployment-overview.png
│   └── demo-workflow.png
├── .github/                          # CI/CD workflows
│   └── workflows/
│       └── valkyrie-deploy.yml
├── .data/                            # Local data storage
├── .husky/                           # Git hooks
├── dist/                             # Compiled output
├── package.json                      # Dependencies & scripts
├── tsconfig.json                     # TypeScript config
├── jest.config.cjs                   # Jest test config
├── .eslintrc.json                    # ESLint config
├── .prettierrc                       # Prettier config
├── docker-compose.yml                # Docker orchestration
├── Dockerfile                        # MCP server container
├── .env.example                      # Environment template
├── MCP_INSTRUCTIONS.md               # MCP usage guide
├── LICENSE
└── README.md

MIT许可证: 请参阅许可证