Skip to main content
Glama

questionBank_addItem

Adds one question/item to a question bank. Call questionBank_blockTypeColumns(riddleType) first to see the valid blockType values for this bank and which "columns" each one expects - there is no single universal shape. The item is added to the bank's draft; call questionBank_publish to make it something a QuestionBank block actually draws. Rejected for a public template id, see questionBank_templateList.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
columnsYesThe question content, as {columnName: [values]}. Which column names are expected depends on the bank's riddleType AND the blockType, so read them off questionBank_blockTypeColumns rather than guessing: an unknown column name is rejected, naming the column it did not recognise and listing the valid ones. E.g. a "Quiz" bank's "SingleChoice" takes {"QUESTION": ["Capital of France?"], "CORRECT_CHOICE": ["Paris"], "INCORRECT_CHOICE": ["London", "Berlin"]}, a "Poll" bank's "SingleChoice" {"QUESTION": [...], "CHOICE": [...]} instead, a Poll answer never being right or wrong.
categoryYesThe item's category - free text, used to filter what a QuestionBank block draws (see the "questionBankCriteria" of the QuestionBank block type).
blockTypeYesThe block type this question is shaped for, e.g. "SingleChoice"/"MultipleChoice". questionBank_blockTypeColumns lists every blockType valid for this bank's riddleType and the "columns" each expects.
difficultyYesThe item's difficulty, 1-10 - also used to filter what a QuestionBank block draws.
questionBankIdYesThe ID of the question bank to add the item to.

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the item only enters the bank's draft, that it becomes drawable only after questionBank_publish, and that public template ids cause rejection. This adds meaningful context beyond the sparse idempotentHint=false annotation. It does not go into validation failure details or full side-effect semantics, but it is transparent about the core state behavior.

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?

Three focused sentences: the action, the required prerequisite, and the lifecycle/rejection caveats. No filler or repeated schema content. The most critical constraint is front-loaded.

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?

The description is complete for the main task: it gives prerequisite, state wiring, and rejection behavior, with the schema carrying parameter detail. It does not state what the tool returns, which is a minor gap because there is no output schema, but it does not significantly hamper invocation.

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 parameters are already fully explained. The description adds the key caution about per-blockType column shapes and directs to the helper, but the heavy lifting is done by the schema, so the baseline of 3 is appropriate.

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?

States a specific verb and resource: 'Adds one question/item to a question bank.' It distinguishes itself from sibling tools by making clear it creates a draft item rather than publishing, updating, or deleting. The lifecycle context (draft vs. publish) removes ambiguity.

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?

Explicitly directs the agent to call questionBank_blockTypeColumns first, explains that item shapes vary, tells it to call questionBank_publish when ready, and warns that public template ids are rejected and points to questionBank_templateList. This is unusually actionable guidance.

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
Disambiguation5/5

Each tool has a clear, unique purpose. The riddle_builder_* variants are distinct by Riddle type, questionBank_* and riddleTemplate_* cover separate objects, and stats_* differ by scope. No two tools appear to perform the same function.

Naming Consistency4/5

Naming is largely consistent with domain prefixes (riddle_, questionBank_, riddleTemplate_, stats_, project_, palette_, reference_). Minor deviations like riddle_account_list vs. riddle_list and whoami (no prefix) and riddle_get_embed_code vs. riddle_qr_code slightly break the pattern, but overall it is predictable.

Tool Count2/5

With 62 tools, the server is far beyond the typical 3-15 well-scoped range. While each tool is functional and the breadth reflects the platform's complexity, the sheer number makes it heavy and increases the cognitive load for an agent, suggesting over-granularity.

Completeness5/5

The tool set covers the full lifecycle: create (builder variants), read (get/list), update (builder_update, rename), delete, publish/unpublish, tagging, templates, question banks, stats, projects, palettes, and reference documentation. No obvious domain operation is missing.

Resources