QuizGen
by quizgen.dev · remote · no sign-in to list tools · v1.0.0 · published by dev.quizgen
Create hosted quizzes, forms and surveys, send them, and read the responses.
14 tools: 1 can delete or cancel things, 1 do something that can't be undone, 5 change things and 7 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things5Claude Code: ask: see these tools
- Only reads7Claude 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 quizgen https://quizgen.dev/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 1Claude Code: deny
delete_quizDelete a quiz.No findings
Why it is in this group
- The name "delete_quiz" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a quiz. Its URL stops working and responses become inaccessible. Confirm with your user before calling this.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Can't be undone 1Claude Code: ask
send_quiz_by_emailEmail the quiz to recipients — each gets a unique tracked link so responses tie back to them (see get_sends).No findings
Why it is in this group
- The name "send_quiz_by_email" says "send": a word for sending, and what is sent cannot be taken back.
- The input addresses people (input.recipients): what it sends cannot be taken back.
Description, as the server wrote it Email the quiz to recipients — each gets a unique tracked link so responses tie back to them (see get_sends). Any account with a confirmed email address; capped per month and per 24 hours (Free: 200/mo, 50/day; Plus: 5,000/mo). Confirm the recipient list with your user before calling: this sends real email immediately.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 5Claude Code: ask
create_quizCreate a live, hosted quiz/form/survey and get its shareable URL.No findings
Why it is in this group
- The name "create_quiz" says "create": a word for a change.
Description, as the server wrote it Create a live, hosted quiz/form/survey and get its shareable URL. Without authorization this creates a temporary sandbox quiz (72 hours, 10 responses) with a secret claim_url to keep it. The definition schema below is the complete quiz format — only the 19 documented question types exist, and unknown fields are rejected.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
set_follow_upSet (or clear with rule: null) automatic email reminders for recipients who haven't completed the quiz.No findings
Why it is in this group
- The name "set_follow_up" says "set": a word for a change.
Description, as the server wrote it Set (or clear with rule: null) automatic email reminders for recipients who haven't completed the quiz. Stops on completion, opt-out, or max_reminders.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_quiz_statusOpen ("live") or close ("closed") a quiz.No findings
Why it is in this group
- The name "set_quiz_status" says "set": a word for a change.
Description, as the server wrote it Open ("live") or close ("closed") a quiz. Closed quizzes stop accepting responses but keep their data.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_webhookSet (url) or clear (url: null) the webhook for a quiz.No findings
Why it is in this group
- The name "set_webhook" says "set": a word for a change.
Description, as the server wrote it Set (url) or clear (url: null) the webhook for a quiz. Completed responses POST to the url; with a secret, requests carry an X-QuizGen-Signature HMAC-SHA256 header.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_quizReplace a quiz's definition (full replacement, not a patch — send the complete new definition).No findings
Why it is in this group
- The name "update_quiz" says "update": a word for a change.
Description, as the server wrote it Replace a quiz's definition (full replacement, not a patch — send the complete new definition). The quiz keeps its URL and responses. Requires an authorized account that owns the quiz.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 7Claude Code: allow
check_accountReturn the connected account's email, plan, and limits.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return the connected account's email, plan, and limits. Call this to verify that QuizGen authorization (OAuth or API key) is active. (Formerly named check_api_key; the old name still works.)
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_quizGet one quiz including its full definition.No findings
Why it is in this group
- The name "get_quiz" says "get": a word for reading.
Description, as the server wrote it Get one quiz including its full definition. Requires an authorized account that owns the quiz.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_quiz_statsGet a quiz's funnel stats: views, started, finished, completion rate, and outcome counts.No findings
Why it is in this group
- The name "get_quiz_stats" says "get": a word for reading.
Description, as the server wrote it Get a quiz's funnel stats: views, started, finished, completion rate, and outcome counts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_responseGet a single response by id.No findings
Why it is in this group
- The name "get_response" says "get": a word for reading.
Description, as the server wrote it Get a single response by id.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_responsesList a quiz's responses (answers, outcome, score, timestamps), newest first (default 50 per page; the result includes total and has_more).No findings
Why it is in this group
- The name "get_responses" says "get": a word for reading.
Description, as the server wrote it List a quiz's responses (answers, outcome, score, timestamps), newest first (default 50 per page; the result includes total and has_more). Requires an authorized account that owns the quiz.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_sendsDelivery status for a quiz's email sends: sent / started / completed per recipient, plus reminder counts and opt-outs.No findings
Why it is in this group
- The name "get_sends" says "get": a word for reading.
Description, as the server wrote it Delivery status for a quiz's email sends: sent / started / completed per recipient, plus reminder counts and opt-outs.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_quizzesList quizzes owned by the connected QuizGen account, newest first (default 50 per page; the result includes total and has_more).No findings
Why it is in this group
- The name "list_quizzes" says "list": a word for reading.
Description, as the server wrote it List quizzes owned by the connected QuizGen account, newest first (default 50 per page; the result includes total and has_more). Requires authorization.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http quizgen https://quizgen.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__quizgen__list_quizzes",
"mcp__quizgen__get_quiz",
"mcp__quizgen__get_responses",
"mcp__quizgen__get_response",
"mcp__quizgen__get_quiz_stats",
"mcp__quizgen__get_sends",
"mcp__quizgen__check_account"
],
"ask": [
"mcp__quizgen__create_quiz",
"mcp__quizgen__update_quiz",
"mcp__quizgen__set_quiz_status",
"mcp__quizgen__set_webhook",
"mcp__quizgen__send_quiz_by_email",
"mcp__quizgen__set_follow_up"
],
"deny": [
"mcp__quizgen__delete_quiz"
]
}
}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 quizgen. Review it before you use it.