Skip to main content
Glama

RooQuiz

create_form

Create a form in the team this token is bound to. Pass the questions array and report configuration in one call instead of following up with per-question calls. In the outcome_quiz scene report.outcomes is REQUIRED at create time (TrueFalse votes via trueOutcomes/falseOutcomes). The returned structuredContent.fields carries each question code — read those first, then fill in a scored_quiz report.formula (e.g. q_a + q_b) or a report.dimensionAnalysis via update_form / set_dimension_analysis. Creates the primary language only; add other languages with create_form_translation. Not idempotent: if the call times out it may still have succeeded, so retrying blindly can create a duplicate — check first, then retry only if it is really missing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sceneYesquiz=exam, scored_quiz=scored_quiz, outcome=typing quiz (votes decide which outcome type wins)
themeNoOptional visual theme matching the quiz topic/mood. Default light. Pick the one that best fits the quiz: light (clean neutral bright; default — formal/general quizzes); corporate (professional blue+gray; B2B, career, business assessments); dark (modern sleek dark; tech, night, cool personality quizzes); cupcake (soft pink cute rounded; fun, food, kids, lighthearted); pastel (gentle pastel artsy; lifestyle, aesthetics, soft mood); valentine (pink romantic hearts; love, relationships, holidays); synthwave (neon purple/pink retro; gaming, trends, bold personality); luxury (dark + gold premium; finance, luxury brands, high-end); forest (deep green nature; environment, health, outdoors); coffee (warm brown cozy; food & drink, cafe, lifestyle); autumn (warm orange/brown seasonal; autumn, cozy, harvest); halloween (purple+orange spooky; Halloween, horror, festive fun); night (deep calm blue; astronomy, mindfulness, calm tech); cyberpunk (high-contrast neon yellow; tech, esports, gaming).light
titleYesForm title (1-200 characters)
reportNoReport configuration. knowledge_quiz / scored_quiz: overallAnalysis fields are flat at the top level and dimensionAnalysis is nested (strongly recommended for the scored_quiz scene, optional for the knowledge_quiz scene). outcome: only the outcomes key is allowed, and it is required at create time.
languageNoDefault zh_CNzh_CN
openGraphNoSocial share card (Open Graph) settings: the title / description / image shown when the answer link is shared to social media or chat apps. In update_form each sub-key is merged independently (only the keys you pass change; pass an empty string to clear one). SEO keywords are generated automatically and cannot be set here.
questionsNoOptional. A list of questions/page breaks to create at once, written into form.fields in order. Question types: SingleCheck/MultiCheck/TrueFalse; FillBlank (free text — scored in quiz via correctAnswer, an unscored data-collection field in scored_quiz); DropDown (single or multiple via `multiple`, use it instead of SingleCheck/MultiCheck when there are more than 20 choices); Cascade (hierarchical choices via children, scored_quiz only); Ordering (quiz only, correctAnswer = all choices in the correct order); DateField/TimeField as unscored data-collection fields (scored_quiz only); NumberField (quiz: optional numeric correctAnswer + score; scored_quiz: the submitted number feeds report formulas); Rate (scored_quiz only, the 1..steps rating value is the question score unless per-star scores are set in the web app). Insert a page break with { type: "Breaker" }, which the AI can interleave between questions to paginate. Display blocks collect no answer: { type: "Statement", content } is a rich-text passage (intro / section lead-in / disclaimer) and { type: "Swiper", items } an image carousel. At most 100 items.
systemTextNoOptional. Answer-page system text overrides as a key→text map; empty values are dropped and fall back to the language default.
descriptionNoOptional form description. Allows description-scope rich text (including <img src>). This field also accepts an inline image: put an <img src="..."> in it, where src is a direct image URL that renders in <img src> (a page URL that merely contains an image does not work). Use finalize_image_upload to host an image yourself, or a direct URL the user supplied. Never invent an image URL — omit the image instead of risking a broken one.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoThe new form id
urlNoAdmin edit URL
sceneNoknowledge_quiz / scored_quiz / outcome_quiz
themeNoAnswer-page theme name
titleNoForm title
fieldsNoEvery question code — read these before writing a formula or dimensions
languageNoPrimary language of the form
outcomesNoOutcome types (outcome_quiz scene only)
shareUrlNoPublic share / answer link
hasReportNoWhether a report configuration was passed
publicTokenNoToken behind the public answer link
questionCountNoHow many questions / page breaks were created

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses non-idempotency ('retrying blindly can create a duplicate'), the primary-language-only creation limitation, the outcome_quiz requirement for report.outcomes, and that returned structuredContent.fields carries question codes. These are valuable behavioral traits not visible in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, batching, scene-specific requirement, output hint, follow-up steps, language limitation, and retry warning. It is front-loaded with the main action and avoids repeating schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, nested objects, and scene-dependent rules, the description covers the critical workflow: create with questions/report, handle outcome_quiz requirements, read returned codes, fill in formulas via siblings, add translations later, and retry safely. The rich schema and output schema cover the remaining details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds workflow-level context about batching questions/report and the outcome_quiz requirement, but these are already covered in the schema descriptions. It does not add significant per-parameter meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create a form in the team this token is bound to.' It differentiates from siblings by explicitly saying to pass questions and report configuration in one call instead of per-question calls, and by pointing to create_form_translation for additional languages. This makes the tool's exact role unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use this tool (create a form, batch questions+report) and when not to: per-question calls for adding questions later, update_form / set_dimension_analysis for filling in scored_quiz formulas and dimension analysis, and create_form_translation for other languages. It also gives retry guidance (check first due to non-idempotency).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools pair a distinct resource with a distinct verb, and the descriptions do a good job of separating related concepts like leads, records, examinees, and bookings. The only real ambiguity is between list_records (submission records, also called leads) and list_leads (CRM leads), plus a mild overlap between update_form and update_form_settings, but careful reading resolves both.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern, using standard verbs like get_, list_, create_, update_, delete_, add_, insert_, move_, and set_. Minor stylistic variation such as add_question vs. insert_question is still predictable and does not hurt usability.

Tool Count2/5

48 tools is a very heavy surface for an MCP server. While each tool appears purposeful, the server spans forms, questions, translations, analytics, leads, bookings, examinees, media, and team administration, making it feel like a full platform API rather than a focused server. Most agents will only ever need a subset of these tools.

Completeness4/5

The core quiz lifecycle is well covered: form creation/editing/deletion/restore/duplicate/translation, question CRUD/move, delivery settings, statistics/funnels, lead CRM, bookings, examinees, media upload, and tenant basics. The main gaps are minor — no member list/remove/role management beyond invite, no media library listing/deletion, and no bulk export of records — but these do not create dead ends in the primary quiz/lead/booking workflows.

Resources