{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://mcp.reka.ai/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/reka-mcp.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/reka-mcp.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/reka-mcp.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 4198,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 22
          },
          "findings": [
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "ask_video",
              "message": "none of its 7 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "create_group",
              "message": "none of its 2 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "delete_group",
              "message": "none of its 2 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "delete_video",
              "message": "none of its 2 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_captions",
              "message": "none of its 5 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_feature_catalog",
              "message": "its one parameter, rationale, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_scenes",
              "message": "none of its 3 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_transcript",
              "message": "none of its 7 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_video",
              "message": "none of its 2 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "index_video",
              "message": "none of its 4 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "list_groups",
              "message": "its one parameter, rationale, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "list_videos",
              "message": "none of its 2 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "search_videos",
              "message": "none of its 5 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "segment_video",
              "message": "none of its 6 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "summarize_video",
              "message": "none of its 2 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "update_video",
              "message": "none of its 7 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "upload_video",
              "message": "none of its 5 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC15",
              "severity": "warn",
              "tool": "ask_video",
              "message": "inputSchema uses $ref/$defs",
              "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "create_group",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "index_video",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "update_video",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC16",
              "severity": "warn",
              "tool": "upload_video",
              "message": "no readOnlyHint or destructiveHint",
              "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
            },
            {
              "rule": "TC29",
              "severity": "note",
              "message": "about 678 tokens (16% of the definitions) are titles that repeat property or function names",
              "fix": "Strip \"title\" keys that only restate a name before listing tools."
            }
          ]
        },
        "checkedAt": "2026-10-01T22:01:42Z",
        "count": 17,
        "schemaTokens": 4198,
        "status": "ok",
        "tools": [
          {
            "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.",
            "inputSchema": {
              "properties": {
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Description"
                },
                "group_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Group Id"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Name"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "video_url": {
                  "title": "Video Url",
                  "type": "string"
                }
              },
              "required": [
                "video_url"
              ],
              "title": "upload_videoArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "upload_videoOutput",
              "type": "object"
            }
          },
          {
            "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.",
            "inputSchema": {
              "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"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "list_videosOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "get_videoArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_videoOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "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"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Name"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Title"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "update_videoArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "update_videoOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true
            }
          },
          {
            "name": "delete_video",
            "description": "Permanently delete a video and all its indexed data (transcript, captions, embeddings, etc.). This cannot be undone.",
            "inputSchema": {
              "properties": {
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "delete_videoArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "delete_videoOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "idempotentHint": true
            }
          },
          {
            "name": "create_group",
            "description": "Create a new video group. Groups organize videos into collections. Returns the new group's ID and name.",
            "inputSchema": {
              "properties": {
                "name": {
                  "title": "Name",
                  "type": "string"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                }
              },
              "required": [
                "name"
              ],
              "title": "create_groupArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "create_groupOutput",
              "type": "object"
            }
          },
          {
            "name": "list_groups",
            "description": "List all video groups. Use list_videos with a group_id to see videos in a specific group.",
            "inputSchema": {
              "properties": {
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                }
              },
              "title": "list_groupsArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "list_groupsOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "name": "delete_group",
            "description": "Delete a video group. Videos in the group are not deleted — they are simply removed from the group.",
            "inputSchema": {
              "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"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "delete_groupOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "idempotentHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "pipeline": {
                  "default": "search_only",
                  "enum": [
                    "search_only",
                    "qa_only",
                    "full"
                  ],
                  "title": "Pipeline",
                  "type": "string"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "scene_detection": {
                  "default": true,
                  "title": "Scene Detection",
                  "type": "boolean"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "index_video_hostedArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "index_video_hostedOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "group_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Group Id"
                },
                "max_results": {
                  "default": 10,
                  "title": "Max Results",
                  "type": "integer"
                },
                "query": {
                  "title": "Query",
                  "type": "string"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "video_ids": {
                  "anyOf": [
                    {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Video Ids"
                }
              },
              "required": [
                "query"
              ],
              "title": "search_videosArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "search_videosOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "$defs": {
                "VideoContext": {
                  "properties": {
                    "end": {
                      "title": "End",
                      "type": "number"
                    },
                    "start": {
                      "title": "Start",
                      "type": "number"
                    },
                    "video_id": {
                      "title": "Video Id",
                      "type": "string"
                    }
                  },
                  "title": "VideoContext",
                  "type": "object"
                }
              },
              "properties": {
                "conversation_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Conversation Id"
                },
                "end": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "End"
                },
                "question": {
                  "title": "Question",
                  "type": "string"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "start": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Start"
                },
                "video_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Video Id"
                },
                "videos": {
                  "anyOf": [
                    {
                      "items": {
                        "$ref": "#/$defs/VideoContext"
                      },
                      "type": "array"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Videos"
                }
              },
              "required": [
                "question"
              ],
              "title": "ask_videoArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "ask_videoOutput",
              "type": "object"
            },
            "annotations": {
              "readOnlyHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "end": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "End"
                },
                "prompts": {
                  "items": {
                    "type": "string"
                  },
                  "title": "Prompts",
                  "type": "array"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "start": {
                  "title": "Start",
                  "type": "number"
                },
                "threshold": {
                  "default": 0.5,
                  "title": "Threshold",
                  "type": "number"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id",
                "prompts",
                "start"
              ],
              "title": "segment_videoArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "segment_videoOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "end": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "End"
                },
                "format": {
                  "default": "text",
                  "enum": [
                    "text",
                    "segments",
                    "words"
                  ],
                  "title": "Format",
                  "type": "string"
                },
                "max_chars": {
                  "default": 10000,
                  "title": "Max Chars",
                  "type": "integer"
                },
                "max_results": {
                  "default": 100,
                  "title": "Max Results",
                  "type": "integer"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "start": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Start"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "get_transcriptArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_transcriptOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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).",
            "inputSchema": {
              "properties": {
                "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"
                },
                "start": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Start"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "get_captionsArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_captionsOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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).",
            "inputSchema": {
              "properties": {
                "max_results": {
                  "default": 200,
                  "title": "Max Results",
                  "type": "integer"
                },
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "get_scenesArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_scenesOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                }
              },
              "title": "get_feature_catalogArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "get_feature_catalogOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          },
          {
            "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.",
            "inputSchema": {
              "properties": {
                "rationale": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Rationale"
                },
                "video_id": {
                  "title": "Video Id",
                  "type": "string"
                }
              },
              "required": [
                "video_id"
              ],
              "title": "summarize_videoArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "summarize_videoOutput",
              "type": "object"
            },
            "annotations": {
              "idempotentHint": true,
              "readOnlyHint": true
            }
          }
        ]
      },
      "name": "Reka",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "pypi",
          "identifier": "reka-mcp",
          "version": "0.1.10",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/reka-mcp.json",
      "popularity": {
        "pypiWeekly": 35
      },
      "registryName": "ai.reka/mcp",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.reka.ai/mcp"
        }
      ],
      "repository": "",
      "reviewed": false,
      "slug": "reka-mcp",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=ai.reka/mcp",
      "summary": "Understand your videos with Reka AI — search, ask questions, and extract insights.",
      "updatedAt": "2026-05-14T04:55:01Z",
      "url": "https://www.anchorterminal.com/tools/reka-mcp",
      "vendor": "reka.ai",
      "vendorUrl": "https://reka.ai",
      "version": "0.1.10",
      "websiteUrl": "",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/reka-mcp",
    "json": "https://www.anchorterminal.com/tools/reka-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/reka-mcp.md",
    "slim": "https://www.anchorterminal.com/tools/reka-mcp.min.md"
  },
  "markdown": "# Reka\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by reka.ai (https://reka.ai)\n- Listed because: It's published in the registry under reka.ai, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Understand your videos with Reka AI — search, ask questions, and extract insights.\n\n## Facts\n\n- MCP registry: `ai.reka/mcp` 0.1.10\n- Endpoint: https://mcp.reka.ai/mcp (streamable HTTP)\n- Package: pypi `reka-mcp` (stdio)\n- PyPI downloads a week: 35\n- Registry entry updated: 2026-05-14\n\n## Tools\n\n- Tools it lists (17, about 4,198 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-01 22:01 UTC):\n  - `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…\n  - `list_videos` (read-only): 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.…\n  - `get_video` (read-only): Get detailed information about a video including upload status, metadata (duration, resolution, fps), and per-feature indexing status. Use this to check if…\n  - `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…\n  - `delete_video`: Permanently delete a video and all its indexed data (transcript, captions, embeddings, etc.). This cannot be undone.\n  - `create_group`: Create a new video group. Groups organize videos into collections. Returns the new group's ID and name.\n  - `list_groups` (read-only): List all video groups. Use list_videos with a group_id to see videos in a specific group.\n  - `delete_group`: Delete a video group. Videos in the group are not deleted — they are simply removed from the group.\n  - `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…\n  - `search_videos` (read-only): 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…\n  - `ask_video` (read-only): 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…\n  - `segment_video` (read-only): 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…\n  - `get_transcript` (read-only): 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…\n  - `get_captions` (read-only): Get AI-generated visual descriptions of what happens on screen. Use this to understand the visual content without watching — each caption describes a short…\n  - `get_scenes` (read-only): 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…\n  - `get_feature_catalog` (read-only): List available video analysis features with their dependencies and descriptions. Use this to understand what features exist and what pipelines to use with…\n  - `summarize_video` (read-only): 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…\n- How its tools read to an agent (0 errors, 22 warnings, 1 note, about 4,198 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC11 ask_video: none of its 7 parameters has a description\n  - warn TC11 create_group: none of its 2 parameters has a description\n  - warn TC11 delete_group: none of its 2 parameters has a description\n  - warn TC11 delete_video: none of its 2 parameters has a description\n  - warn TC11 get_captions: none of its 5 parameters has a description\n  - warn TC11 get_feature_catalog: its one parameter, rationale, has no description\n  - warn TC11 get_scenes: none of its 3 parameters has a description\n  - warn TC11 get_transcript: none of its 7 parameters has a description\n  - warn TC11 get_video: none of its 2 parameters has a description\n  - warn TC11 index_video: none of its 4 parameters has a description\n  - warn TC11 list_groups: its one parameter, rationale, has no description\n  - warn TC11 list_videos: none of its 2 parameters has a description\n  - warn TC11 search_videos: none of its 5 parameters has a description\n  - warn TC11 segment_video: none of its 6 parameters has a description\n  - warn TC11 summarize_video: none of its 2 parameters has a description\n  - warn TC11 update_video: none of its 7 parameters has a description\n  - warn TC11 upload_video: none of its 5 parameters has a description\n  - warn TC15 ask_video: inputSchema uses $ref/$defs\n  - warn TC16 create_group: no readOnlyHint or destructiveHint\n  - warn TC16 index_video: no readOnlyHint or destructiveHint\n  - warn TC16 update_video: no readOnlyHint or destructiveHint\n  - warn TC16 upload_video: no readOnlyHint or destructiveHint\n  - note TC29 server: about 678 tokens (16% of the definitions) are titles that repeat property or function names\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/reka-mcp.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "Reka",
        "url": ""
      }
    ],
    "description": "Reka, an MCP server by reka.ai, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Understand your videos with Reka AI — search, ask questions, and extract insights.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "Reka",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/reka-mcp",
    "published": "",
    "section": "indexed",
    "title": "Reka: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-10",
    "url": "https://www.anchorterminal.com/tools/reka-mcp"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 1580
  },
  "version": 1
}
