Skip to main content
Glama

create_questions

Batch create questions for a Skilljar quiz or question bank by supplying HTML, question type, and exactly one parent. Supports multiple-choice, multiple-answer, fill-in-blank, and freeform questions with answers.

Instructions

Create one or more questions. This is a BATCH operation.

    Each item needs `question_html`, a `question_type`, and EXACTLY ONE parent -
    `quiz_id` or `question_bank_id`, never both and never neither. A question in a
    bank is reusable across quizzes; a question in a quiz belongs to it alone and is
    deleted with it.

    Types and their answers:
      MULTIPLE_CHOICE, MULTIPLE_ANSWER   at least one answer
      FILL_IN_THE_BLANK                  at least one answer; every one is stored as
                                         correct regardless of what you send
      FREEFORM                           NO answers; graded by a human

    Each answer is `{answer_text, correct}`; `answer_text` is required, max 1000.
    `order` is assigned by the service for both questions and answers and is not
    accepted. Neither are `is_graded`, `is_optional` or `answer_feedback_html`.

    Requires `question-banks:write` OR `quizzes:write`.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
questionsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsYes
noteYes
totalYes
failedYes
succeededYes
Install Server

TDQS

A4.7/5.0
Behavior5/5

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

The annotations only say the tool is not read-only, not idempotent, and not destructve — they carry no behavioral detail. The description adds substantial disclosure: batch semantics, service-assigned `order` being rejected, `is_graded`/`is_optional`/`answer_feedback_html` being rejected, and the surprising FITB behavior that every answer sent is stored as correct. These are exactly the kind of server-side behaviors an agent cannot infer.

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?

Every sentence carries call-correctness information that the otherwise-empty schema omits; there is no filler or boilerplate. The structure — purpose, parent rule, lifecycle, per-type table, answer shape, rejected fields, permissions — is logical and uses heavy formatting to aid parsing. It is long, but the length is justified by 0% schema coverage.

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

Completeness4/5

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

Given an empty schema and minimal annotations, the description covers the full call-shaping surface: required fields, parent exclusivity, per-type rules, limits, rejected fields, and permissions. The main residual gap is batch failure semantics — whether one invalid item fails the whole batch or is skipped — which matters for retrying a large create. The presence of an output schema reasonably covers return-value expectations.

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

Parameters5/5

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

Schema description coverage is 0% and the sole `questions` parameter is an opaque array with additionalProperties: true — the schema provides zero meaning. The description fully compensates: it defines required per-item fields (question_html, question_type, exactly one parent), the answer shape {answer_text, correct}, the answer_text length limit, and per-type answer constraints.

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 opening line 'Create one or more questions' states a specific verb and resource, and the explicit 'BATCH operation' marker distinguishes it from singular create/update tools. The create verb cleanly separates it from sibling list_questions, get_question, update_questions, and delete_questions without needing to open their schemas.

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

Usage Guidelines4/5

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

The description gives clear guidance on the central usage decision — exactly one parent, quiz_id vs question_bank_id — with lifecycle consequences explained ('a question in a bank is reusable across quizzes; a question in a quiz belongs to it alone and is deleted with it'). It also states the required permission scopes. It does not explicitly name alternative tools or exclusion conditions, but for a create tool the parent choice is the key routing decision.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CloudSecurityAlliance/csa-skilljar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server