Reka

Understand your videos with Reka AI — search, ask questions, and extract insights.

我該用這個嗎

品質與安全性

A
說明品質
95%
結構描述完整度
66%
命名品質
96%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,836Token(工具定義)
~1.5 KB典型回應大小
顯著的注意力影響(128k 上下文的 3.00%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "mcp": {
      "command": "uvx",
      "args": [
        "reka-mcp"
      ]
    }
  }
}

可執行的套件

pypireka-mcp0.1.10stdio

遠端端點

https://mcp.reka.ai/mcpstreamable-http

它能做什麼

工具清單

工具(17)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟡upload_video(video_url, name, description, group_id, rationale)

Upload a video from a URL. Returns a video_id. Local file paths are not accepted; upload files outside the MCP server and pass a reachable video_url. The upload runs asynchronously — poll get_video until status is 'uploaded', then call index_video to enable search and analysis.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_url": {
      "title": "Video Url",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "group_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Group Id"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_url"
  ],
  "title": "upload_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "upload_videoOutput"
}
🟢list_videos(group_id, rationale)

List all videos in your account, or filter to a specific group by passing group_id. Shows upload status and which features have been indexed for each video. Each video's 'url' is a short-lived HTTPS presigned URL (expires within hours) — fetch immediately and do not store; call list_videos or get_video again for a fresh URL when needed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "group_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Group Id"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "title": "list_videosArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_videosOutput"
}
🟢get_video(video_id, rationale)

Get detailed information about a video including upload status, metadata (duration, resolution, fps), and per-feature indexing status. Use this to check if upload or indexing is complete. The 'url' field is a short-lived HTTPS presigned URL (expires within hours) — fetch immediately and do not store; call get_video again for a fresh URL when needed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "get_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_videoOutput"
}
🔴update_video(video_id, name, title, description, group_id, ...)

Update a video's display name, title, description, or move it to a different group. At least one field must be provided. To remove a video from its group, pass group_id as null.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "group_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Group Id"
    },
    "move_group": {
      "default": false,
      "title": "Move Group",
      "type": "boolean"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "update_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "update_videoOutput"
}
🔴delete_video(video_id, rationale)

Permanently delete a video and all its indexed data (transcript, captions, embeddings, etc.). This cannot be undone.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "delete_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "delete_videoOutput"
}
🟡create_group(name, rationale)

Create a new video group. Groups organize videos into collections. Returns the new group's ID and name.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "title": "Name",
      "type": "string"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "name"
  ],
  "title": "create_groupArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "create_groupOutput"
}
🟢list_groups(rationale)

List all video groups. Use list_videos with a group_id to see videos in a specific group.

輸入結構描述

{
  "type": "object",
  "properties": {
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "title": "list_groupsArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_groupsOutput"
}
🔴delete_group(group_id, rationale)

Delete a video group. Videos in the group are not deleted — they are simply removed from the group.

輸入結構描述

{
  "type": "object",
  "properties": {
    "group_id": {
      "title": "Group Id",
      "type": "string"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "group_id"
  ],
  "title": "delete_groupArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "delete_groupOutput"
}
🟢index_video(video_id, pipeline, scene_detection, rationale)

Index a video for search, QA, or full analysis. Processes the video through a pipeline of AI features. Typically takes 3-7 minutes; longer for long videos or the 'full' pipeline. Times out after 10 minutes by default. Pipelines: - search_only: transcription + captions + embeddings (enables search_videos) - qa_only: transcription + captions (enables ask_video) - full: transcription + captions + embeddings (enables all tools) Scene detection is enabled by default and produces scene boundaries for get_scenes. Pass scene_detection=False to skip it. Prerequisites: if using video_id, the video must be in 'uploaded' status. Use get_video to check status before calling this tool.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "pipeline": {
      "default": "search_only",
      "enum": [
        "search_only",
        "qa_only",
        "full"
      ],
      "title": "Pipeline",
      "type": "string"
    },
    "scene_detection": {
      "default": true,
      "title": "Scene Detection",
      "type": "boolean"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "index_video_hostedArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "index_video_hostedOutput"
}
🟢search_videos(query, video_ids, group_id, max_results, rationale)

Find WHEN and WHERE something happens across your videos. Returns timestamped results ranked by relevance — use these timestamps as start/end in ask_video for focused analysis. This is the recommended first step for most questions. Instead of asking ask_video about the entire video, search first to narrow down the relevant moments. Each result's 'video_url' is a short-lived HTTPS presigned URL (expires within hours) — fetch immediately and do not store; call search_videos or get_video again for a fresh URL when needed. Requires search_only or full pipeline.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "video_ids": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Video Ids"
    },
    "group_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Group Id"
    },
    "max_results": {
      "default": 10,
      "title": "Max Results",
      "type": "integer"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_videosArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "search_videosOutput"
}
🟢ask_video(question, video_id, start, end, videos, ...)

