Skip to main content
Glama

question_bank_get_items

Read-onlyIdempotent

Lists the items of a question bank - its DRAFT content by default, or its published items with published: true. Filter by search term, blockType, category or difficultyRange - the same filters a QuestionBank block draws with. A template id from question_bank_list(scope: "templates") reads too - that is how to preview its questions before duplicating it. Paginated {items, page, pageSize, total, hasMore}. The item shape, the "columns" format, the pagination it runs with and what the response leaves out: riddle://reference/concepts/question-bank-items.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1 (default: 1).
searchNoFilter items by their column values (e.g. a question title or a choice).
categoryNoFilter to one category.
pageSizeNoItems per page (default: 250, max: 500).
blockTypeNoFilter to one block type (e.g. "SingleChoice").
publishedNoRead the bank's PUBLISHED items instead of its draft (default false) - a different set of items, and the pool a live Riddle's QuestionBank block actually draws from. Counting what one block criterion can draw is then a single call: its blockType/category/difficultyRange plus pageSize: 1, then read "total" - what that number does and does not include is in riddle://reference/concepts/question-bank-items.
questionBankIdYesThe bank to list items of - your own, or a template id from question_bank_list(scope: "templates").
difficultyRangeNoFilter to a difficulty range, as [min, max] (e.g. [1, 5]).

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark readOnlyHint=true and idempotentHint=true, and the description adds behavior beyond that: the draft-by-default vs published:true switch, that published items are 'a different set of items' forming a live block's pool, and the {items, page, pageSize, total, hasMore} pagination envelope. It even discloses caveats ('what the response leaves out') and links deeper reference, all consistent with the read-only annotation.

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

Conciseness4/5

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

Four sentences, each carrying a distinct payload: core listing behavior, filter parity with QuestionBank blocks, template-preview usage, and pagination shape. It is denser than typical descriptions but has no wasted words; only a modest tightening of the filter enumeration would push it to 5.

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?

For a complex 8-parameter tool with no output schema, the description covers the key decision axes (draft vs. published, template ids, filter semantics, pagination envelope) and honestly signspost 'what the response leaves out' to a reference link. It relies on riddle://reference for the item shape and 'columns' format rather than inlining it, which is reasonable but leaves one external hop for full completeness.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the description still adds meaning: it explains that published items are the pool a live QuestionBank block draws from, shows the total-counting trick with pageSize: 1, and reveals that questionBankId accepts template ids from question_bank_list(scope: "templates"). That goes beyond restating the schema's property descriptions.

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+resource pairing, 'Lists the items of a question bank', then immediately disambiguates draft vs. published variants. It further distinguishes itself by naming the template-id source from question_bank_list(scope: "templates"), so an agent can tell it apart from question_bank_list/question_bank_get without opening the schema.

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?

It states clear when-contexts: filtering with 'the same filters a QuestionBank block draws with' and previewing a template's questions before duplicating it. It also teaches a counting idiom (blockType/category/difficultyRange plus pageSize: 1, then read "total"). It stops short of explicit when-not-to-use/exclusion statements for other siblings, so it earns a 4 rather than 5.

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.

Resources