{"name":"ai.reka/mcp","slug":"reka-mcp","title":"Reka","description":"Understand your videos with Reka AI — search, ask questions, and extract insights.","url":"https://mcp.market/server/reka-mcp","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"scraping","tags":["scraping","search"],"presence":{"score":14,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-05-14T04:51:13.000Z","license":"NOASSERTION"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T11:35:48.402Z","last_ok_at":"2026-11-04T11:35:48.402Z","latency_ms":164},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":null,"version":"0.1.10","remotes":[{"type":"streamable-http","url":"https://mcp.reka.ai/mcp","headers":[{"description":"Your Reka API key","isRequired":true,"isSecret":true,"name":"X-Reka-API-Key"}]}],"packages":[{"registryType":"pypi","identifier":"reka-mcp","version":"0.1.10","transport":{"type":"stdio"}}],"tools":[{"name":"ask_video","description":"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.\n\nBEFORE calling this tool, read the reka://docs/guide resource for recommended workflows. In most cases, you should first:\n- search_videos to find WHEN something happens, then pass those timestamps here as start/end\n- segment_video to detect and locate specific objects\n- get_transcript to read what was said\n\nFor single-video questions, pass video_id with start/end. For cross-video questions, pass videos — a list of video references with start/end each.\n\nFor 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.\n\nRequires qa_only or full pipeline.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"create_group","description":"Create a new video group. Groups organize videos into collections. Returns the new group's ID and name.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"title":"Name","type":"string"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Rationale"}},"required":["name"],"title":"create_groupArguments"}},{"name":"delete_group","description":"Delete a video group. Videos in the group are not deleted — they are simply removed from the group.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"delete_video","description":"Permanently delete a video and all its indexed data (transcript, captions, embeddings, etc.). This cannot be undone.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"get_captions","description":"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.\n\nUse start/end to narrow results.\n\nRequires the captions feature (qa_only or full pipeline).","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"get_feature_catalog","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Rationale"}},"title":"get_feature_catalogArguments"}},{"name":"get_scenes","description":"Get detected scene boundaries with start/end timestamps. Use this to understand the video's structure, then pass scene timestamps as start/end to:\n- ask_video for per-scene contextual analysis\n- segment_video to detect specific objects per scene (scenes typically fit in segment_video's 15s max range)\n\nRequires transcript indexed with scene detection (on by default; skipped only if index_video was called with scene_detection=False).","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"get_transcript","description":"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.\n\nUse start/end to narrow results for long videos.\n\nRequires the transcript feature to be indexed.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"get_video","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"index_video","description":"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.\n\nPipelines:\n- search_only: transcription + captions + embeddings (enables search_videos)\n- qa_only: transcription + captions (enables ask_video)\n- full: transcription + captions + embeddings (enables all tools)\n\nScene detection is enabled by default and produces scene boundaries for get_scenes. Pass scene_detection=False to skip it.\n\nPrerequisites: if using video_id, the video must be in 'uploaded' status. Use get_video to check status before calling this tool.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"list_groups","description":"List all video groups. Use list_videos with a group_id to see videos in a specific group.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Rationale"}},"title":"list_groupsArguments"}},{"name":"list_videos","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"search_videos","description":"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.\n\nThis 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.\n\nEach 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.\n\nRequires search_only or full pipeline.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"segment_video","description":"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.\n\nPrompt tips:\n- Use broad, visual categories: 'animal', 'vehicle', 'person', 'text on screen'\n- Specific labels ('rabbit', 'Toyota') are less reliable — the detector matches visual patterns, not semantic concepts\n- Best for confirming whether a category of object appears in a time window, not for precise identification\n\nHow to pick a time range:\n- Use search_videos to find WHEN something appears, then pass those timestamps here\n- Use get_scenes to scan systematically — call segment_video once per scene (scenes typically fit in the 15s window)\n- Or pass any range you already know\n\nMaximum range is 15 seconds per call; for longer spans, make multiple calls with consecutive windows.\n\nDoes NOT require any feature indexing — works on any uploaded video.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"summarize_video","description":"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.","write_action":false,"price_micros":0,"input_schema":{"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"}},{"name":"update_video","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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"}},{"name":"upload_video","description":"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.","write_action":true,"price_micros":0,"input_schema":{"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"}}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-27T21:29:38.824Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:29:38.807Z","components":{"code":{"score":25,"max":25,"notes":["20 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1150ms"]},"poisoning":{"score":15,"max":15,"notes":["17 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":8,"max":15,"notes":["last push 137 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.reka.ai/mcp","reachable":true,"authRequired":false,"latencyMs":1150,"serverInfo":{"name":"reka-vision","version":"0.1.10"}}],"packages":[{"registryType":"pypi","identifier":"reka-mcp","version":"0.1.10","found":true,"license":"Apache-2.0","dependencyCount":2,"publishedAt":"2026-05-14T04:54:49.526770Z","repositoryUrl":"https://github.com/reka-ai/reka-mcp"}],"repo":{"found":true,"owner":"reka-ai","repo":"reka-mcp","archived":false,"pushedAt":"2026-05-14T04:51:13Z","stars":1,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/109515370?v=4","ownerCreatedAt":"2022-07-18T09:18:47Z","license":"NOASSERTION"},"icon":{"url":"https://framerusercontent.com/images/XekAjHcWv2prUE9pJiSj61CD54.jpg","source":"site"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-05-14T04:51:13.000Z","score":14}}}},"grade_history":[],"reviews":[]}