Skip to main content
Glama

edubase_post_question

Publish or update a question in EduBase. Creates and manages the atomic building blocks for quizzes and exams.

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
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.
idYesExternal unique question identifier for question management.
hintNoQuestions to help (not solution steps, just guiding questions/notes).
noteNoThe text that appears right below the question.
pathNoPath where question will be stored in personal QuestionBase.
tagsNoTag questions with custom user-defined tags. Use ID or code of pre-registered tags. Multiple tags separated by triple-and operators ("&&&").
typeYesType of the question.
graphNoAttach a graph to the question.
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.
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.
labelNoCategorize questions with instance-level labels. Pre-defined values specific to each EduBase instance. Multiple labels separated by triple-and operators ("&&&").
videoNoEduBase video to help solve the question, revealed on demand. The video code of an existing EduBase video can be provided.
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
pointsNoMaximum points for a fully correct answer. Default: 1 point.
skillsNoDefine skills associated with the question, identified by skill identifiers. Separate multiple skills with triple-and operators ("&&&").
sourceNoSpecify source of question content (not shown to test takers).
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.
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 ("&&&").
subjectNoSubject classification for organizing questions.
categoryNoCategory, another layer of organization as seen in SUBJECT
decimalsNoDecimal precision. Default: 2. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions.
groupingNoUsed with type=choice or type=multiple-choice when incorrect options should be pulled from other questions assigned to the same grouping number. Not the same as type=grouping or the group field.
languageNoThe language of the question, in Alpha-2 code format (according to ISO 639-1).
solutionNoStep-by-step solution.
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).
toleranceNoEvaluation tolerance method. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions.
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.
difficultyNoDifficulty level of the question. Scale: 1 (very easy) - 5 (very difficult). Default: 0 (not classified).
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 ("&&&").
parametersNoParameter definitions for dynamic question generation. Separate multiple parameters with triple-and operators ("&&&"). Up to 128 parameters can be defined!
subscoringNoMethod for calculating partial credit for partially correct answers. Not applicable for CHOICE, READING and FREE-TEXT questions.
answer_hideNoControls whether correct answers are hidden on the results page.
constraintsNoDefine rules that parameter combinations must satisfy.
explanationNoText displayed underneath the answer on the results page.
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.
media_videoNoAttach a video to the question. The video code of an existing EduBase video can be provided.
options_fixNoControls the arrangement of answers and options.
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_orderNoControls whether the sequence of multiple answers matters.
hint_penaltyNoPoint deduction for using hints/solutions/videos during a test.
private_noteNoPrivate notes (not shown to test takers).
answer_formatNoDefines how to display the answer on the results page. Only applicable for FREE-TEXT questions.
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).
options_orderNoDefine exact presentation order of answers and options.
video_penaltyNoPoint deduction for video assistance used (NONE, ONCE:N%). Default: NONE.
answer_requireNoNumber of answers required for maximum score. Only applicable for questions with multiple valid answers where only a subset needs to be provided.
datetime_rangeNoDate/time range (interval) question. Applicable only for DATE/TIME questions.
freetext_rulesNoAutomatic evaluation of free text questions. Applicable only for FREE-TEXT questions.
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.
manual_scoringNoControls when to enable manual scoring. Not applicable for READING and FREE-TEXT questions.
penalty_pointsNoPoints deducted for completely incorrect answers.
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.
maximum_choicesNoMaximum number of options the test taker can select. Only applicable for MULTIPLE-CHOICE questions.
numerical_rangeNoNumber range (interval) question. Only applicable for NUMERIC questions.
parameters_syncNoControls synchronization of LIST parameter selections.
penalty_scoringNoControls how penalty points should be applied.
question_formatNoControls question text rendering.
expression_checkNoDefine how expressions should be validated (RANDOM, EXPLICIT, COMPARE). Default: RANDOM.
solution_penaltyNoPoint deduction for viewing steps of the solution (NONE, ONCE:N%). Default: NONE.
answer_indefiniteNoAllows users to add any number of input fields using + and - buttons.
datetime_precisionNoDate/time precision. Applicable only for DATE/TIME questions. Accepted values: YEAR / MONTH / DAY. Default: DAY.
expression_decimalsNoSets precision for decimal calculations. Default: 2.
expression_extendedNoEnable additional mathematical functions. Activates support for custom base logarithms (e.g., log2(4)). Enables factorial operations (e.g., 5!, 1!+2!+3!).
expression_variableNoSpecifies variable names used in expressions (separate multiple variables with &&&). Default: x.
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.
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_rangeNoDefine value generation ranges (format: [min-max]). 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.
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.
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_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.
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.

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 indicate this is a write operation (readOnlyHint=false), not idempotent, and not destructive. The description adds some value by emphasizing type-dependent parameter requirements but does not disclose authentication, rate limits, or that the 'ai' field is required for AI agents.

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 two sentences: the first clearly states the purpose, the second provides a practical guideline. It is front-loaded, efficient, and contains no unnecessary words.

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

Completeness3/5

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

Given the tool's complexity (77 parameters, type-dependent behavior), the description should mention that 'id' is always required (implying upsert behavior) and that 'ai' must be set by AI agents. The existing description covers key points but misses these important 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 description does not need to elaborate on parameters. It adds a useful hint about type-specific fields but does not significantly enhance understanding beyond the schema.

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

Purpose4/5

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

The description clearly states the verb (Publish or update) and resource (question), and provides hierarchical context. However, it does not explicitly distinguish from sibling tools like edubase_post_question_id, which likely serves a similar purpose.

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 description advises checking type-specific fields (e.g., hotspot) but lacks guidance on when to use this tool versus alternatives (e.g., edubase_post_question_id for updates or edubase_get_question for retrieval).

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