Servidor MCP

Reka

ai.reka/mcp
Medios y contenido Búsqueda e investigación Público y accesible MCP 2025-11-25

Qué hace este MCP

Analyzes videos to support searching, question answering, and insight extraction.

ask_video
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.
Solo lectura
Esquema de entrada
{'type': 'object', '$defs': {'VideoContext': {'type': 'object', 'title': 'VideoContext', 'properties': {'end': {'type': 'number', 'title': 'End'}, 'start': {'type': 'number', 'title': 'Start'}, 'video_id': {'type': 'string', 'title': 'Video Id'}}}}, 'title': 'ask_videoArguments', 'required': ['question'], 'properties': {'end': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'End', 'default': None}, 'start': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Start', 'default': None}, 'videos': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/VideoContext'}}, {'type': 'null'}], 'title': 'Videos', 'default': None}, 'question': {'type': 'string', 'title': 'Question'}, 'video_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Video Id', 'default': None}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'conversation_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Conversation Id', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'ask_videoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
create_group
Create a new video group. Groups organize videos into collections. Returns the new group's ID and name.
Esquema de entrada
{'type': 'object', 'title': 'create_groupArguments', 'required': ['name'], 'properties': {'name': {'type': 'string', 'title': 'Name'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'create_groupOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
delete_group
Delete a video group. Videos in the group are not deleted — they are simply removed from the group.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'delete_groupArguments', 'required': ['group_id'], 'properties': {'group_id': {'type': 'string', 'title': 'Group Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'delete_groupOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
delete_video
Permanently delete a video and all its indexed data (transcript, captions, embeddings, etc.). This cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'delete_videoArguments', 'required': ['video_id'], 'properties': {'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'delete_videoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_captions
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).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'get_captionsArguments', 'required': ['video_id'], 'properties': {'end': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'End', 'default': None}, 'start': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Start', 'default': None}, 'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 50}}}
Esquema de salida
{'type': 'object', 'title': 'get_captionsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_feature_catalog
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'get_feature_catalogArguments', 'properties': {'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'get_feature_catalogOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_scenes
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).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'get_scenesArguments', 'required': ['video_id'], 'properties': {'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 200}}}
Esquema de salida
{'type': 'object', 'title': 'get_scenesOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_transcript
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'get_transcriptArguments', 'required': ['video_id'], 'properties': {'end': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'End', 'default': None}, 'start': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Start', 'default': None}, 'format': {'enum': ['text', 'segments', 'words'], 'type': 'string', 'title': 'Format', 'default': 'text'}, 'video_id': {'type': 'string', 'title': 'Video Id'}, 'max_chars': {'type': 'integer', 'title': 'Max Chars', 'default': 10000}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 100}}}
Esquema de salida
{'type': 'object', 'title': 'get_transcriptOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_video
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'get_videoArguments', 'required': ['video_id'], 'properties': {'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'get_videoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
index_video
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.
Idempotente
Esquema de entrada
{'type': 'object', 'title': 'index_video_hostedArguments', 'required': ['video_id'], 'properties': {'pipeline': {'enum': ['search_only', 'qa_only', 'full'], 'type': 'string', 'title': 'Pipeline', 'default': 'search_only'}, 'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'scene_detection': {'type': 'boolean', 'title': 'Scene Detection', 'default': True}}}
Esquema de salida
{'type': 'object', 'title': 'index_video_hostedOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
list_groups
List all video groups. Use list_videos with a group_id to see videos in a specific group.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'list_groupsArguments', 'properties': {'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'list_groupsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
list_videos
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'list_videosArguments', 'properties': {'group_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Id', 'default': None}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'list_videosOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
search_videos
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'search_videosArguments', 'required': ['query'], 'properties': {'query': {'type': 'string', 'title': 'Query'}, 'group_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Id', 'default': None}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'video_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Video Ids', 'default': None}, 'max_results': {'type': 'integer', 'title': 'Max Results', 'default': 10}}}
Esquema de salida
{'type': 'object', 'title': 'search_videosOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
segment_video
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'segment_videoArguments', 'required': ['video_id', 'prompts', 'start'], 'properties': {'end': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'End', 'default': None}, 'start': {'type': 'number', 'title': 'Start'}, 'prompts': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Prompts'}, 'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'threshold': {'type': 'number', 'title': 'Threshold', 'default': 0.5}}}
Esquema de salida
{'type': 'object', 'title': 'segment_videoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
summarize_video
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.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'title': 'summarize_videoArguments', 'required': ['video_id'], 'properties': {'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'summarize_videoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
update_video
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.
Idempotente
Esquema de entrada
{'type': 'object', 'title': 'update_videoArguments', 'required': ['video_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'group_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Id', 'default': None}, 'video_id': {'type': 'string', 'title': 'Video Id'}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'move_group': {'type': 'boolean', 'title': 'Move Group', 'default': False}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'update_videoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
upload_video
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.
Esquema de entrada
{'type': 'object', 'title': 'upload_videoArguments', 'required': ['video_url'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'group_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Id', 'default': None}, 'rationale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Rationale', 'default': None}, 'video_url': {'type': 'string', 'title': 'Video Url'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'upload_videoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
Añadido
summarize_video
17 de September de 2026 a las 07:57
Añadido
get_feature_catalog
17 de September de 2026 a las 07:57
Añadido
get_scenes
17 de September de 2026 a las 07:57
Añadido
get_captions
17 de September de 2026 a las 07:57
Añadido
get_transcript
17 de September de 2026 a las 07:57
Añadido
segment_video
17 de September de 2026 a las 07:57
Añadido
ask_video
17 de September de 2026 a las 07:57
Añadido
search_videos
17 de September de 2026 a las 07:57
Añadido
index_video
17 de September de 2026 a las 07:57
Añadido
delete_group
17 de September de 2026 a las 07:57
Añadido
list_groups
17 de September de 2026 a las 07:57
Añadido
create_group
17 de September de 2026 a las 07:57
Añadido
delete_video
17 de September de 2026 a las 07:57
Añadido
update_video
17 de September de 2026 a las 07:57
Añadido
get_video
17 de September de 2026 a las 07:57
Añadido
list_videos
17 de September de 2026 a las 07:57
Añadido
upload_video
17 de September de 2026 a las 07:57