Skip to main content
Glama

edubase_post_question

Publish or update quiz questions in EduBase with support for multiple formats including multiple choice, free text, hotspot, and mathematical expressions. Create atomic building blocks for exams and assessments.

Instructions

Publish or update a question. Questions are the atomic building blocks of the EduBase Quiz system and represent the lowest level in the hierarchy (Questions -> Quiz sets -> Exams). Always check what the fields named like the type of the question do and consider using them, for example if creating a HOTSPOT question, both hotspot_zones and hotspot_image will be required!

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesExternal unique question identifier for question management.
typeYesType of the question.
contentYesThe main question text that will be displayed to the test taker. Supports rich formatting options, including LaTeX, parameters, quick expressions, and EduTags for styling. This is documented as `question` in the Developer Documentation, but named `content` in the API for better clarity.
question_formatNoControls question text rendering.
answerYesThe correct answer(s) for the question. For multiple answers, separate with triple-and operator ("&&&"). The solution and the corresponding label can also be specified together using the triple arrow (">>>") operator
languageNoThe language of the question, in Alpha-2 code format (according to ISO 639-1).
imageNoAttach an image to the question. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a temporary filebin storage external identifier (preferred), a base64-encoded image (whole data string) or a URL.
answer_orderNoControls whether the sequence of multiple answers matters.
answer_labelNoText displayed in/above the input field during the test. Separate multiple labels with triple-and operators ("&&&"). Automatically activates the answer_order function.
answer_hideNoControls whether correct answers are hidden on the results page.
answer_indefiniteNoAllows users to add any number of input fields using + and - buttons.
answer_formatNoDefines how to display the answer on the results page. Only applicable for FREE-TEXT questions.
answer_requireNoNumber of answers required for maximum score. Only applicable for questions with multiple valid answers where only a subset needs to be provided.
subjectNoSubject classification for organizing questions.
categoryNoCategory, another layer of organization as seen in SUBJECT
pathNoPath where question will be stored in personal QuestionBase.
optionsNoIncorrect options or false statements for choice-based question types. Only applicable for CHOICE, MULTIPLE-CHOICE, and TRUE/FALSE questions. Separate multiple options with triple-and operators ("&&&").
options_fixNoControls the arrangement of answers and options.
options_orderNoDefine exact presentation order of answers and options.
pointsNoMaximum points for a fully correct answer. Default: 1 point.
subscoringNoMethod for calculating partial credit for partially correct answers. Not applicable for CHOICE, READING and FREE-TEXT questions.
subpointsNoDefine specific point values for each answer in percentages. Only used when subscoring=CUSTOM. Specify percentage values separated by triple-and operators ("&&&"). Not applicable for CHOICE, READING and FREE-TEXT questions. Values should sum to 100 (for percentage).
penalty_scoringNoControls how penalty points should be applied.
penalty_pointsNoPoints deducted for completely incorrect answers.
hint_penaltyNoPoint deduction for using hints/solutions/videos during a test.
solution_penaltyNoPoint deduction for viewing steps of the solution (NONE, ONCE:N%). Default: NONE.
solution_imageNoAttach an image to the solution steps. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a temporary filebin storage external identifier (preferred), a base64-encoded image (whole data string) or a URL.
video_penaltyNoPoint deduction for video assistance used (NONE, ONCE:N%). Default: NONE.
manual_scoringNoControls when to enable manual scoring. Not applicable for READING and FREE-TEXT questions.
parametersNoParameter definitions for dynamic question generation. Separate multiple parameters with triple-and operators ("&&&"). Up to 128 parameters can be defined!
parameters_syncNoControls synchronization of LIST parameter selections.
constraintsNoDefine rules that parameter combinations must satisfy.
expression_checkNoDefine how expressions should be validated (RANDOM, EXPLICIT, COMPARE). Default: RANDOM.
expression_variableNoSpecifies variable names used in expressions (separate multiple variables with &&&). Default: x.
expression_decimalsNoSets precision for decimal calculations. Default: 2.
expression_functionsNoControls whether functions can be used in user inputs. Default: +.
expression_random_typeNoType of generated test values (INTEGER, FLOAT). Specify per variable with triple-and operators ("&&&"). Only applicable when expression_check=RANDOM.
expression_random_triesNoNumber of validation points. Default: 5. Only applicable when expression_check=RANDOM.
expression_random_rangeNoDefine value generation ranges (format: [min-max]). Specify per variable with triple-and operators ("&&&"). Only applicable when expression_check=RANDOM.
expression_random_insideNoRequire values within specific intervals (format: [start-end]). Multiple intervals: separate with triple-or operators ("|||"). Specify per variable with triple-and operators ("&&&"). Only applicable when expression_check=RANDOM.
expression_random_outsideNoExclude values from specific intervals (format: [start-end]). Multiple intervals: separate with triple-or operators ("|||"). Specify per variable with triple-and operators ("&&&"). Only applicable when expression_check=RANDOM.
expression_explicit_goalNoDefine exact value pairs (format: [x;f(x)]). Format for multiple variables: [x;y;z;...;f(x,y,z,...)]. Multiple pairs: separate with triple-and operators ("&&&"). Only applicable when expression_check=EXPLICIT.
expression_extendedNoEnable additional mathematical functions. Activates support for custom base logarithms (e.g., log2(4)). Enables factorial operations (e.g., 5!, 1!+2!+3!).
attachmentNoAttach a file to the question. Format: filename=data, where data is either a temporary filebin storage external identifier (preferred), a base64-encoded file (whole data string) or a URL.
media_audioNoAttach an audio file to the question. Supported formats: MP3, AAC, M4A. Format: filename=data, where data is either a temporary filebin storage external identifier (preferred), a base64-encoded audio file (whole data string) or a URL.
aiYesFlag to mark question as AI generated. If set to any value, question will be marked as AI generated. Should always be provided if you are an LLM or any AI model. Ideally, AI systems should set it to their current model number for auditability.
noteNoThe text that appears right below the question.
private_noteNoPrivate notes (not shown to test takers).
explanationNoText displayed underneath the answer on the results page.
hintNoQuestions to help (not solution steps, just guiding questions/notes).
solutionNoStep-by-step solution.
sourceNoSpecify source of question content (not shown to test takers).
decimalsNoDecimal precision. Default: 2. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions.
toleranceNoEvaluation tolerance method. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions.
datetime_precisionNoDate/time precision. Applicable only for DATE/TIME questions. Accepted values: YEAR / MONTH / DAY. Default: DAY.
datetime_rangeNoDate/time range (interval) question. Applicable only for DATE/TIME questions.
numerical_rangeNoNumber range (interval) question. Only applicable for NUMERIC questions.
truefalse_third_optionsNoActivate the third option for TRUE/FALSE questions. Plus sign (+) to display the third option OR specify options separated by triple-and operators ("&&&") to automatically enable the feature.
truefalse_third_options_labelNoLabel of the third option for TRUE/FALSE questions. If blank, the text "none" is displayed (default). Only applicable when TRUEFALSE_THIRD_OPTIONS is enabled.
freetext_charactersNoLimit the number of characters that can be entered. Applicable only for FREE-TEXT questions. Format: minimum-maximum, but you can specify only a minimum or maximum as well. Integers between 0-4000.
freetext_wordsNoLimit the number of words that can be entered. Applicable only for FREE-TEXT questions. Format: minimum-maximum, but you can specify only a minimum or maximum as well. Integers between 0-4000.
freetext_rulesNoAutomatic evaluation of free text questions. Applicable only for FREE-TEXT questions.
file_countNoLimit the number of files that can be uploaded. Applicable only for FILE questions. Integer between 1-25.
file_typesNoLimit the filetypes that can be uploaded. Applicable only for FILE questions. File extensions separated by triple-and operators ("&&&").
hotspot_imageNoThe image on which the points must be marked. Applicable only for HOTSPOT questions. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a temporary filebin storage external identifier (preferred), a base64-encoded image (whole data string) or a URL.
hotspot_zonesNoZones accepted as answers. Applicable only for HOTSPOT questions.
main_categoryNoThe name of the category (for which CATEGORY will be a subcategory).
tagsNoTag questions with custom user-defined tags. Use ID or code of pre-registered tags.
labelsNoCategorize questions with instance-level labels. Pre-defined values specific to each EduBase instance.
groupNoAdd a question to a question group in a Quiz set. If the group doesn't exist, it will be created automatically as a complex task with default settings. Only applicable when uploading DIRECTLY to a Quiz set. Existing group settings will not be changed when adding more questions.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
questionYesquestion identification string
Behavior3/5

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