Ask a question about one or more videos with visual analysis. Most effective on focused time ranges — use start/end to specify the segment to analyze. BEFORE calling this tool, read the reka://docs/guide resource for recommended workflows. In most cases, you should first: - search_videos to find WHEN something happens, then pass those timestamps here as start/end - segment_video to detect and locate specific objects - get_transcript to read what was said For single-video questions, pass video_id with start/end. For cross-video questions, pass videos — a list of video references with start/end each. For follow-up questions, pass conversation_id from the previous response. You can add start/end to drill into a specific moment while keeping the conversation context. Requires qa_only or full pipeline.

輸入結構描述

{
  "type": "object",
  "properties": {
    "question": {
      "title": "Question",
      "type": "string"
    },
    "video_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Video Id"
    },
    "start": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End"
    },
    "videos": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/VideoContext"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Videos"
    },
    "conversation_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Conversation Id"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "question"
  ],
  "$defs": {
    "VideoContext": {
      "properties": {
        "video_id": {
          "title": "Video Id",
          "type": "string"
        },
        "start": {
          "title": "Start",
          "type": "number"
        },
        "end": {
          "title": "End",
          "type": "number"
        }
      },
      "title": "VideoContext",
      "type": "object"
    }
  },
  "title": "ask_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "ask_videoOutput"
}
🟢segment_video(video_id, prompts, start, end, threshold, ...)

Detect objects in a video segment using text prompts. Describe what to look for and get per-frame detections with bounding boxes and confidence scores. Prompt tips: - Use broad, visual categories: 'animal', 'vehicle', 'person', 'text on screen' - Specific labels ('rabbit', 'Toyota') are less reliable — the detector matches visual patterns, not semantic concepts - Best for confirming whether a category of object appears in a time window, not for precise identification How to pick a time range: - Use search_videos to find WHEN something appears, then pass those timestamps here - Use get_scenes to scan systematically — call segment_video once per scene (scenes typically fit in the 15s window) - Or pass any range you already know Maximum range is 15 seconds per call; for longer spans, make multiple calls with consecutive windows. Does NOT require any feature indexing — works on any uploaded video.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "prompts": {
      "items": {
        "type": "string"
      },
      "title": "Prompts",
      "type": "array"
    },
    "start": {
      "title": "Start",
      "type": "number"
    },
    "end": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End"
    },
    "threshold": {
      "default": 0.5,
      "title": "Threshold",
      "type": "number"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id",
    "prompts",
    "start"
  ],
  "title": "segment_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "segment_videoOutput"
}
🟢get_transcript(video_id, format, start, end, max_results, ...)

Get the spoken words in a video. Use this instead of ask_video when you need to read what was said — it returns the actual text, not a summary. Use start/end to narrow results for long videos. Requires the transcript feature to be indexed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "format": {
      "default": "text",
      "enum": [
        "text",
        "segments",
        "words"
      ],
      "title": "Format",
      "type": "string"
    },
    "start": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End"
    },
    "max_results": {
      "default": 100,
      "title": "Max Results",
      "type": "integer"
    },
    "max_chars": {
      "default": 10000,
      "title": "Max Chars",
      "type": "integer"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "get_transcriptArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_transcriptOutput"
}
🟢get_captions(video_id, start, end, max_results, rationale)

Get AI-generated visual descriptions of what happens on screen. Use this to understand the visual content without watching — each caption describes a short segment with timestamps. Use start/end to narrow results. Requires the captions feature (qa_only or full pipeline).

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "start": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End"
    },
    "max_results": {
      "default": 50,
      "title": "Max Results",
      "type": "integer"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "get_captionsArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_captionsOutput"
}
🟢get_scenes(video_id, max_results, rationale)

Get detected scene boundaries with start/end timestamps. Use this to understand the video's structure, then pass scene timestamps as start/end to: - ask_video for per-scene contextual analysis - segment_video to detect specific objects per scene (scenes typically fit in segment_video's 15s max range) Requires transcript indexed with scene detection (on by default; skipped only if index_video was called with scene_detection=False).

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "max_results": {
      "default": 200,
      "title": "Max Results",
      "type": "integer"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "get_scenesArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_scenesOutput"
}
🟢get_feature_catalog(rationale)

List available video analysis features with their dependencies and descriptions. Use this to understand what features exist and what pipelines to use with index_video.

輸入結構描述

{
  "type": "object",
  "properties": {
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "title": "get_feature_catalogArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_feature_catalogOutput"
}
🟢summarize_video(video_id, rationale)

Start here. Get a compact overview of a video: metadata, which features are indexed, a transcript preview, and scene count. Use this to decide which tools to call next — then use segment_video to detect specific objects in time ranges of interest.

輸入結構描述

{
  "type": "object",
  "properties": {
    "video_id": {
      "title": "Video Id",
      "type": "string"
    },
    "rationale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Rationale"
    }
  },
  "required": [
    "video_id"
  ],
  "title": "summarize_videoArguments"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "summarize_videoOutput"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本17 個工具
已驗證未記錄版本17 個工具
已驗證未記錄版本17 個工具