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).
| |
|---|
| Endpoint | https://quiz.mcp.devfellowship.com/mcp |
| Tools | 19 |
| Backing data | quiz forms, quizzes, questions, and interview dispatch/responses; Discord id resolution for dispatch. |
| Tool | Description |
|---|
create_form | Create 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_form | Get a form by id or slug: metadata + its items (questions and decoded external_ref). Admin/super_admin only. |
get_form_responses | Read 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_forms | List forms (newest first). Soft-archived forms are hidden by default — pass include_archived=true to include them. Optional slug_prefix filter. |
archive_form | Soft-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_form | Restore a soft-archived form (sets is_active=true) by id or slug. Inverse of archive_form. Admin/super_admin only. |
Quizzes
| Tool | Description |
|---|
create_quiz | Create 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_quiz | Get a quiz by id or slug, including its ordered questions and each question’s options. |
list_quizzes | List quiz/interview definitions from quiz.quizzes. |
update_quiz | Update 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
| Tool | Description |
|---|
create_interview_quiz | Create 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_question | Add 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_question | Edit 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_question | Hard-delete a question (and its options) by question_id. Refuses if the question has collected answers unless force=true (to preserve session history). |
Dispatch
| Tool | Description |
|---|
dispatch_interview | Send 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_status | Track one interview: the dispatch row (status, timestamps), its session, and answers collected so far. Provide dispatch_id OR (recipient_phone + quiz_slug). |
list_dispatches | List interview dispatch rows (who received which quiz, channel, status, timestamps). Filter by quiz_slug, status, or recipient_phone. |
list_responses | List 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_answers | List the answers (per-question transcript) for a session. Provide response_id OR dispatch_id. |