QuizGen
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Create hosted quizzes, forms and surveys, send them, and read the responses.
| Author | dev.quizgen |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2515 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"QuizGen": {
"url": "https://quizgen.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (14)
create_quizCreate 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.
Parameters:
definition(required) — objectcreator_email— string — Optional, sandbox only: your user's email. They get the claim link by email immediately plus one reminder before the quiz expires — worth asking the user for. Never invent one.idempotency_key— string — Optional. Same key within 24h returns the originally created quiz instead of a duplicate.
Hints: read-only no · destructive no · idempotent no · open-world no
list_quizzesread-onlyList quizzes owned by the connected QuizGen account, newest first (default 50 per page; the result includes total and has_more). Requires authorization.
Parameters:
limit— integer — Max quizzes to return (default 50).offset— integer — Skip this many quizzes (use next_offset from the previous page).
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_quizread-onlyGet one quiz including its full definition. Requires an authorized account that owns the quiz.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).
Hints: read-only yes · destructive no · idempotent yes · open-world no
update_quizReplace 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.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).definition(required) — object
Hints: read-only no · destructive no · idempotent yes · open-world no
set_quiz_statusOpen ("live") or close ("closed") a quiz. Closed quizzes stop accepting responses but keep their data.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).status(required) — string
Hints: read-only no · destructive no · idempotent yes · open-world no
delete_quizdestructiveDelete a quiz. Its URL stops working and responses become inaccessible. Confirm with your user before calling this.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).
Hints: read-only no · destructive yes · idempotent yes · open-world no
get_responsesread-onlyList 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.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).limit— integer — Max responses to return (default 50).offset— integer — Skip this many responses (use next_offset from the previous page).complete_only— boolean — If true, return only completed responses.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_responseread-onlyGet a single response by id.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).response_id(required) — string — Response id.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_quiz_statsread-onlyGet a quiz's funnel stats: views, started, finished, completion rate, and outcome counts.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).
Hints: read-only yes · destructive no · idempotent yes · open-world no
set_webhookSet (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.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).url(required) — ['string', 'null'] — https:// URL to receive completed responses, or null to clear.secret— string — Optional signing secret (min 8 chars).
Hints: read-only no · destructive no · idempotent yes · open-world no
send_quiz_by_emailEmail 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.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).recipients(required) — arraymessage— string — Optional short note from the sender, shown above the button.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_sendsread-onlyDelivery status for a quiz's email sends: sent / started / completed per recipient, plus reminder counts and opt-outs.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).
Hints: read-only yes · destructive no · idempotent yes · open-world no
set_follow_upSet (or clear with rule: null) automatic email reminders for recipients who haven't completed the quiz. Stops on completion, opt-out, or max_reminders.
Parameters:
quiz_id(required) — string — Quiz id (the `id` field returned by create_quiz/list_quizzes).rule(required) — ['object', 'null']
Hints: read-only no · destructive no · idempotent yes · open-world no
check_accountread-onlyReturn 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.)
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.