Skip to content

video.quiz/api

by quiz.video · remote · no sign-in to list tools · v0.1.0 · published by video.quiz

Quiz.Video MCP: list, create, AI-generate, and render quiz and flashcard videos.

Deletes · 4Changes · 12

31 tools: 4 can delete or cancel things, 12 change things and 15 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http api https://www.quiz.video/mcp/

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

31 tools

Deletes or cancels 4Claude Code: deny
  • quiz_video_delete_flashcard_deckPermanently delete a flashcard deck and all of its cards.No findings

    Why it is in this group

    • The name "quiz_video_delete_flashcard_deck" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a flashcard deck and all of its cards.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • quiz_video_delete_quizPermanently delete a quiz and all of its questions, answers, and hooks.No findings

    Why it is in this group

    • The name "quiz_video_delete_quiz" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a quiz and all of its questions, answers, and hooks.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • quiz_video_delete_quiz_hookDelete a single hook from a quiz.No findings

    Why it is in this group

    • The name "quiz_video_delete_quiz_hook" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a single hook from a quiz.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • quiz_video_delete_templatePermanently delete a custom template you own.No findings

    Why it is in this group

    • The name "quiz_video_delete_template" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a custom template you own. Quizzes that have a snapshot of this template are unaffected — the snapshot remains in their themeCustomization.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
Changes things 12Claude Code: ask
  • quiz_video_add_quiz_questionsAppend one or more questions (with their answers and optional images) to an existing quiz.No findings

    Why it is in this group

    • The name "quiz_video_add_quiz_questions" says "add": a word for a change.
    Description, as the server wrote it
    Append one or more questions (with their answers and optional images) to an existing quiz.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • quiz_video_apply_templateApply a snapshot of a custom template to one or more quizzes you own.No findings

    Why it is in this group

    • The name "quiz_video_apply_template" says "apply": a word for a change.
    Description, as the server wrote it
    Apply a snapshot of a custom template to one or more quizzes you own. Sets each quiz's template field to "custom" and writes the snapshot into themeCustomization.customTemplate. Future edits to the source template do not auto-propagate.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
  • quiz_video_create_flashcard_deckCreate a flashcard deck.No findings

    Why it is in this group

    • The name "quiz_video_create_flashcard_deck" says "create": a word for a change.
    Description, as the server wrote it
    Create a flashcard deck. Required: title (3-120 chars) and cards[] (min 1). Optional: description (≤1200 chars), tags (≤50 each).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • quiz_video_create_quizCreate a quiz.No findings

    Why it is in this group

    • The name "quiz_video_create_quiz" says "create": a word for a change.
    Description, as the server wrote it
    Create a quiz. Prefer sending themeDescription or themeCustomization so the saved quiz has a custom visual theme; if omitted, the server derives one from the title/description. Omit backgroundMusicId to use default YouTube-safe shared background music, or set null for silent. Required: title. Optional: description, format, quizType, template, countdownSeconds, difficulty, musicVolume, and questions[].

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • quiz_video_create_quiz_hookCreate a hook for a quiz.No findings

    Why it is in this group

    • The name "quiz_video_create_quiz_hook" says "create": a word for a change.
    Description, as the server wrote it
    Create a hook for a quiz. `hook` is a pass-through object whose fields follow the HookInput schema (see OpenAPI spec).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • quiz_video_create_renderQueue a new video render for an existing quiz.No findings

    Why it is in this group

    • The name "quiz_video_create_render" says "create": a word for a change.
    Description, as the server wrote it
    Queue a new video render for an existing quiz. Returns the render sessionId; poll quiz_video_get_render until its status is "completed" (typically 1-5 minutes), then call quiz_video_download_render to obtain the signed MP4 URL. The quiz itself is viewable immediately at /quiz/{slug}/ regardless of render status.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • quiz_video_create_templateSave a new custom template authored in the drag-and-drop editor.No findings

    Why it is in this group

    • The name "quiz_video_create_template" says "create": a word for a change.
    Description, as the server wrote it
    Save a new custom template authored in the drag-and-drop editor. Required: template (the CustomTemplate JSON). Optional: name, description, thumbnail, isDefault, isPublic.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • quiz_video_download_renderRequest a signed download URL for a completed render.No findings

    Why it is in this group

    • The description's first verb is "request": a word for a change.
    Description, as the server wrote it
    Request a signed download URL for a completed render.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • quiz_video_generate_quizAI-generate and save a quiz from a topic.No findings

    Why it is in this group

    • The name "quiz_video_generate_quiz" says "generate": a word for a change.
    Description, as the server wrote it
    AI-generate and save a quiz from a topic. Prefer providing themeDescription or themeCustomization; when omitted, the server derives and saves a topic-based custom theme. Omit backgroundMusicId to use default YouTube-safe shared background music, or set null for silent. The response `data` always includes a `watchUrl` (the public quiz-viewer page, instantly playable). When autoRender is true, `data.render` also contains the queued render session so the agent can poll quiz_video_get_render for the MP4.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • quiz_video_update_quizUpdate a quiz.No findings

    Why it is in this group

    • The name "quiz_video_update_quiz" says "update": a word for a change.
    Description, as the server wrote it
    Update a quiz. `updates` accepts any subset of quiz settings (title, description, format, template, timing, music, TTS, publish status, etc.).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • quiz_video_update_quiz_hookUpdate an existing hook on a quiz.No findings

    Why it is in this group

    • The name "quiz_video_update_quiz_hook" says "update": a word for a change.
    Description, as the server wrote it
    Update an existing hook on a quiz. Requires quizId and numeric hookId; `updates` is a partial HookInput.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • quiz_video_update_templateUpdate an existing template.No findings

    Why it is in this group

    • The name "quiz_video_update_template" says "update": a word for a change.
    Description, as the server wrote it
    Update an existing template. Any subset of fields may be supplied; omitted fields stay unchanged.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
