---
document_type: "architecture_design"
service: "N8N"
title: "Momentry Video RAG MCP Workflow"
date: "2026-03-22"
version: "V1.0"
status: "active"
owner: "Warren"
created_by: "OpenCode"
tags:
  - "n8n"
  - "workflow"
  - "rag"
  - "mcp"
  - "video-search"
ai_query_hints:
  - "N8N Video RAG MCP 工作流程是什麼？"
  - "如何配置 Momentry Video RAG Webhook？"
  - "Video RAG MCP 的搜尋流程如何運作？"
---

# Momentry Video RAG MCP Workflow

## 工作流程資訊

- **名稱**: Momentry Video RAG MCP
- **ID**: WlVvpX2OeKK83QOK
- **Webhook Path**: `video-rag-mcp`
- **狀態**: ✅ Active (已啟動)
- **建立時間**: 2026-03-22

## 工作流程架構

```
┌─────────────────┐     ┌──────────────────────┐     ┌───────────────────┐     ┌─────────────────┐
│  Webhook        │────▶│  Search Momentry     │────▶│  Process RAG      │────▶│  Respond to     │
│  Trigger        │     │  Core                │     │  Results          │     │  Webhook        │
└─────────────────┘     └──────────────────────┘     └───────────────────┘     └─────────────────┘
        │
        │ POST http://localhost:5678/webhook/video-rag-mcp
        │
        ▼
{
  "query": "搜尋關鍵字",
  "limit": 5,
  "uuid": "可選的影片UUID"
}
```

## Node 說明

### 1. Webhook Trigger
- **類型**: Webhook
- **Method**: POST
- **Path**: `video-rag-mcp`
- **Response Mode**: Last Node (等待最後一個節點完成後回應)

### 2. Search Momentry Core
- **類型**: HTTP Request
- **URL**: `http://localhost:3002/api/v1/n8n/search`
- **Method**: POST
- **Body**:
  ```json
  {
    "query": "搜尋關鍵字",
    "limit": 5,
    "uuid": "可選的影片UUID"
  }
  ```
- **Timeout**: 30秒

### 3. Process RAG Results
- **類型**: Code (JavaScript)
- **功能**:
  - 處理 Momentry Core 搜尋結果
  - 格式化 hits 為結構化資料
  - 建立 RAG context（用於 LLM 問答）
  - 計算相關度百分比

**輸出格式**:
```json
{
  "success": true,
  "query": "搜尋關鍵字",
  "totalFound": 5,
  "context": "[1] 文本內容... (Video: 影片標題, Time: 10s-20s)\n\n[2] ...",
  "results": [
    {
      "index": 1,
      "id": "chunk_id",
      "title": "影片標題",
      "text": "文本內容",
      "startTime": 10,
      "endTime": 20,
      "relevance": "85%",
      "videoUuid": "uuid",
      "mediaUrl": "影片URL",
      "deepLink": "影片URL#t=10,20"
    }
  ]
}
```

### 4. Respond to Webhook
- **類型**: Respond to Webhook
- **Response**: JSON 格式結果
- **Status Code**: 200

## 使用方式

### 直接呼叫 Webhook

```bash
curl -X POST http://localhost:5678/webhook/video-rag-mcp \
  -H "Content-Type: application/json" \
  -d '{
    "query": "charade",
    "limit": 5
  }'
```

### 指定特定影片搜尋

```bash
curl -X POST http://localhost:5678/webhook/video-rag-mcp \
  -H "Content-Type: application/json" \
  -d '{
    "query": "audrey hepburn",
    "limit": 3,
    "uuid": "a1b10138a6bbb0cd"
  }'
```

### 在 n8n 工作流程中使用

可以將此 Webhook 作為子工作流程觸發器，或使用 HTTP Request Node 呼叫：

```json
{
  "name": "Call Video RAG",
  "type": "n8n-nodes-base.httpRequest",
  "parameters": {
    "url": "http://localhost:5678/webhook/video-rag-mcp",
    "method": "POST",
    "body": {
      "query": "={{ $json.searchTerm }}",
      "limit": 5
    }
  }
}
```

## RAG Context 用途

工作流程產生的 `context` 欄位可直接用於 LLM 提示：

```javascript
// Example: 使用 context 進行問答
const prompt = `
基於以下影片片段資訊回答問題：

${context}

問題：${userQuestion}

請根據上述內容提供準確的答案。
`;
```

## 相關文件

- [Momentry Core API 文件](./API_ACCESS.md)
- [n8n MCP 測試報告](./maintenance_records/changes/CHANGE_N8N_MCP_INTEGRATION_TEST_2026_03_23.md)
- [N8N_DEMO_WORKFLOW.md](./N8N_DEMO_WORKFLOW.md) - 完整工作流程設計

## MCP 建立指令

此工作流程是透過 MCP 工具建立的：

```bash
# 使用 MCP 建立工作流程
node create_workflow.js | mcp-n8n

# 使用 MCP 啟動工作流程
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"n8n_activate_workflow","arguments":{"workflowId":"WlVvpX2OeKK83QOK"}}}' | mcp-n8n
```

## 工作流程檔案

- 原始檔案: `docs/n8n_workflow_video_rag_mcp.json`
