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.
31 tools: 4 can delete or cancel things, 12 change things and 15 only read.
Scanned Oct 21, 2026
- Deletes or cancels4Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things12Claude Code: ask: see these tools
- Only reads15Claude Code: allow: see these tools
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.
{
"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.