Annotations already declare this is not read-only and not destructive. The description adds valuable context about the upsert behavior ('Publish or update') and crucial behavioral guidance about type-specific field requirements (e.g., HOTSPOT fields). However, it doesn't disclose error conditions, authentication requirements, or clarify the idempotency implications of the upsert pattern despite idempotentHint being false.

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 consists of two information-dense sentences with zero waste. The first sentence front-loads the purpose and hierarchy context; the second provides actionable guidance on parameter usage. Every word earns its place.

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 the high complexity (70 parameters) and presence of an output schema, the description appropriately focuses on high-level behavior and type-specific parameter relationships rather than enumerating fields. It could be improved by explicitly noting the required 'ai' parameter or contrasting with edubase_post_question_id, but it adequately covers the core functionality.

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?

With 100% schema coverage, the baseline is 3. The description adds significant semantic value by explaining the relationship between the 'type' parameter and other fields (e.g., 'fields named like the type of the question'), specifically highlighting that HOTSPOT questions require hotspot_zones and hotspot_image. This pattern guidance is not evident from the schema alone.

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 clearly states 'Publish or update a question' with specific verbs and resource. It effectively distinguishes from siblings like edubase_post_quiz and edubase_post_exam by explaining the hierarchy (Questions -> Quiz sets -> Exams) and defining questions as 'atomic building blocks' at the 'lowest level'.

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

Usage Guidelines3/5

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

The hierarchy explanation provides implied guidance on when to use this versus quiz/exam tools. However, it lacks explicit comparison with the sibling edubase_post_question_id tool or clarification on when to use this versus GET/DELETE question tools. The HOTSPOT example provides usage guidance but no explicit 'when not to use' guidance.

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

Install Server

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/EduBase/MCP'

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