Skip to content

quiz

Forms, quizzes, questions, and interview dispatch. The former interview MCP has been folded into quiz — its quizzes / questions / dispatch tools live here (the event-guest tools moved to events).

Endpointhttps://quiz.mcp.devfellowship.com/mcp
Tools19
Backing dataquiz forms, quizzes, questions, and interview dispatch/responses; Discord id resolution for dispatch.

Forms

ToolDescription
create_formCreate a shareable batch-answer form on the quiz app. Each item becomes one free-text question; an optional external_ref is stashed per item so responses map back to the source (e.g. a YouTube comment id). Returns { form_id, slug, shared_url }. Admin/super_admin only.
get_formGet a form by id or slug: metadata + its items (questions and decoded external_ref). Admin/super_admin only.
get_form_responsesRead submitted batch answers for a form (by id or slug), mapped back to each item via external_ref. Defaults to the most recent submission; pass all_responses=true for every submission. Admin/super_admin only.
list_formsList forms (newest first). Soft-archived forms are hidden by default — pass include_archived=true to include them. Optional slug_prefix filter.
archive_formSoft-archive a form (sets is_active=false) by id or slug. Does NOT delete — preserves questions and responses; restore with unarchive_form. Admin/super_admin only.
unarchive_formRestore a soft-archived form (sets is_active=true) by id or slug. Inverse of archive_form. Admin/super_admin only.

Quizzes

ToolDescription
create_quizCreate a quiz/interview definition in quiz.quizzes (slug, title, description, welcome_message, and the per-interview agent_context / guardrails / business_unit_id). Add questions afterwards with add_question, or use create_interview_quiz to do both in one call.
get_quizGet a quiz by id or slug, including its ordered questions and each question’s options.
list_quizzesList quiz/interview definitions from quiz.quizzes.
update_quizUpdate an existing quiz (by id OR slug): title, description, welcome_message, welcome_cta, completion_redirect_url, is_active, and the per-interview agent_context / guardrails / business_unit_id. Only the fields you pass are changed.

Questions

ToolDescription
create_interview_quizCreate a quiz (with per-interview agent_context / guardrails / business_unit_id) and all its questions in one call. Each question: { text, type (open|rating|multiple_choice|single|multi), options?[], rating_max?, is_required?, cohort_tag? }. Returns the created quiz with its questions.
add_questionAdd a question (and its options for choice types) to a quiz. Resolve the quiz by quiz_id OR quiz_slug. type: open | rating | multiple_choice | single | multi. Options apply to choice types; rating auto-generates a 0–N scale.
update_questionEdit an existing question in place by question_id — change text, position, type, is_required, and/or its options — WITHOUT deactivating the quiz or re-authoring a slug. Pass the FULL ordered option list to set options; omit to leave untouched; pass [] to clear.
delete_questionHard-delete a question (and its options) by question_id. Refuses if the question has collected answers unless force=true (to preserve session history).

Dispatch

ToolDescription
dispatch_interviewSend a quiz/interview to a list of recipients via the interview engine over WhatsApp (phone) or Discord. For Discord, supply discord_id directly, or a guest_id / member_id to resolve it server-side. Returns sent/failed counts, per-recipient dispatch ids, and any skipped recipients with no Discord identity.
get_interview_statusTrack one interview: the dispatch row (status, timestamps), its session, and answers collected so far. Provide dispatch_id OR (recipient_phone + quiz_slug).
list_dispatchesList interview dispatch rows (who received which quiz, channel, status, timestamps). Filter by quiz_slug, status, or recipient_phone.
list_responsesList response (session) rows for a quiz — one per interview session, with completion status. Filter by quiz_slug and/or completed. Pair with list_answers for the per-question transcript.
list_answersList the answers (per-question transcript) for a session. Provide response_id OR dispatch_id.