Only reads 15Claude Code: allow
  • get_api_catalogReturn the Quiz.Video API catalog linkset for agent discovery.No findings

    Why it is in this group

    • The name "get_api_catalog" says "get": a word for reading.
    Description, as the server wrote it
    Return the Quiz.Video API catalog linkset for agent discovery.

    Annotations the server declares

    • readOnlyHint: true
  • get_api_indexReturn the GET /api/v1 index: documentation and OpenAPI URLs, OAuth/API-key auth metadata, rate-limit and versioning policy, and every resource URL.No findings

    Why it is in this group

    • The name "get_api_index" says "get": a word for reading.
    Description, as the server wrote it
    Return the GET /api/v1 index: documentation and OpenAPI URLs, OAuth/API-key auth metadata, rate-limit and versioning policy, and every resource URL.

    Annotations the server declares

    • readOnlyHint: true
  • get_llms_txtReturn a compact LLM-readable summary of the Quiz.Video API.No findings

    Why it is in this group

    • The name "get_llms_txt" says "get": a word for reading.
    Description, as the server wrote it
    Return a compact LLM-readable summary of the Quiz.Video API.

    Annotations the server declares

    • readOnlyHint: true
  • get_openapi_specReturn the Quiz.Video OpenAPI 3.1 specification.No findings

    Why it is in this group

    • The name "get_openapi_spec" says "get": a word for reading.
    Description, as the server wrote it
    Return the Quiz.Video OpenAPI 3.1 specification.

    Annotations the server declares

    • readOnlyHint: true
  • quiz_video_get_accountGet the authenticated user's account info, plan, and usage limits.No findings

    Why it is in this group

    • The name "quiz_video_get_account" says "get": a word for reading.
    Description, as the server wrote it
    Get the authenticated user's account info, plan, and usage limits.

    Annotations the server declares

    • readOnlyHint: true
  • quiz_video_get_flashcard_deckFetch a flashcard deck (including all cards) by id.No findings

    Why it is in this group

    • The name "quiz_video_get_flashcard_deck" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a flashcard deck (including all cards) by id.

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true
  • quiz_video_get_quizFetch a single quiz (including settings and metadata) by id.No findings

    Why it is in this group

    • The name "quiz_video_get_quiz" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single quiz (including settings and metadata) by id.

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true
  • quiz_video_get_renderFetch the status and progress of a render session.No findings

    Why it is in this group

    • The name "quiz_video_get_render" says "get": a word for reading.
    Description, as the server wrote it
    Fetch the status and progress of a render session. When status is "completed", the response also contains a signed `videoUrl` (and `filename`) so the agent can share the MP4 directly without a separate quiz_video_download_render call. In-progress polls return status + progress.

    Annotations the server declares

    • readOnlyHint: true
  • quiz_video_get_templateFetch a single custom template (including the full scenes/layers payload) by id.No findings

    Why it is in this group

    • The name "quiz_video_get_template" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single custom template (including the full scenes/layers payload) by id.

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true
  • quiz_video_list_flashcard_decksList flashcard decks owned by the authenticated user with optional pagination.No findings

    Why it is in this group

    • The name "quiz_video_list_flashcard_decks" says "list": a word for reading.
    Description, as the server wrote it
    List flashcard decks owned by the authenticated user with optional pagination.

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true
  • quiz_video_list_musicList available background music tracks.No findings

    Why it is in this group

    • The name "quiz_video_list_music" says "list": a word for reading.
    Description, as the server wrote it
    List available background music tracks.

    Annotations the server declares

    • readOnlyHint: true
  • quiz_video_list_quiz_hooksList video hooks configured for a quiz.No findings

    Why it is in this group

    • The name "quiz_video_list_quiz_hooks" says "list": a word for reading.
    Description, as the server wrote it
    List video hooks configured for a quiz.

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true
  • quiz_video_list_quiz_questionsList questions (and their answers) for a quiz.No findings

    Why it is in this group

    • The name "quiz_video_list_quiz_questions" says "list": a word for reading.
    Description, as the server wrote it
    List questions (and their answers) for a quiz.

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true
  • quiz_video_list_quizzesList quizzes owned by the authenticated user with optional pagination (page, limit).No findings

    Why it is in this group

    • The name "quiz_video_list_quizzes" says "list": a word for reading.
    Description, as the server wrote it
    List quizzes owned by the authenticated user with optional pagination (page, limit).

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true
  • quiz_video_list_templatesList the caller's saved custom templates (and optionally public ones).No findings

    Why it is in this group

    • The name "quiz_video_list_templates" says "list": a word for reading.
    Description, as the server wrote it
    List the caller's saved custom templates (and optionally public ones). Templates are reusable scene-based designs that can be applied to many quizzes.

    Annotations the server declares

    • readOnlyHint: true
    • untrustedContentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http api https://www.quiz.video/mcp/

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__api__get_api_catalog",
      "mcp__api__get_openapi_spec",
      "mcp__api__get_llms_txt",
      "mcp__api__get_api_index",
      "mcp__api__quiz_video_list_quizzes",
      "mcp__api__quiz_video_get_quiz",
      "mcp__api__quiz_video_list_quiz_questions",
      "mcp__api__quiz_video_list_quiz_hooks",
      "mcp__api__quiz_video_list_flashcard_decks",
      "mcp__api__quiz_video_get_flashcard_deck",
      "mcp__api__quiz_video_get_render",
      "mcp__api__quiz_video_get_account",
      "mcp__api__quiz_video_list_music",
      "mcp__api__quiz_video_list_templates",
      "mcp__api__quiz_video_get_template"
    ],
    "ask": [
      "mcp__api__quiz_video_create_quiz",
      "mcp__api__quiz_video_generate_quiz",
      "mcp__api__quiz_video_update_quiz",
      "mcp__api__quiz_video_add_quiz_questions",
      "mcp__api__quiz_video_create_quiz_hook",
      "mcp__api__quiz_video_update_quiz_hook",
      "mcp__api__quiz_video_create_flashcard_deck",
      "mcp__api__quiz_video_create_render",
      "mcp__api__quiz_video_download_render",
      "mcp__api__quiz_video_create_template",
      "mcp__api__quiz_video_update_template",
      "mcp__api__quiz_video_apply_template"
    ],
    "deny": [
      "mcp__api__quiz_video_delete_quiz",
      "mcp__api__quiz_video_delete_quiz_hook",
      "mcp__api__quiz_video_delete_flashcard_deck",
      "mcp__api__quiz_video_delete_template"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as api. Review it before you use it.