🛰️ 瓦尔基里项目:人工智能驱动的危机物流
全球基础设施模型上下文协议(MCP)指挥中心
______________________________________________________________________
演示视频: Youtube.com/Project Valkyrie:人工智能驱动的危机物流(Notion工作区)
🌪️ 问题
在现代物流中, “延迟会致命。” 当自然灾害或地缘政治事件发生时,信息分散在新闻源、天气图和内部数据库中。运营商在切换标签页时浪费了宝贵的时间,试图拼凑出危机的全貌。
上下文切换疲劳导致数百万人延迟响应时间。
______________________________________________________________________
🛡️ 瓦尔基里解决方案
瓦尔基里使用 模型上下文协议(MCP) 把Notion变成一个活生生的指挥中心。它将实时外部“威胁数据”与内部“资产数据”连接起来,允许人工智能代理自主制定响应计划以供人类批准。
主要特点
| 特性 | 描述 |
|---|---|
| 自主威胁监控 | 定期扫描全球信息流,查找Notion中列出的资产附近的风险 |
| 即时事件分级 | 自动生成包含威胁分析和建议响应的Notion页面 |
| 关系完整性 | 使用Notion的关系属性将事件链接到受影响的资产 |
| 循环中的人类 | 人工智能提出解决方案;人类批准并执行 |
______________________________________________________________________
🛠️ 技术实现
建筑
Logical Overview _高级核心MCP连接-MCP服务器作为智能中心_
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Python Mock │────▶│ MCP Server │────▶│ Notion │
│ Threat API │ │ (TypeScript) │ │ Workspace │
└─────────────────┘ └─────────────────┘ └─────────────────┘
▲ │ │
│ ▼ ▼
Simulated AI Agent (IDE) Operations Dashboard
Crisis Data via MCP Client & Logistics DB部署堆栈
Deployment Overview _技术组件堆栈-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 install2.配置概念
- 首选 概念整合
- 创建一个名为“Valkyrie引擎”的新集成
- 复制集成令牌
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_IDMOCK_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.py7.运行模拟API
pip install -r mock-api/requirements.txt
python mock-api/valkyrie_mock_api.py8.构建并运行MCP服务器
npm run build
npm start9.配置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"
}
}
}
}______________________________________________________________________
🎬 演示工作流程
Demo Workflow _数据流和人在环序列-从威胁检测到人工批准_
- 检测:问AI: _“瓦尔基里,检查我们新加坡中心附近的威胁”_
- 自主行动:AI通过MCP获取威胁数据,识别地震事件
- 暂存:AI创建状态为“等待批准”的Notion页面
- 人为干预:操作员审核,将状态更改为“进行中”
- 执行:危机应对手册已触发
______________________________________________________________________
验证命令
# Run each command on its own line
npm test
npm run lint
npm run format
npm run type-check
npm run build
npm start______________________________________________________________________
📊 架构图
______________________________________________________________________
🧪 测试
运行模拟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/scanDocker部署
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许可证: 请参阅许可证
