EduBase MCP Server
OfficialThe EduBase MCP Server enables AI clients (like Claude) to interact with the EduBase educational platform, managing quizzes, exams, users, classes, organizations, and more on your behalf.
Question Management
List, create, update, delete, and export quiz questions
Rich question types: multiple choice, true/false, numerical, expression, matrix, free-text, date/time, file upload, and more
LaTeX formatting, images, audio, attachments, hints, solutions, and step-by-step explanations
Dynamic/parametric questions with randomized variables and automatic grading with partial credit
Quiz Set Management
List, create, update, and delete quiz sets
Assign/remove questions and configure display modes (TEST or TURNS)
Exam Administration
Create, schedule, and manage exams (regular, championship, homework, survey)
Assign/remove users, retrieve per-user results, generate certificates, and submit AI-generated summaries
Results & Analytics
Retrieve detailed quiz play results, user performance data, and raw exam result data
User & Group Management
CRUD operations on user accounts; look up by email, username, or code
Manage groups, generate/revoke login links, and assume user identities for delegated access
Class Management
List and manage classes; assign/remove users individually or in bulk
Organization Management
Create, update, and delete organizations; manage members with permission levels; configure webhooks for event notifications (exam/quiz completions, API triggers)
Integration Management
Manage API and LMS integrations (Moodle, Canvas, D2L, Schoology, LTI); rotate API keys/secrets
Tag Management
Attach/remove tags across classes, courses, events, exams, and integrations
Deployment Flexibility
Supports stdio, SSE, and streamable HTTP transport protocols
Deployable as a remote MCP server with optional Bearer token authentication
Configurable via environment variables for Node.js, Docker, or remote deployments
Supports high-quality mathematical and scientific typesetting using LaTeX for questions, answers, and step-by-step solution materials.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EduBase MCP Servercreate a 10-question math quiz on algebra for my 9th grade class"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EduBase MCP server
This repository contains the implementation of the Model Context Protocol (MCP) server for the EduBase platform. It allows MCP clients (for example Claude Desktop) and LLMs to interact with your EduBase account and perform tasks on your behalf. It supports stdio, SSE and streamable HTTP transport protocols.

What is EduBase?
EduBase is an innovative, modular, online educational platform that makes learning more enjoyable, simpler and interactive, suitable for educational institutions or enterprises.
Why choose EduBase?
EduBase revolutionizes digital learning with its unique combination of features:
Advanced Quiz System with parametrization allowing infinite variations of the same question, real-time cheating detection, beautiful LaTeX typesetting, advanced STEM-support and automatic grading
Unified Learning Environment that centralizes all your educational content — videos, exams, documents, and SCORM modules — in one intuitive system
Enterprise-Grade Security with features like SSO integration, fine-grained access controls, comprehensive auditing, and GDPR compliance
Integration with your existing systems through LTI, comprehensive API, and custom integration options
AI-Assisted Tools, such as EduBase Assistant, that can instantly transform your existing content into interactive quizzes and assessments, or translate your materials from one language to another
From higher education institutions to corporate training departments, EduBase scales to meet your specific needs while maintaining an intuitive user experience across all devices.
Demo video
Collaboratively creating and uploading questions, scheduling exams and analyzing user results with Claude:
Obtaining your API credentials
Once logged in, on your Dashboard, search for the Integrations menu, click "add integration" and choose the type "EduBase API".
If you don't see this option, enter the MCPGITHUB activation code or feel free to contact us to request access at info@edubase.net.
Related MCP server: D2L Brightspace MCP Server
Tools
Each documented API endpoint is available as a tool, named edubase_<method>_<endpoint>. For example, the tool for the GET /user:me endpoint is named edubase_get_user_me. The tag, permission and transfer endpoints work the same way for every content type, so they share a single tool per method with a type argument (e.g. edubase_post_content_tag for POST /exam:tag, POST /quiz:tag, etc.). See our developer documentation for more information.
Toolsets
Tools are grouped into toolsets, so you can expose only the tools you need. Fewer tools use less of the model's context and make it easier for the model to pick the right one. Every toolset is enabled by default.
Toolset | Tools for |
| Temporary file uploads (always enabled) |
| Questions |
| Quiz sets, their questions, settings and grading presets |
| Exams, their settings, users, certificates and branding |
| Quiz and exam results, certificate downloads |
| Users, their names, groups and login links |
| Classes and class memberships |
| Organizations, members, departments, competencies and webhooks |
| Integrations and their keys |
| Tags and tag attachments of contents |
| User permissions on contents and ownership transfers |
| Custom metrics |
Select toolsets with a comma-separated list in EDUBASE_TOOLSETS (e.g. questions,quizzes,exams). Set EDUBASE_READONLY=true to expose only the tools that read data (the get tools, and the tools that only generate download links, like edubase_post_question_export).
Set EDUBASE_DYNAMIC_TOOLSETS=true to enable toolsets on demand: sessions start with only the critical tools, and the model enables the toolsets it needs with the edubase_enable_toolsets tool (listed with edubase_list_toolsets). This keeps the initial tool list small for clients that load every tool upfront, but needs a client that refreshes the tool list when notified about changes.
When an HTTP transport is used, clients can narrow the configuration further for their own session with the EduBase-Mcp-Toolsets, EduBase-Mcp-ReadOnly and EduBase-Mcp-Dynamic headers, or the toolsets, read_only and dynamic_toolsets query parameters (e.g. https://domain.edubase.net/mcp?toolsets=exams&read_only=true). A session can never enable toolsets or write tools that the server configuration disables.
Configuration
The MCP server can be configured using environment variables. The following variables are available:
Variable | Description | Required | Default value |
| The base URL of the EduBase API, most probably | Yes |
|
| The App ID of your integration app on EduBase, the | Not if HTTP transport is used with authentication, otherwise Yes | - |
| The Secret key of your integration app on EduBase, the | Not if HTTP transport is used with authentication, otherwise Yes | - |
| Start MCP server in HTTP mode with SSE transport. Value must be | No |
|
| Start MCP server in HTTP mode with streamable HTTP transport. Value must be | No |
|
| Comma-separated list of the enabled toolsets, or | No |
|
| Only expose the tools that read data. Value must be | No |
|
| Output schemas of the tools and structured tool results: | No |
|
| Comma-separated list of the hosting providers allowed to supply session configuration in the requests when an HTTP transport is used. Currently only | No | - |
| Start sessions with only the file upload tools and let the model enable toolsets on demand. Value must be | No |
|
| HTTP server will listen on this port if SSE or streamable HTTP transport mode is used. | No | 3000 |
| Enables OAuth 2.1 protected-resource behaviour: unauthenticated requests are rejected with | No |
|
| Public base URL of the EduBase deployment acting as the OAuth IdP. Used to advertise the authorization server in the protected-resource metadata document. | No | derived from |
| Public base URL of this MCP server (the OAuth resource indicator). Used in the | No | derived from |
| When an HTTP transport is used, the | No |
|
| Optional comma-separated allow-list of hostnames permitted as | No | - |
Use as a remote MCP server
You can use the EduBase MCP server as a remote MCP server for your MCP client. To do this, you need to host the MCP server where clients can access it, and then configure the client to connect to the server. Either start it with SSE or streamable HTTP transport mode and always use HTTPS when accessing the server remotely over the internet!
Authentication with remote servers
You can use server in two modes:
Without client authentication: In this mode, the server will not require any authentication from the client. This is useful for testing or development purposes, or in a closed network but it is not recommended for production use. For this, you have to configure the server with the
EDUBASE_API_APPandEDUBASE_API_KEYas well!With Bearer token authentication: In this mode, the server will require a Bearer token to be sent with each request. This is the recommended way to use the server in production. You can obtain the Bearer token from your EduBase account by creating an integration app and providing the App ID and Secret key in the
{app}:{secret}format, base64 encoded as a token. The server will then use this token to authenticate the client and authorize access to the API endpoints.With OAuth 2.1 (EduBase as IdP): When
EDUBASE_OAUTH=true, compatible clients (Claude Desktop, Claude.ai connectors, Cursor, ChatGPT connectors, etc.) discover the EduBase authorization server through/.well-known/oauth-protected-resource, register themselves dynamically (RFC 7591), walk the user through an EduBase consent screen, and exchange an authorization code (with PKCE S256) for an opaque access token. The MCP server forwards that token verbatim to the EduBase API, which resolves it to the auto-provisioned MCP integration, created on first consent. No App ID/Secret to copy — users just click "Connect EduBase" in their client.
Usage with Claude Desktop
For a step-by-step walkthrough, see our blog post on how to connect EduBase with Claude: The Complete MCP Integration Guide.
Using the provided EduBase MCP server
You can use the provided EduBase MCP server (if available) without any configuration, just by adding it as a remote server in your client with the URL https://domain.edubase.net/mcp (replace with the actual domain), if it supports OAuth authentication, or with the appropriate Bearer token in the Authorization header (Authorization: Bearer ${BASE64_ENCODED_TOKEN}).
Recommended for www.edubase.net users, as the server is maintained and updated by us, and you don't have to worry about hosting or configuring it. Just make sure to use the correct URL and authentication method when connecting your client.
Installing manually
Add the following to your claude_desktop_config.json:
Using Node.js
Before running the MCP server, make sure you have Node.js installed. You can download it from nodejs.org or use a package manager like brew.
{
"mcpServers": {
"edubase": {
"command": "npx",
"args": [
"-y",
"@edubase/mcp"
],
"env": {
"EDUBASE_API_URL": "https://domain.edubase.net/api",
"EDUBASE_API_APP": "your_integration_app_id",
"EDUBASE_API_KEY": "your_integration_secret_key"
}
}
}
}Or download EduBase MCP server release or clone the repository and run npm run build to build the server. Do not forget to adjust /path/to/dist to the actual directory and configure the environmental variables!
{
"mcpServers": {
"edubase": {
"command": "node",
"args": [
"/path/to/dist/index.js"
],
"env": {
"EDUBASE_API_URL": "https://domain.edubase.net/api",
"EDUBASE_API_APP": "your_integration_app_id",
"EDUBASE_API_KEY": "your_integration_secret_key"
}
}
}
}Using Docker
Before running the MCP server, make sure you have Docker installed and is running. You can download it from docker.com or use a package manager. Do not forget to configure the environmental variables!
{
"mcpServers": {
"edubase": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"EDUBASE_API_URL",
"-e",
"EDUBASE_API_APP",
"-e",
"EDUBASE_API_KEY",
"edubase/mcp"
],
"env": {
"EDUBASE_API_URL": "https://domain.edubase.net/api",
"EDUBASE_API_APP": "your_integration_app_id",
"EDUBASE_API_KEY": "your_integration_secret_key"
}
}
}
}Installing via remote MCP server
You can use the provided EduBase MCP server (if available) as a remote server. We recommend Base64 encoding your EDUBASE_API_APP and EDUBASE_API_KEY and using it in as a Bearer token in the Authorization header (Authorization: Bearer ${BASE64_ENCODED_TOKEN}).
{
"mcpServers": {
"edubase": {
"command": "npx",
"args": [
"mcp-remote",
"https://domain.edubase.net/mcp",
"--header",
"Authorization: Bearer ${EDUBASE_API_APP}:${EDUBASE_API_KEY}"
]
}
}
}Installing via Smithery
To install EduBase MCP server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @EduBase/MCP --client claudeDevelopment
Run npm test to build the server and check the tool listing: the size budgets of the tool list and the server instructions, the tool descriptions, the toolset, read-only and dynamic toolsets modes, and the configuration handling of the HTTP transport. When new tools exceed a budget, shorten their schemas or raise the budget in test/server.test.mjs deliberately, as every client pays for the tool list in every session.
Contact
Website: www.edubase.net
Developer Documentation: developer.edubase.net
Email: info@edubase.net
Available Tools
138 toolsedubase_delete_class_membersADestructiveIdempotentInspect
Remove users from a class by their user identification strings.
| Name | Required | Description | Default |
|---|---|---|---|
| class | Yes | class identification string | |
| users | Yes | comma-separated list of user identification strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructiveHint=true坍 readOnlyHint=false and idempotentHint=true, so the safety profile is known. The description adds no extra behavioral context beyond the basic 'Remove users' action, such as what happens to related assignments or permissions. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no filler. It leads with the verb and resource, then specifies the input format, making it easy to scan and parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter destructive tool with no output schema, the description is mostly complete. Combined with the annotations and schema, an agent can understand what the tool does and what arguments to supply. It lacks explicit guidance on side effects, but that is adequately covered by destructiveHint and idempotentHint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('class' and 'users') are already documented. The description's phrase 'by their user identification strings' only reiterates what the schema already states about the 'users' parameter, adding no new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Remove' with a clear resource 'users from a class' and a method 'by their user identification strings'. This unambiguously distinguishes it from sibling operations like edubase_post_class_members (adds users) and edubase_get_class_members (lists members).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or comparison with alternatives is provided. The purpose is implied by the name and description, but the agent is not told that this is the counterpart to edubase_post_class_members or when to prefer it over edubase_delete_user_classes. No exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_content_permissionBDestructiveIdempotentInspect
Remove a permission level of a user from a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material, tag or video).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| user | Yes | user identification string | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) | |
| permission | Yes | permission level (view / report / control / modify / grant / admin), finances is only available for events |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| content | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description aligns with them (no contradiction). However, the description adds no behavioral context beyond the annotations — it doesn't disclose reversibility (re-adding via post_content_permission), behavior when the permission doesn't exist (despite idempotentHint), or downstream effects of revoking a user's access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler — the verb and object come first, followed by the content-type list. The enumeration is slightly redundant with the schema enum, which keeps it from a 5, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 4-parameter tool with 100% schema coverage, an output schema, and safety-relevant annotations, parameter-level completeness is satisfied. The residual gaps are operational: no statement about what happens when the last permission is removed, whether removal is reversible, or any caveats about permission hierarchy. Adequate but with clear behavioral gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The prose enumeration of content types mirrors the schema's type enum and adds no format or syntax details beyond it. The 'finances only for events' caveat is already in the schema's permission property, so the description contributes nothing beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') with a specific resource ('a permission level of a user from a content') and enumerates all ten supported content types. It clearly differentiates from the sibling tools edubase_post_content_permission and edubase_get_content_permission by verb and direction of operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus the post/get permission siblings, and no prerequisites are stated (e.g., whether the permission must currently exist, or whether removal is the right operation versus downgrading a permission). The only usage signal is the verb in the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_content_tagADestructiveIdempotentInspect
Remove a tag from a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video). The tag itself is kept.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | tag identification string | |
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tag | Yes | |
| content | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint and readOnlyHint, and the description adds the specific behavioral detail that the tag itself is retained after removal, which is not evident from the annotations. This provides meaningful extra context about the operation's side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with the primary action front-loaded. It lists all content types efficiently and includes the essential behavioral note without any fluff or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with full schema descriptions and an existing output schema, the description covers the essential purpose and key behavioral nuance. It does not discuss error cases or prerequisites, but these are adequately implied by the annotations and schema, so the definition is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described (tag identification string, type enum with explanations, content identification). The description merely restates the content types in natural language without adding new meaning beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'a tag from a content', enumerates all supported content types, and adds the key nuance that the tag itself is kept, which distinguishes it from deleting the tag. This differentiates it from sibling tools like delete_quiz or delete_exam.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage scenario—removing a tag from a specific content type—and the 'tag itself is kept' note clarifies the operation's scope. However, it does not explicitly mention when to use this tool versus adding a tag (post_content_tag) or listing tags, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_examADestructiveIdempotentInspect
Delete an exam, or archive it when the user is not allowed to delete it. Confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the archive fallback and the user-confirmation requirement, which are not present in the annotations (which only state destructiveHint, idempotentHint, readOnlyHint). This is meaningful behavioral context. It doesn't detail reversibility or related-data effects, but annotations already cover the destructive/idempotent profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the primary action is front-loaded and the conditional behavior is stated in one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with annotations carrying the safety profile, the description covers the action, the fallback, and the confirmation requirement. The absence of an output schema and lack of detail on archive vs. delete response are minor gaps for this simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the only parameter ('exam identification string'). The description does not add format or source details for the exam identifier, but with full schema coverage the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('an exam'), and goes further by specifying the conditional fallback ('archive it when the user is not allowed to delete it'). This clearly differentiates it from sibling delete tools that target exam subresources (e.g., edubase_delete_exam_autologin, edubase_delete_exam_certificates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ('Delete an exam') and a conditional alternative ('archive it when the user is not allowed to delete it'), plus a required precondition ('Confirm with the user first'). It does not name sibling alternatives, but no other sibling deletes the exam itself, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_exam_autologinADestructiveIdempotentInspect
Disable automatic login for an exam. The PIN code and the shortlink of the exam are removed as well.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior (destructiveHint: true), and the description adds valuable specifics: 'The PIN code and the shortlink of the exam are removed as well.' This discloses concrete side effects beyond the generic annotation, giving the agent a clearer picture of the operation's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences: the first states the core action, the second adds the critical side effect. There is no redundant or extraneous information, making it efficiently structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the combination of description, annotations, and parameter schema covers the essential operational aspects. The description adequately explains the primary effect and key side effects, though it does not mention how to re-enable automatic login or any permission prerequisites, which are minor omissions given the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'exam' is fully described in the schema as 'exam identification string', so schema description coverage is 100%. The tool description does not add any additional parameter semantics, which aligns with the baseline score for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Disable automatic login for an exam' and specifies the side effect of removing the PIN code and shortlink. This distinguishes it from siblings like edubase_post_exam_autologin and edubase_get_exam_autologin, leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool or mention alternatives, such as edubase_post_exam_autologin for enabling login. However, the tool's specific name and action make its use case reasonably implicit, providing minimal guidance beyond the operation itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_exam_brandingADestructiveIdempotentInspect
Remove the branding image and color from an exam.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, covering the mutation and repeat-safety aspects. The description adds specificity about what is removed (branding image and color), which is useful beyond the annotations. However, it doesn't disclose potential side effects, error behavior, or authentication requirements, but these are less critical given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the action and object. It is front-loaded with the core behavior and contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter, no output schema, and annotations covering destructive/idempotent behavior, the description is sufficiently complete. It states the exact scope (branding image and color) and the target (exam). While it doesn't mention the response format, that's not required without an output schema, and the essential information for invoking the tool correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter 'exam', describing it as 'exam identification string'. The description does not add any further meaning to the parameter beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Remove') and resource ('branding image and color') targeted at an exam. It distinguishes itself from sibling tools like edubase_get_exam_branding (retrieval) and edubase_post_exam_branding (set/update) by specifying the removal action, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It doesn't mention that get_exam_branding is for viewing or post_exam_branding for setting, nor does it state any prerequisites or exclusions. The usage is implied by the verb but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_exam_certificatesADestructiveIdempotentInspect
Stop issuing certificates for an exam. The configuration itself is kept, so the certificates can be enabled again later with edubase_post_exam_certificates. The already issued certificates are not revoked. The settings cannot be changed while the exam is locked.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| notes | No | |
| renew | No | |
| text1 | No | |
| text2 | No | |
| title | No | |
| preset | No | |
| enabled | Yes | |
| language | No | |
| timezone | No | |
| text_date | No | |
| configured | Yes | |
| email_send | No | |
| expiration | No | |
| show_custom | No | |
| show_result | No | |
| show_serial | No | |
| custom_fields | No | |
| hide_timezone | No | |
| result_format | No | |
| serial_format | No | |
| serial_prefix | No | |
| branding_image | No | |
| branding_line1 | No | |
| branding_line2 | No | |
| branding_line3 | No | |
| branding_line4 | No | |
| manual_renewal | No | |
| show_signature | No | |
| signature_left | No | |
| signature_user | No | |
| show_expiration | No | |
| signature_right | No | |
| signature_stamp | No | |
| branding_edubase | No | |
| serial_separator | No | |
| supervisors_only | No | |
| grading_threshold | No | |
| custom_user_fields | No | |
| serial_index_digits | No | |
| show_custom_branding | No | |
| signature_left_image | No | |
| signature_left_line1 | No | |
| signature_left_line2 | No | |
| signature_left_line3 | No | |
| signature_left_line4 | No | |
| signature_right_image | No | |
| signature_right_line1 | No | |
| signature_right_line2 | No | |
| signature_right_line3 | No | |
| signature_right_line4 | No | |
| download_automatically | No | |
| show_birthdate_birthplace | No | |
| automatic_renewal_approval | No | |
| expiration_notification_emails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds crucial context: the configuration is kept, already issued certificates are not revoked, and the lock constraint prevents changes. These are important side effects not covered by annotations. The description does not contradict annotations; it complements them. It provides a clear behavioral model beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each carrying meaningful information. The first sentence states the primary action, the second explains the reversible nature and points to the alternative tool, and the third covers side effects and a constraint. No redundant phrases or filler. The most critical information is front-loaded. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers all essential aspects: what it does, side effects, reversibility, and a usage constraint. The annotations provide destructive and idempotent hints, and the description fills in the behavioral details. Nothing an agent needs to decide whether to call this tool and how it behaves is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'exam' described as 'exam identification string'. The description adds no additional parameter semantics, but since the schema is fully descriptive, the baseline of 3 applies. The parameter is simple and self-explanatory; no further clarification is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear, specific verb and resource: 'Stop issuing certificates for an exam.' It immediately distinguishes this from other certificate-related tools by explaining the configuration is kept and certificates can be re-enabled later via edubase_post_exam_certificates. It also clarifies it does not revoke already issued certificates, which differentiates it from potential revocation tools. This is unambiguous and fully differentiates from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names edubase_post_exam_certificates as the way to re-enable issuance, providing a clear alternative. It also states the lock constraint ('settings cannot be changed while the exam is locked'), which informs when the tool cannot be used. However, it does not explicitly contrast with tools that revoke certificates or with a full exam deletion, but the context is sufficient. The usage guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_exam_fieldsADestructiveIdempotentInspect
Remove every custom field of an exam. The built-in name, email address and phone number fields are kept, use edubase_post_exam_fields to turn those off. The values the examinees already entered are kept, but they are not shown anymore. The view_results_identifier setting of the exam is cleared as well.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite the annotations already indicating destructive and idempotent behavior, the description adds valuable context beyond them: it states that built-in fields are kept, that examinee-entered values are retained but hidden, and that the view_results_identifier setting is cleared. These are nontrivial side effects that the annotations do not convey. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each delivering a distinct piece of information: primary action, built-in field exceptions with a pointer to the alternative, data retention behavior, and settings clearance. It is front-loaded with the core action and contains zero filler. Ideal length for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description completely covers the tool's effects: what is removed, what is kept, what happens to existing values, and what settings are affected. Given only one parameter and no output schema, no additional context is needed for an agent to invoke the tool correctly. The annotations cover the destructive nature, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single 'exam' parameter, so the schema already fully documents the parameter. The description does not add any extra semantic detail about the parameter itself (e.g., format or constraints). Baseline 3 is appropriate since the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Remove every custom field of an exam.' It clearly states the scope (all custom fields), differentiates from related tools like edubase_post_exam_fields by specifying what is kept vs. what is removed, and notes the side effect on view_results_identifier. This leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative tool for a different use case: 'use edubase_post_exam_fields to turn those off' (the built-in fields). This provides clear when-to-use and when-not-to-use guidance, telling the agent that this tool is for removing custom fields while preserving built-in ones, and directing to the sibling for the opposite need.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_exam_usersADestructiveIdempotentInspect
Remove users from an exam by their user identification strings.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| users | Yes | comma-separated list of user identification strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the destructive nature is disclosed. The description adds no further behavioral context (e.g., whether removal is permanent, cascades to results, or generates notifications), but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler; the core action and parameter basis are both stated. Perfectly sized for the simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple two-parameter deletion operation with full schema coverage and annotations indicating destructive and idempotent behavior. The description, combined with the schema and annotations, gives an agent everything needed to invoke it correctly; no output schema is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions: 'exam identification string' and 'comma-separated list of user identification strings'. The description repeats the notion of 'user identification strings' but adds no new semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove users from an exam by their user identification strings' uses a specific verb ('remove') and resource ('exam users'), and clarifies the selector. This clearly distinguishes it from sibling tools like edubase_delete_exam (deleting the whole exam) or edubase_post_exam_users (adding users).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for removing users from an exam, but it does not explicitly state when to prefer this tool over alternatives such as edubase_post_exam_users (adding users) or edubase_delete_exam (deleting the entire exam). The context of the name and sibling list makes the intended use inferable, but the description itself provides no explicit guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_filebin_uploadADestructiveIdempotentInspect
Delete an uploaded temporary file and/or its upload link, identified by the filebin identifier returned by edubase_post_filebin_upload.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | external unique filebin identifier of the uploaded file or temporary file upload link |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive (destructiveHint: true) and idempotent (idempotentHint: true). The description adds that it deletes 'an uploaded temporary file and/or its upload link', clarifying the dual scope and the temporary nature of the resource. This goes slightly beyond the annotation hints, providing useful context without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that leads with the verb and object, states the identifier source, and avoids any filler. Every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter and no output schema, the description covers what is deleted, how the target is identified, and the relationship to the upload endpoint. It does not explain error handling or permission requirements, but these are not essential for a straightforward destructive action given the annotations already indicate idempotency and destructiveness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage; the single 'id' parameter is fully described as 'external unique filebin identifier of the uploaded file or temporary file upload link'. The description reiterates this source but does not add new parameter semantics, so the baseline of 3 applies since the schema carries the meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Delete), the resource (uploaded temporary file and/or its upload link), and the identifier source (the filebin identifier returned by edubase_post_filebin_upload). It distinguishes itself from sibling delete tools by explicitly referencing the filebin upload context, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the tool operates on files identified by the return value of edubase_post_filebin_upload, which tells the agent when to use it (after an upload) and what prerequisite is needed. It does not explicitly contrast with alternatives, but the context of filebin upload/delete is clear enough to avoid confusion with other delete tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_integrationADestructiveIdempotentInspect
Remove an integration. Confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| integration | Yes | integration identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true. The description adds the important behavioral requirement of obtaining user confirmation before deleting, which is not captured by the annotations. It does not describe additional side effects, but the destructive nature is already disclosed structurally, so the description adds meaningful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no unnecessary words. The action is stated first, followed by the critical safety instruction. Every sentence contributes meaning, and the structure is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with annotations covering safety and idempotency, this description is nearly complete. The only missing context is what happens after deletion or whether there are any cascading effects, but the destructiveHint annotation already communicates the risk. Overall, the agent has enough information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'integration' parameter already documented as an 'integration identification string.' The description itself adds no additional parameter-level detail. Since the schema fully covers parameter semantics, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Remove an integration.' This is direct and unambiguous, distinguishing it from sibling tools like edubase_get_integration, edubase_post_integration, and edubase_patch_integration. It is slightly redundant with the tool name since 'delete' and 'remove' are synonyms, but it still clearly conveys the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit usage requirement: 'Confirm with the user first.' This tells the agent when it is appropriate to invoke the tool and implies a prerequisite before deletion. It does not discuss alternatives or explicitly contrast with related integration tools, but for a destructive operation the confirmation guidance is the most critical usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_organizationADestructiveIdempotentInspect
Remove an organization. Confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| organization | Yes | organization identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint and readOnlyHint, so the description does not need to restate those. It adds the behavioral requirement to confirm with the user first, but it does not disclose what happens to dependent data, whether deletion is reversible, or what side effects may occur. It contradicts no annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core purpose and a critical confirmation requirement with no filler. The structure is minimal and appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete operation with complete schema coverage and annotations indicating destructive behavior, the definition covers the essential invocation details. The only notable gap is the absence of any statement about cascading consequences or what specifically happens to associated organization data, but the confirmation instruction mitigates the risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'organization' has full schema description coverage as 'organization identification string,' so the schema carries the semantic weight. The description adds no additional parameter-level meaning, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Remove an organization.' This clearly distinguishes it from sibling tools that delete subresources such as organization departments, members, or webhooks. Even though the first phrase repeats the annotation title, the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction to 'Confirm with the user first' is useful operational guidance for a destructive action, but the description does not explicitly state when to choose this over alternatives like deleting an organization department or member. Tool selection must be inferred primarily from the resource name rather than from explicit usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_organization_departmentADestructiveIdempotentInspect
Remove department from an organization. Members of the department are left without a department and lose the permissions and competencies given by it, departments below it are moved one level up.
| Name | Required | Description | Default |
|---|---|---|---|
| department | Yes | name of the department (or its external identifier if no department has this name) | |
| organization | Yes | organization identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and idempotentHint=true. The description adds substantial behavioral context: members are left without a department, lose permissions and competencies, and sub-departments are moved one level up. This goes beyond the annotations and is critical for an agent to understand the destructive consequences before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and contains no redundant information. Every clause adds value, particularly the side-effect details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete operation with two parameters and no output schema, the description covers the essential consequences. It does not mention reversibility, error behavior if the department is not found, or required permissions, but these are partially covered by annotations and not strictly necessary. A small gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have clear descriptions. The tool description does not add parameter-specific semantics beyond what the schema already provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Remove department from an organization.' It clearly distinguishes from sibling tools like delete_organization (removes whole org) and delete_organization_members (removes members) by naming the department as the target. The resource and action are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one wants to remove a department, and the side effects provide context. However, it does not explicitly mention when to use this tool versus alternatives such as delete_organization or patch_organization_department, nor does it offer exclusions. The usage context is clear but not explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_organization_membersADestructiveIdempotentInspect
Remove users from an organization by their user identification strings.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | comma-separated list of user identification strings | |
| organization | Yes | organization identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description aligns with these. It adds no extra behavioral context beyond the action itself, such as side effects or prerequisites. With annotations covering the safety profile, the description contributes minimal additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that front-loads the action and resource. Every word earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter destructive operation with no output schema, the description is adequate. Annotations cover the destructive and idempotent nature. It doesn't mention irreversible side effects, but those are implied by destructiveHint and the clear 'Remove' action. The description is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters described in the schema. The description's mention of 'user identification strings' simply restates the users parameter's schema description. No new semantic information is added beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Remove), the target resource (users from an organization), and the input method (by user identification strings). This distinguishes it from sibling tools like edubase_delete_class_members (different scope) and edubase_post_organization_members (opposite action). No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need to remove users from an organization) but does not explicitly state when not to use it or mention alternatives. It provides clear context but lacks exclusions or comparisons to similar deletion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_organization_webhookADestructiveIdempotentInspect
Remove a webhook from an organization, no more notifications are sent to its endpoint. Use edubase_patch_organization_webhook to only disable it.
| Name | Required | Description | Default |
|---|---|---|---|
| webhook | Yes | webhook identification string | |
| organization | Yes | organization identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true. The description adds meaningful context beyond these flags by specifying the effect on notifications: 'no more notifications are sent to its endpoint', and by contrasting removal with disabling. It does not explicitly state irreversibility or recreation requirements, but the destructive annotation plus the contrast with patch covers the essential behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action and consequence are front-loaded in the first sentence, and the alternative tool is given in the second. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter delete operation with annotations covering destructive and idempotent behavior, the description is complete. It states what the tool does, its effect, and the relevant alternative. No output schema exists, so return-value documentation is not required, and the low complexity means nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% description coverage for both parameters, each described as an 'identification string.' The tool description does not add extra meaning about parameter format, validation, or relationships, so it does not exceed the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Remove a webhook from an organization', and clearly states the behavioral consequence, 'no more notifications are sent to its endpoint.' It also distinguishes itself from the sibling by explicitly naming edubase_patch_organization_webhook as the alternative for merely disabling, so an agent can differentiate the tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: use this tool for removal and edubase_patch_organization_webhook when the intent is 'only disable it.' This directly addresses when to choose this tool versus the closest alternative, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_questionADestructiveIdempotentInspect
Permanently delete a Quiz question, identified by its external unique question identifier. This cannot be undone, confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | external unique question identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, but the description adds that the deletion is permanent and cannot be undone, and requires user confirmation. This adds behavioral context beyond the annotations, though it does not elaborate on side effects or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The action is front-loaded, followed by irreversibility and confirmation guidance. Every sentence contributes necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive tool with no output schema, the description covers the core purpose, irreversibility, and user confirmation. There is no missing information an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the id parameter. The description does not add any additional parameter semantics beyond what is in the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and the resource 'Quiz question', and specifies it is identified by an external unique question identifier. This is specific and unambiguous, distinguishing it from deleting a quiz or other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit instruction to confirm with the user first, which is important for a destructive action. However, it does not mention when to use this tool versus alternatives like edubase_delete_quiz_questions, so it lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_quizADestructiveIdempotentInspect
Delete a Quiz set, or archive it when the user is not allowed to delete it. Confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses two behavioral traits not captured in the annotations: the fallback to archiving when deletion is not allowed, and the requirement to confirm with the user first. Annotations already indicate destructiveHint=true, readOnlyHint=false, and idempotentHint=true, but the description adds meaningful context about the conditional behavior (archive vs. delete) and the user-confirmation step. This adds value beyond the structured metadata without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences that front-load the primary action ('Delete a Quiz set') and immediately follow with the key fallback and the confirmation requirement. Every word earns its place; there is no fluff or redundancy. It is well-structured for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema) and the annotations covering destructive/read-only/idempotent behavior, the description is fairly complete. It explains what the tool does, the fallback behavior, and the confirmation requirement. It does not describe the return value or post-deletion effects, but with no output schema, that is not required. It also doesn't explain how to obtain the quiz ID, but that is presumably available from other tools (e.g., edubase_get_quiz). Overall, the description is adequate for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the single parameter 'quiz' as 'Quiz identification string', which is minimal but sufficient given 100% schema coverage. The tool description does not add any additional parameter semantics, such as format, how to obtain the ID, or expected values. Since the schema already covers the parameter, a baseline of 3 is appropriate; the description adds no extra value for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary function: 'Delete a Quiz set', with a specific resource (Quiz) and a clear verb. It also mentions a fallback action ('or archive it when the user is not allowed to delete it') and a required precondition ('Confirm with the user first'), which distinguishes it from read/update tools like edubase_get_quiz and edubase_patch_quiz. The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: delete a quiz, with a fallback to archiving when deletion is not permitted, and it explicitly instructs to confirm with the user first. This is a strong guideline for when to invoke the tool. However, it does not explicitly exclude other delete tools (e.g., edubase_delete_quiz_questions) or mention when not to use it, though the tool name largely disambiguates. The confirmation step is a notable usage rule that goes beyond the annotations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_quiz_grading_presetADestructiveIdempotentInspect
Remove a custom grading preset. The global presets, the presets of the organizations, and the presets that are still used by a Quiz set or an exam cannot be removed.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | grading preset identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint and idempotentHint, and the description adds concrete failure conditions: global presets, organization presets, and presets in use by a Quiz or exam cannot be deleted. This goes beyond the structured fields by explaining the boundaries of the deletion behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the action verb and object front-loaded and the constraints in a compact second sentence. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete operation, annotations supply the destructive/idempotent profile and the description supplies the key constraint set. The agent has everything needed to select the tool, provide the preset ID, and predict failure conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'preset' is fully documented in the schema as 'grading preset identification string', and the description doesn't add any further syntax, format, or source guidance. With 100% schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Remove a custom grading preset.' The qualifier 'custom' differentiates this deletion from global or organization presets and from sibling tools such as get_quiz_grading_preset, post_quiz_grading_preset, and patch_quiz_grading_preset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear scope by listing three categories that cannot be removed, which tells the agent when the tool will fail. It does not explicitly name alternative tools or route to get/patch operations, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_quiz_questionsADestructiveIdempotentInspect
Remove question(s) from a Quiz set, or one of its question group.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string | |
| group | No | question group title | |
| questions | Yes | comma-separated list of question identification strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds the context that removal can target a specific group, but it does not disclose other behavioral traits like whether removal is permanent or what happens to the question entity itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the action and scope with no redundant words. It is front-loaded with the verb and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the basic operation, it lacks details about return values (no output schema), reversibility, or effects on dependent objects. For a destructive tool, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions for each parameter. The tool description does not add further meaning, such as how to obtain the identifiers or the format required, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Remove' and the resource 'question(s) from a Quiz set, or one of its question group', which clearly distinguishes it from sibling tools like edubase_delete_question (which likely deletes the question entity entirely). The scope is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as edubase_delete_question or other delete tools. It does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_quiz_results_playADestructiveIdempotentInspect
Archive or forget the result of a Quiz play. An exam result is archived: it disappears from the result lists and the reports of the exam, but it is kept and can be restored by adding the archived user back to the exam. A result outside of an exam is forgotten: the play is detached from the user and only kept for the statistics. Exam results can only be archived when archiving is enabled for the exam (see the archive setting of edubase_post_exam_settings), and only the current result of the user can be archived. Results outside of an exam can only be forgotten by administrators.
| Name | Required | Description | Default |
|---|---|---|---|
| play | Yes | Quiz play identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with destructiveHint=true in the annotations, the description adds substantial nuance: archiving makes the result disappear from lists/reports but keeps it restorable by adding the user back; forgetting detaches the play from the user but keeps it for statistics. It also discloses admin-only requirement for non-exam results. This goes well beyond a raw destructive flag and gives an accurate mental model of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, each essential: main purpose, the two behavioral branches, the archive-enabling prerequisite, the current-result restriction, and the admin-only restriction. The prose is dense but well-structured, with no fluff or redundant restatement of the title/name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully equips an agent to invoke the tool correctly: it explains what happens in both exam and non-exam scenarios, names the prerequisite setting and its source, notes the current-result limitation, and states permission requirements. Given no output schema exists, the state-change explanation is sufficient; there are no obvious missing critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of the parameter with 'play' described as 'Quiz play identification string.' The description does not enrich the parameter's meaning (e.g., how to obtain the play ID or expected format), so the schema does the heavy lifting. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Archive or forget the result of a Quiz play,' providing a clear verb (archive/forget) and specific resource (a Quiz play's result). It then explains two distinct outcome modes (exam result vs. outside exam), making it unambiguous what the tool does and distinguishing it from generic delete_quiz or delete_exam tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage constraints: exam results can only be archived when the archive setting is enabled (referencing edubase_post_exam_settings), only the current result can be archived, and non-exam results can only be forgotten by administrators. These communicate when the tool is applicable. However, it does not explicitly point to an alternative tool for a comparable action, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_userADestructiveIdempotentInspect
Delete a user account. Only the users created through the API or generated by the current user can be deleted. Confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false; the description adds value beyond that by specifying which users are eligible for deletion and instructing confirmation with the user first. It does not elaborate on irreversible data loss or what happens to related account data, but the destructive hint covers the core risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The action is front-loaded and both additional sentences carry useful constraints that an agent needs before invoking a destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with no output schema, the description gives the action, eligibility restriction, and a safety confirmation instruction. It is slightly thin on what the deletion entails beyond the account record, but the annotations cover destructiveness and the simple schema keeps the context manageable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers the single parameter (user, 'user identification string') at 100%, so the schema carries the semantic load. The description adds no additional format, source, or resolution details for the user identifier, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Delete a user account.' This clearly distinguishes it from sibling tools that target related but different resources such as delete_user_login, delete_user_classes, and delete_user_organizations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit eligibility conditions ('Only the users created through the API or generated by the current user can be deleted') and a required confirmation step, which tells the agent when the tool is applicable and when not. No alternative is named, but the exclusion is explicit enough to route correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_user_classesBDestructiveIdempotentInspect
Remove a user from classes by their class identification strings.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string | |
| classes | Yes | comma-separated list of class identification strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, non-read-only, and idempotent, so the description does not need to repeat those traits. It adds only the scoping detail that classes are addressed by identification strings; it does not disclose consequences such as whether user accounts remain intact or whether the removal is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. Every word earns its place, and the core action is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity operation with two well-documented parameters and no output schema, the description is largely sufficient to invoke correctly. The main omission is usage guidance relative to the many sibling membership endpoints, which is already captured in the usage score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters ('user identification string' and 'comma-separated list of class identification strings'), and the description's phrase 'by their class identification strings' mirrors that documentation. With 100% schema coverage, the description does not add meaningful parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Remove' with a clear resource ('a user from classes') and specifies the input key ('class identification strings'). It is unambiguous on its own, but it does not explicitly differentiate itself from sibling tools like edubase_delete_class_members or edubase_post_user_classes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to choose this tool over the related membership endpoints (e.g., edubase_delete_class_members or edubase_post_user_classes). It states only what the tool does, leaving the agent to infer its context from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_user_loginBDestructiveIdempotentInspect
Invalidate a login link previously generated for a user.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | generated login link to be invalidated | |
| user | Yes | user identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true, indicating mutation. However, the description does not disclose potential side effects, such as whether the link becomes immediately invalid, whether the user's other login links are affected, or whether this is reversible. With no additional behavioral context, the description adds little beyond the annotations, and the destructive nature is not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action. It contains no filler or redundant information, making it efficient and appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a simple two-parameter tool with full schema coverage and no output schema. However, given destructiveHint=true and openWorldHint=true, additional context about the effects and prerequisites would improve completeness. The tool's role in the larger login management workflow is not mentioned, but the core operation is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a short description ('generated login link to be invalidated' and 'user identification string'). The description does not add further nuance, such as the format of the URL or user string, or any constraints like whether the user must match the link's user. Baseline 3 is appropriate since the schema already documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Invalidate a login link') and the resource ('previously generated for a user'). It distinguishes the tool from siblings like edubase_post_user_login (which generates) and edubase_get_user_login (which retrieves), making the purpose unambiguous. However, it could explicitly mention the user association to differentiate from other delete tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when a login link exists and needs to be invalidated. It does not explicitly state when to use this tool versus alternatives, such as edubase_delete_exam_autologin or edubase_post_exam_users_generate. No exclusions or alternative conditions are provided, leaving the agent to infer based on tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_delete_user_organizationsBDestructiveIdempotentInspect
Remove a user from organizations by their organization identification strings.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string | |
| organizations | Yes | comma-separated list of organization identification strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and idempotentHint=true, but the description does not add context about the destructive nature (e.g., irreversible removal, related data loss) or mention idempotency. No additional behavioral information beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no unnecessary words. It is appropriately front-loaded with the action and resource. Perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple two-parameter tool, no output schema, and full schema coverage, the description is minimal but sufficient for basic use. However, it does not clarify the effect (e.g., whether all memberships are removed) or any constraints, so it's just adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are documented in the schema. The description adds no extra detail beyond 'organization identification strings' and 'user identification string', which mirrors the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove) and the resource (user from organizations), with the specific identifier type (organization identification strings). It distinguishes from sibling tools like post_user_organizations by being the delete counterpart, though it doesn't name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used when a user needs to be removed from organizations, but it does not provide explicit when-to-use vs alternatives or mention any prerequisites (e.g., that the user must already be a member). Context signals have no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_filebinAInspect
Upload a local file or a file from a URL to the EduBase temporary file storage with a link requested from the API in advance.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | file URL or local (absolute) file path on user computer | |
| filebin | Yes | valid EduBase temporary filebin URL | |
| filename | Yes | the original file name (including extension) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation and non-destructive behavior. The description adds the prerequisite of requesting a link in advance but does not disclose file size limits, overwrite behavior, or error handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that conveys the core purpose and one key prerequisite. Slightly awkward phrasing ('with a link requested from the API in advance') but overall efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains input well but lacks any mention of output or return value. Without an output schema, the AI is left guessing what the tool returns. Adequate for a basic upload operation but missing completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions already exist. The description adds no significant new meaning beyond the schema, only restating that source can be local file or URL.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Upload a local file or a file from a URL to the EduBase temporary file storage', specifying the action and target. It also mentions the prerequisite of having a filebin URL, distinguishing it from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies that a filebin URL must be obtained beforehand but does not explicitly compare to sibling tools like edubase_post_filebin_upload. No 'when to use' or 'when not to use' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_classARead-onlyIdempotentInspect
Get the details of a class: title, external identifier, and start and end dates.
| Name | Required | Description | Default |
|---|---|---|---|
| class | Yes | class identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | No | |
| class | Yes | |
| start | No | |
| title | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations fully cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the read-only, non-destructive behavior is already known to the agent. The description adds context about what the returned details include but does not disclose error behavior, auth needs, or other behavioral traits beyond the annotated posture. This matches the calibration anchor where annotations carry the burden and the description adds modest scope context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with verb and resource followed by a compact field list. Every word earns its place; nothing is redundant or extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read operation with a full annotation profile and an output schema present, nothing needed for correct invocation is missing. The description carries the selection-relevant information, and the output schema covers return-value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the 'class' parameter is documented as 'class identification string'. The description adds no additional meaning for the parameter itself; it only enumerates the returned fields, so the baseline 3 for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with the resource 'class' and enumerates the exact payload ('title, external identifier, and start and end dates'). This distinguishes it from sibling tools like edubase_get_classes (listing), edubase_get_class_members, and edubase_get_class_assignments, which cover different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The field enumeration ('title, external identifier, start and end dates') implies this is for basic class metadata, and sibling names (get_class_members, get_class_assignments) hint at alternatives. However, there is no explicit statement of when to prefer this tool vs alternatives or any exclusions, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_class_assignmentsARead-onlyIdempotentInspect
List the assignments of a class, with their titles, links, status (INACTIVE, ACTIVE, STARTED, SUBMITTED, GRADED) and submission period.
| Name | Required | Description | Default |
|---|---|---|---|
| class | Yes | class identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| assignments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the status enum and submission period details, which is useful but doesn't disclose pagination, error behavior, or any other behavioral nuance. With annotations covering the core, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero wasted words. It states the action and the output fields efficiently, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return format is handled externally. The description covers the essential purpose and key output fields. It lacks mention of potential edge cases (e.g., empty class) but for a simple read-only list tool, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'class' is fully described in the schema as 'class identification string' (100% coverage). The description does not add further meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb 'List' and resource 'assignments of a class', and enumerates the returned fields (titles, links, status, submission period). It is unambiguous and distinct from sibling tools like get_class_members or get_class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to use this tool versus alternatives, nor any exclusions or prerequisites. It simply states what it does, leaving the agent to infer usage from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_classesARead-onlyIdempotentInspect
List owned and managed classes. Returns class identification strings, external identifiers and titles.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| classes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, openWorld, and non-destructive behavior. The description adds value by stating the exact shape of the response (identification strings, external identifiers, titles), which is behavior not captured by the annotations. No contradictions with annotations were found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary action is front-loaded, and the output details are provided in a single follow-up sentence. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only list operation with three optional parameters, all documented in the schema, and an output schema is available. The annotations cover safety and idempotency. The description provides enough context about scope and return values, so nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents all three parameters (page, limit, search) with descriptions, so schema coverage is 100%. The tool description adds no extra parameter-level guidance, which is acceptable given that the schema carries the full burden. This is a baseline score as the description does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List owned and managed classes') and clarifies the output ('class identification strings, external identifiers and titles'). This distinguishes it from sibling tools like edubase_get_class or edubase_get_user_classes by specifying the ownership/managed scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use this tool: to list classes the caller owns or manages. It does not explicitly name alternatives or exclusion conditions, but the resource scope provides sufficient context for selecting it over related class-listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_class_membersARead-onlyIdempotentInspect
List the members of a class, with their names and whether their membership is active (approved and not expired).
| Name | Required | Description | Default |
|---|---|---|---|
| class | Yes | class identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| members | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clarifies that 'active' means 'approved and not expired', adding semantic meaning beyond the readOnlyHint annotation. It also implicitly confirms a safe read operation consistent with the annotations, though it does not describe pagination or result shape (output schema exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no wasted words. It state the action, resource, and output clearly, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and an output schema, the description covers the key behavior (listing members with names and active status) and defines a term ('active') that could be ambiguous. It doesn't describe error handling or edge cases, but those are not typically required when an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but the parameter description 'class identification string' is minimal. The tool description does not elaborate on the parameter's format or source (e.g., 'use the ID from get_classes'). Therefore, it meets the baseline but adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action (list), the resource (members of a class), and the output (names and whether membership is active). It is unambiguous and distinguishes this tool as a read operation for class members, not confused with other class-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool over its many sibling tools (e.g., edubase_get_class, edubase_get_user_classes, edubase_get_class_assignments). It does not mention alternative tools or conditions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_content_permissionARead-onlyIdempotentInspect
Check if a user has a permission level on a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material, tag or video). Returns whether the user has the permission, and whether there is a permission rule with exactly these parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| user | Yes | user identification string | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) | |
| permission | Yes | permission level (view / report / control / modify / grant / admin), finances is only available for events |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| status | Yes | |
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructiveness. The description adds useful behavioral context by specifying that the tool returns both the user's permission status and whether a permission rule with exactly the given parameters exists, which aligns with and clarifies the openWorldHint. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core behavior and follow up with the exact return semantics. No filler or redundant explanation is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the read-only annotations, 100% schema coverage, and an output schema, the description is complete for an agent to invoke the tool correctly. It adds the key semantic of exact-rule matching without needing to duplicate schema or return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter is already documented with enums and descriptions. The tool description repeats the content type list but adds no meaning beyond the structured schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and resource ('permission level on a content'), enumerates all supported content types, and states the two return concepts. This clearly distinguishes it from the sibling mutation tools edubase_post_content_permission and edubase_delete_content_permission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the use case: checking whether a user has a permission level on a content item, with an explicit note that the result also indicates whether an exact permission rule exists. It does not explicitly name alternatives such as post/delete_content_permission, but the read-only framing and sibling names provide enough context for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_content_tagARead-onlyIdempotentInspect
Check if a tag is attached to a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video).
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | tag identification string | |
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tag | Yes | |
| status | Yes | |
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. The description adds no behavioral detail beyond the schema's parameter list. It doesn't state that it returns a boolean or that it's a non-mutating check, but annotations cover that. Minimal value added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, front-loaded with the verb and resource. Lists all content types without redundancy. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is an output schema, so return values are documented structurally. The description is sufficient for a simple boolean check given the annotations cover safety. It doesn't cover edge cases but no major gap is evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (type, content, tag) are documented in the schema. The description adds no extra meaning beyond clarifying via the enum's inline note ('scorm: SCORM learning material, quiz: Quiz set'). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'check' and resource 'tag attached to a content', listing all supported content types. It clearly distinguishes from siblings like get_content_tags (which likely lists all tags) and post_content_tag (which attaches a tag). However, it doesn't explicitly state the boolean return nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only existence check but doesn't mention when to prefer it over get_content_tags or post_content_tag. It doesn't state exclusions or alternatives. The openWorldHint annotation signals a read operation, but the description itself lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_content_tagsBRead-onlyIdempotentInspect
List the tags attached to a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tags | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds no further behavioral detail beyond the basic listing operation, such as pagination, sorting, or authentication requirements. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the action and scope, with no filler. It is front-loaded with the primary purpose and efficiently lists the supported content types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with two well-documented parameters and an output schema present, the description is adequate. It covers the essential content types and the purpose, though it could mention whether results are sorted or if there are any limits, but these are minor gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for both parameters (type and content) with descriptive text and an enum for type. The description adds no extra semantic nuance beyond what the schema already states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('tags attached to a content') and enumerates the valid content types, which makes the core purpose clear. It does not, however, distinguish this from the sibling edubase_get_content_tag (singular), which could plausibly retrieve a single tag for a content, leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For instance, there is no mention that edubase_get_tags lists all tags globally, or that edubase_get_content_tag (singular) might retrieve a single tag. An agent is left to infer the distinction from the plural form.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_examARead-onlyIdempotentInspect
Get the details of an exam: title, language, the Quiz set it uses, active state, status (INACTIVE, ACTIVE, PAUSED, REVIEW, EXPIRED), start and end times, deadline and Safe Exam Browser links. Use edubase_get_exam_settings for its settings.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| end | Yes | |
| exam | Yes | |
| quiz | Yes | |
| start | Yes | |
| title | Yes | |
| active | Yes | |
| secure | Yes | |
| status | Yes | |
| deadline | No | |
| language | Yes | |
| description | No | |
| seb_config_url | No | |
| seb_launch_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds behavioral context beyond that by enumerating the payload contents and clarifying that settings are excluded from this call, setting accurate expectations about what the agent will receive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the first delivers the core purpose and payload list, the second routes to the relevant sibling. No redundancy with the annotations or schema; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple 1-param read operation with rich annotations, full schema coverage, and an output schema that documents return values. The description covers purpose, scope, and the key sibling distinction; nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single 'exam' parameter is documented as 'exam identification string'. The description adds no additional parameter guidance (e.g., whether the string is an ID, slug, or UUID), so with full schema coverage the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource (details of an exam) and enumerates the exact returned fields: title, language, quiz set, active state, status, times, deadline, and Safe Exam Browser links. It also distinguishes itself from the confusable sibling edubase_get_exam_settings, which is critical given the large sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to edubase_get_exam_settings when settings are needed, providing both an alternative and the condition that selects it. This resolves the most likely source of confusion among the many exam-related tools without leaving anything to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_autologinARead-onlyIdempotentInspect
Get the automatic login configuration of an exam: whether it is enabled, the PIN code, the login and results links, and whether exam accounts are generated or registered users can join automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| pin | No | |
| url | No | |
| exam | Yes | |
| autoadd | No | |
| autojoin | No | |
| autologin | Yes | |
| results_url | No | |
| autojoin_limited | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by detailing the specific returned data (PIN, links, account behavior), which is useful context beyond the annotation hints. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose ('Get the automatic login configuration') and then lists the relevant components. Every clause contributes useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple read operation with one fully documented parameter, a rich output schema, and safety annotations. The description covers what the tool returns, and the output schema can define exact return structure. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'exam' is fully documented in the schema as 'exam identification string' (100% coverage). The description does not add further detail about the parameter, but with complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('automatic login configuration of an exam'), and enumerates exactly what the configuration contains: enabled state, PIN code, login/results links, and account generation/registration behavior. This clearly distinguishes it from sibling mutation tools like post_exam_autologin and delete_exam_autologin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is given. The description never says when to use this tool versus the post/delete autologin siblings, nor does it mention any prerequisites or when a GET is appropriate. The intended use is only implied by the verb 'Get' and the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_brandingARead-onlyIdempotentInspect
Get the branding of an exam: whether it is enabled, the type of the branding image (logo or cover) and the branding color.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| type | No | |
| color | No | |
| enabled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the specific branding attributes returned, which is useful but not additional behavioral disclosure beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the operation ('Get the branding of an exam') and then efficiently enumerates the key aspects returned. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read operation with rich annotations, a 100% schema-covered parameter, and an output schema present, this description is nearly complete. It names the resource and the expected returned fields; only an explicit pointer to sibling branding tools is missing, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'exam' is already documented in the schema as an 'exam identification string', and schema description coverage is 100%. The description mentions 'an exam' but adds no format, example, or constraint beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and names the exact resource ('branding of an exam'), then lists the precise data points returned: enabled state, image type (logo or cover), and branding color. This clearly distinguishes it from sibling operations like post_exam_branding or delete_exam_branding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by describing what is retrieved, so an agent can infer it should be called when exam branding information is needed. However, it does not explicitly mention when to choose this over related tools such as edubase_post_exam_branding or edubase_get_exam_settings, nor does it give any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_certificatesARead-onlyIdempotentInspect
Get the certificate settings of an exam. Certificates are only issued for the successful results, so they need a grading that decides whether the test was successful (see the certificates flag in edubase_get_quiz_grading_presets). Only the state of the certificates is returned when they are not enabled for the exam. When the certificates are configured by a preset, the settings of the preset are merged into the returned configuration. The certificates issued for the individual results can be looked up with edubase_get_exam_certificates_user.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| notes | No | |
| renew | No | |
| text1 | No | |
| text2 | No | |
| title | No | |
| preset | No | |
| enabled | Yes | |
| language | No | |
| timezone | No | |
| text_date | No | |
| configured | Yes | |
| email_send | No | |
| expiration | No | |
| show_custom | No | |
| show_result | No | |
| show_serial | No | |
| custom_fields | No | |
| hide_timezone | No | |
| result_format | No | |
| serial_format | No | |
| serial_prefix | No | |
| branding_image | No | |
| branding_line1 | No | |
| branding_line2 | No | |
| branding_line3 | No | |
| branding_line4 | No | |
| manual_renewal | No | |
| show_signature | No | |
| signature_left | No | |
| signature_user | No | |
| show_expiration | No | |
| signature_right | No | |
| signature_stamp | No | |
| branding_edubase | No | |
| serial_separator | No | |
| supervisors_only | No | |
| grading_threshold | No | |
| custom_user_fields | No | |
| serial_index_digits | No | |
| show_custom_branding | No | |
| signature_left_image | No | |
| signature_left_line1 | No | |
| signature_left_line2 | No | |
| signature_left_line3 | No | |
| signature_left_line4 | No | |
| signature_right_image | No | |
| signature_right_line1 | No | |
| signature_right_line2 | No | |
| signature_right_line3 | No | |
| signature_right_line4 | No | |
| download_automatically | No | |
| show_birthdate_birthplace | No | |
| automatic_renewal_approval | No | |
| expiration_notification_emails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral nuance beyond that: successful-result dependency on grading, the 'only the state' returned when disabled, and preset merging behavior. This is more than a bare read operation and gives the agent accurate expectations about the response content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences and every sentence adds distinct information: the core purpose, the grading prerequisite, the merged-configuration behavior, and the related sibling tool. It is slightly longer than minimal but remains efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with one parameter and an output schema, the description is complete. It explains the core behavior, the conditional return shape, the prerequisite grading flag, and how to access individual certificates elsewhere. Nothing necessary for calling the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single required parameter 'exam' is documented as 'exam identification string'. The description does not add additional meaning about the parameter itself, but with full schema coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the certificate settings of an exam.' It further distinguishes itself from sibling tools by clarifying that individual issued certificates belong to edubase_get_exam_certificates_user and that preset configuration comes from edubase_get_quiz_grading_presets. An agent can immediately identify what this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: certificates depend on a grading preset that determines success, the returned shape differs depending on whether certificates are enabled, and individual result certificates are handled by edubase_get_exam_certificates_user. It does not explicitly list when-not-to-use scenarios, but the sibling routing and prerequisite reference are strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_certificates_presetsARead-onlyIdempotentInspect
List the certificate presets that can be used on exams. The public presets, the owned presets and the presets of the organizations of the user are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | exam identification string, only the presets that can be used on this exam are listed, the language of the exam is used for the ordering of the presets | |
| language | No | optional language to filter the results with |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | No | |
| presets | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful behavioral context by specifying the three categories of presets returned (public, owned, user's organization presets), which tells the agent what scope to expect from the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the action and scope are front-loaded. Every clause adds information and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with an output schema and fully documented optional parameters, the description is sufficient. It covers purpose and result scope, and relies on the schema for parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully documented in the schema (100% coverage), so the baseline is 3. The description itself adds no param-specific detail beyond what the schema provides for 'exam' and 'language'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and a specific resource ('certificate presets' for exams), and clarifies the returned scope (public, owned, user's organizations). The noun phrase 'certificate presets' differentiates it from sibling tool edubase_get_exam_certificates, which deals with actual certificates rather than presets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving exam certificate presets but does not explicitly state when to use it instead of alternatives, nor mention exclusions. There is no sibling tool with the same resource, so ambiguity is low, but explicit guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_certificates_userARead-onlyIdempotentInspect
Get (the latest) certificate details for a specific exam and user.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| play | Yes | |
| user | Yes | |
| serial | No | |
| expires | No | |
| archived | Yes | |
| eligible | Yes | |
| certified | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint: false, covering the safety profile. The description adds only the 'latest' behavioral nuance; it does not describe not-found behavior or what 'certificate details' contains, but the output schema helps fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The verb and resource are front-loaded, and the parenthetical 'latest' adds meaningful nuance without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with complete parameter schemas, an output schema, and safety-related annotations, the description is nearly sufficient. The only notable omission is an explicit pointer to sibling tools for other certificate operations, but the 'specific exam and user' wording makes the intended use clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'exam' and 'user' are already documented as identification strings. The description simply restates that they identify the exam and user, adding no extra semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('get certificate details'), the scope ('for a specific exam and user'), and adds the nuance 'latest'. It is easily distinguishable from siblings like edubase_get_exam_certificates (which appears to be the collection-level variant) and edubase_post_exam_certificates_user_download (a download action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need the latest certificate details for one particular exam/user. However, it does not explicitly tell the agent to prefer other tools for retrieving all certificates or downloading certificates, leaving some sibling discrimination to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_fieldsARead-onlyIdempotentInspect
Get the user data fields of an exam. These are the built-in name, email address and phone number fields, and the custom fields the examinees fill in before they start their test.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| name | Yes | |
| Yes | ||
| phone | Yes | |
| fields | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by specifying exactly which fields are included and when they are captured ('before they start their test'), which goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action and resource are front-loaded, and the clarifying detail about built-in versus custom fields earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with one well-documented parameter, an output schema, and safety annotations, the description covers what the tool returns and the resource scope. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a 100% description of the single 'exam' parameter as 'exam identification string'. The description adds no parameter-level detail, but because schema coverage is complete, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves user data fields for an exam and enumerates what those are: built-in name/email/phone fields plus custom fields. This distinguishes it from siblings like edubase_post_exam_fields and edubase_delete_exam_fields, which perform different actions on the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case — fetching the field definitions examinees encounter — but does not explicitly state when to prefer it over alternatives or mention that modifications are handled by sibling tools. An agent can infer the purpose but receives no direct guidance about exclusions or related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_results_rawARead-onlyIdempotentInspect
Get raw results for a specific exam. Only use this if very detailed results are needed! This endpoint returns raw results, including all answers given by the user. It is not meant to be displayed to the user. This might require additional permissions!
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| users | Yes | |
| questions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds useful behavioral context: it returns all user answers, is not meant for display, and may require extra permissions. This goes beyond the schema without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the most important usage caveats. Every sentence adds actionable information without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with an output schema, the description covers the decision-relevant facts: rawness of the data, inclusion of all answers, non-display intent, and permission requirements. Nothing essential is missing for an agent to decide whether to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has full description coverage for the single 'exam' parameter, so the parameter meaning is already available. The description reinforces that the tool targets a specific exam but adds no new parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation as getting raw results for a specific exam, and adds the key distinguishing detail that it returns all answers given by the user. This separates it from related result-returning sibling tools like edubase_get_exam_results_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: use only when very detailed results are needed, do not display the output to users, and be aware that additional permissions may be required. It stops short of naming an alternative result endpoint, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_results_userARead-onlyIdempotentInspect
List the results (attempts) of a user in an exam, with times, points, attempt index, validity and whether they passed the grading. Use edubase_get_quiz_results_play for the per-question details of an attempt.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavioral context by enumerating exactly what fields the results include (times, points, attempt index, validity, pass status), which helps the agent anticipate the response. It does not mention rate limits or auth, but the annotation coverage lowers the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The main function is front-loaded, and the sibling routing is a separate, clearly marked sentence. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only listing tool with two required parameters and an output schema present, the description is complete. It states what the tool returns and how to get more granular data, so an agent has enough context to invoke it correctly. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described as 'identification string,' so the schema already defines the parameters. The description only confirms that 'exam' and 'user' are the identifiers in the context of the tool, adding no format, type, or usage details beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('List') and identifies the exact resource ('results (attempts) of a user in an exam') along with the data elements included ('times, points, attempt index, validity and whether they passed'). It also distinguishes itself from the sibling edubase_get_quiz_results_play by noting that sibling covers per-question details, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives explicit guidance: 'Use edubase_get_quiz_results_play for the per-question details of an attempt.' This tells the agent exactly which sibling to use when deeper detail is needed and implies this tool is for summary-level results. Clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_roundARead-onlyIdempotentInspect
Get the current round of an exam: its index, start time, whether it already has results and whether it is frozen. Start a new round with edubase_post_exam_round.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| round | Yes | |
| frozen | Yes | |
| results | Yes | |
| started | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering safety. The description adds value by specifying the exact fields returned, which enriches the behavioral context without contradicting annotations. No side effects are mentioned but none are expected for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states purpose and returns, the second points to the complementary sibling. No filler words, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available, the return structure is documented externally. The description covers the purpose, the key data points, and the related mutation tool. It is complete for a simple getter, though it could briefly mention that the exam parameter refers to an existing exam ID.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single 'exam' parameter with a description of 'exam identification string'. The tool description adds no further details about the parameter's format or how to obtain it, so it relies entirely on the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Get the current round of an exam') and enumerates the exact data returned (index, start time, results presence, frozen state). It also names the sibling tool for creating a new round, clearly distinguishing its purpose from edubase_post_exam_round.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use this tool (when you need the current round's status) and explicitly directs to edubase_post_exam_round for starting a new round. However, it does not contrast with other read-only exam tools like edubase_get_exam or edubase_get_exam_status, so some context on alternatives is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_examsARead-onlyIdempotentInspect
List owned and managed exams. Exams are the highest level in the EduBase Quiz hierarchy, built from Quiz sets.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| active | No | optional filter to only include active exams (if true) or inactive exams (if false) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| exams | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so no contradiction exists. The description adds useful domain context about the exam hierarchy but does not disclose additional behavioral traits such as pagination behavior, ordering, or what the response contains. Given the annotations cover the safety profile, a mid-range score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no wasted words. The primary action is front-loaded ('List owned and managed exams'), and the second sentence provides relevant domain context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list endpoint, the description combined with the fully documented input schema, annotations, and presence of an output schema is sufficient. Nothing critical is missing for an agent to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters (page, limit, active, search) clearly. The description adds no additional parameter semantics beyond the schema, placing it at the baseline for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List'), a resource ('owned and managed exams'), and differentiates from singular operations like edubase_get_exam by clearly indicating a plural list scope. The additional hierarchical context ('highest level in the EduBase Quiz hierarchy, built from Quiz sets') further clarifies what an exam is relative to other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool's purpose but does not explicitly say when to prefer this over alternatives such as edubase_get_exam (for a single exam) or edubase_get_quizes (for quiz sets). The intended use is implied rather than explicitly contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_settingsARead-onlyIdempotentInspect
Get the settings of an exam. Surveys are never graded and their results cannot be viewed later, so the grading and the results viewing settings are not returned for them. The columns of the results export cannot be configured for surveys either, only the format and the ordering of the exported file.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| archive | Yes | |
| grading | No | |
| pausable | Yes | |
| roundtime | Yes | |
| timelimit | Yes | |
| hide_grade | No | |
| export_sort | Yes | |
| hide_points | No | |
| nonblocking | Yes | |
| results_url | No | |
| export_stats | No | |
| freeze_round | Yes | |
| results_page | No | |
| view_results | No | |
| export_format | Yes | |
| export_gender | No | |
| export_points | No | |
| export_skills | No | |
| export_answers | No | |
| export_suspicion | No | |
| show_in_lasthour | No | |
| export_attendance | No | |
| grading_threshold | No | |
| view_results_start | No | |
| hide_ingame_results | No | |
| export_custom_fields | No | |
| export_finished_only | No | |
| view_results_identifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive. The description adds meaningful behavioral nuance: surveys are never graded, grading/results viewing settings are omitted for them, and results export columns cannot be configured for surveys. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is terse and well-structured: the core purpose is stated first, followed by relevant edge-case behavior for surveys. Every sentence contributes useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity, single-parameter read-only tool with a rich output schema and annotations covering safety. The description clearly explains the main behavior and important survey-specific exclusions, so an agent has sufficient context to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'exam', is fully described in the schema as 'exam identification string', so schema description coverage is 100%. The description does not add additional meaning about the parameter's format, domain, or constraints, which is acceptable because the schema already covers it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the verb and resource explicitly: 'Get the settings of an exam.' The tool name and title reinforce this, and the survey-specific caveats show it is about retrieving settings rather than mutating them. It is clearly distinguishable from mutation siblings like edubase_patch_exam_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage is for retrieving exam settings but does not explicitly state when to use this tool instead of alternatives or name any sibling for comparison. The survey caveats provide useful context but do not give when/when-not guidance relative to other available tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_skillsARead-onlyIdempotentInspect
Get the skills defined in the Quiz set used by an exam, with the identifier, title and description of each skill.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| skills | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the behavioral nuance that skills are retrieved indirectly through the exam's quiz set, which is useful context beyond the annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that begins with the action verb and directly states the resource and returned fields. There is no redundant wording, and all content earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and an output schema, the description adequately covers what the tool does and what it returns. Minor gaps, such as behavior when the exam has no quiz set, are not critical for an agent to invoke it correctly. The existence of an output schema relieves the description of explaining return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for the 'exam' parameter is 100% covered ('exam identification string'). The tool description does not add additional meaning about the parameter beyond what the schema provides; it merely reflects the same identification role. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('skills defined in the Quiz set used by an exam'), and enumerates the returned fields (identifier, title, description). It clearly distinguishes itself from the sibling tool edubase_get_quiz_skills by specifying the indirection through an exam.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool retrieves skills from the quiz set associated with an exam, implying it is the correct choice when the entry point is an exam rather than a quiz. However, it does not explicitly mention alternatives or exclusion criteria, so it stops short of a full usage guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_statusARead-onlyIdempotentInspect
Get the status of an exam, showing whether new tests can be started.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| active | Yes | |
| status | Yes | |
| modified | Yes | |
| scheduled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the specific behavior of returning a status that indicates whether new tests can start, which is useful context beyond the annotations. It does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that leads with the verb and includes the key outcome. There is no wasted wording, and it is appropriately concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and an output schema present, the description is sufficient to guide an agent. It states the purpose and the specific information returned. The output schema handles return details, and annotations cover safety. The only minor gap is lack of explicit error-case behavior, but that is not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single 'exam' parameter with the description 'exam identification string'. The tool description adds no additional meaning or format details beyond that. Since the schema fully documents the parameter, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), resource ('status of an exam'), and the key semantic ('showing whether new tests can be started'). This clearly distinguishes it from siblings like edubase_get_exam (which likely retrieves full exam details) and edubase_post_exam_status (which modifies status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage case: checking if new tests can be started. However, it does not explicitly mention alternatives or exclusions, such as 'use this instead of edubase_get_exam' or 'do not use if you need the full exam details'. Given the large set of exam-related siblings, explicit differentiation would help, but the implied usage is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_exam_usersARead-onlyIdempotentInspect
List the users assigned to an exam, with their names. Assign users with edubase_post_exam_users.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| users | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that the output includes user names and routes mutation needs to the post endpoint, which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The core purpose is stated first, and the second sentence efficiently points to the complementary write tool without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only listing tool with one fully documented parameter, an output schema, and safety annotations. The description gives sufficient orientation, including the relationship to the assignment endpoint, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'exam' has full schema coverage with a clear description ('exam identification string'). The tool description's phrase 'assigned to an exam' reinforces the parameter's role but does not add new format or constraint details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('users assigned to an exam'), and clarifies that names are included. It also implicitly distinguishes itself from sibling tools like edubase_post_exam_users by naming that tool for the assignment operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly points to edubase_post_exam_users for assigning users, which makes clear that this tool is for the read-only listing case. It provides useful context but does not spell out all exclusions or alternative read tools such as edubase_get_exam.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_integrationARead-onlyIdempotentInspect
Get the details of an integration: title, type (api, moodle, canvas, d2l, schoology, lms), whether it is active and its LTI version.
| Name | Required | Description | Default |
|---|---|---|---|
| integration | Yes | integration identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| lti | No | |
| type | Yes | |
| title | Yes | |
| active | Yes | |
| integration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds value by specifying the exact fields returned (title, type, active status, LTI version), which tells the agent what it can expect from a read operation. No contradiction; it's consistent with the read-only and non-destructive profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the purpose and the key return fields. There is no fluff or redundancy; every word contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to specify return format. It covers the tool's purpose, the specific integration it targets, and the behavioral attributes. The parameter is simple and documented. Nothing an agent needs to call this successfully is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the single 'integration' parameter has a description: 'integration identification string'). The tool description adds nothing about the parameter's format or how to construct it, so it relies on the schema. Baseline 3 is appropriate since the schema already documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), the object ('details of an integration'), and enumerates exactly what those details are (title, type with enumerated options, active status, LTI version). This leaves no ambiguity about the tool's function and distinguishes it from the plural 'get_integrations' sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly identifies that this tool fetches a single integration's details, which is sufficient to route an agent to it. It does not explicitly name alternative tools for listing or modifying integrations, but given the self-descriptive name and clear scope, an agent can infer when to use it. Lacks an explicit 'use X instead' but not critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_integration_keysARead-onlyIdempotentInspect
Get the keys and secrets of an integration: the app and secret of API integrations, the consumer key and secret (LTI 1.0/1.1) or the JWK set URL and public key (LTI 1.3) of LMS integrations. Treat the secrets as confidential.
| Name | Required | Description | Default |
|---|---|---|---|
| integration | Yes | integration identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| app | No | |
| jwk | No | |
| pem | No | |
| secret | No | |
| consumer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate a safe, read-only, idempotent operation. The description adds meaningful behavioral context by listing exactly what kinds of secrets are returned and warning that the secrets must be treated as confidential, which goes beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core operation is front-loaded, the credential variants are compactly enumerated, and the confidentiality warning earns its place as essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one well-documented parameter, an output schema, and safety annotations, the description adds the key missing context: the nature of the returned credentials and their confidentiality. An agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single 'integration' parameter with 100% coverage as 'integration identification string'. The description adds that the target is an integration, but it does not explain how to identify or format the integration value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get the keys and secrets of an integration') and further distinguishes the credential types by integration kind. This clearly separates it from sibling tools like edubase_get_integration or edubase_post_integration_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to retrieve integration credentials, but it does not explicitly state when to choose this over related tools or provide exclusions. Usage context is clear but relies on inference from the getter nature and credential-specific content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_integrationsARead-onlyIdempotentInspect
List owned and managed integrations. Returns integration identification strings, external identifiers and titles.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| integrations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the return-field summary and the owned/managed scope, but it does not disclose pagination behavior, search-mode semantics, or any caveats about what 'owned and managed' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first names the operation and scope, the second summarizes the return payload. There is no filler, repetition beyond the title, or unnecessary detail, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input schema fully documents all three optional parameters, the output schema exists, and annotations provide the safety profile. The description adds enough scope and return context for a simple list operation, so nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page, limit, and search are already fully documented with types, defaults, and the search-mode caveat. The description does not add parameter-level meaning, which is acceptable given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List owned and managed integrations'. It also summarizes the returned data (identification strings, external identifiers, titles), which clearly distinguishes this plural-list operation from the singular edubase_get_integration and other integration-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the verb 'List' and the resource scope 'owned and managed integrations', but there is no explicit statement about when to choose this over edubase_get_integration or get_integration_keys. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organizationBRead-onlyIdempotentInspect
Get the details of an organization: title, external identifier and description.
| Name | Required | Description | Default |
|---|---|---|---|
| organization | Yes | organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| title | Yes | |
| description | No | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the specific fields returned (title, external identifier, description), which is useful but does not disclose behavior like error cases, required permissions, or whether the organization identifier is an ID or slug. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and the returned fields with no filler. It is concise and easy to scan, though it could have added a usage hint without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with an output schema and strong annotations, the description is mostly adequate. However, it does not clarify what the 'organization' parameter should be (ID vs. external identifier) or how this differs from the plural list endpoint, which are minor gaps for an agent selecting among many organization-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter 'organization' is described as 'organization identification string'. The description adds no further meaning about what format the identification string takes (e.g., UUID vs. external identifier), so it does not go beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('organization details'), and lists the returned fields (title, external identifier, description). It is clear and distinguishes from siblings like edubase_get_organizations (plural) and edubase_get_organization_members, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read operation for fetching a single organization's details, and the readOnlyHint annotation reinforces when it is appropriate. However, it does not explicitly state when to use this over edubase_get_organizations (list) or edubase_get_organization_competencies, leaving the agent to infer from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organization_competenciesARead-onlyIdempotentInspect
List all competencies of an organization. Library and competencies must be enabled for the organization.
| Name | Required | Description | Default |
|---|---|---|---|
| organization | Yes | organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| competencies | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds a meaningful prerequisite about required feature enablement, which is useful operational context beyond the annotations and is consistent with the read-only behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main purpose is front-loaded, and the prerequisite is given in a separate concise sentence. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with full annotations and an output schema, the description covers the necessary purpose and a key precondition. It does not explicitly mention error cases or the exact return shape, but those are adequately covered by the output schema and annotations for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter is already well documented. The description adds no new meaning about the 'organization' parameter beyond what the schema provides, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('List') and resource ('competencies of an organization'), and adds a scope condition (must be enabled). It is unambiguous and distinct from the sibling tool get_organization_competency_requirements, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite condition ('Library and competencies must be enabled') that guides when the call will succeed, but it does not explicitly explain when to prefer this tool over siblings or when not to use it. Usage is implied by the action statement rather than directly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organization_competency_requirementsARead-onlyIdempotentInspect
List the requirements of a competency, ordered by their priority. Library and competencies must be enabled for the organization of the competency.
| Name | Required | Description | Default |
|---|---|---|---|
| competency | Yes | competency identification string (or its external identifier when organization is specified) | |
| organization | No | optional organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| title | Yes | |
| competency | Yes | |
| organization | Yes | |
| requirements | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, non-destructive, and idempotent behavior. The description adds the ordering guarantee and the prerequisite about library/competency enablement, which are useful behavioral details beyond the structured annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary action is front-loaded, and the prerequisite is stated in a single follow-up clause. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return format doesn't need description. The description covers purpose and prerequisites. It could mention error behavior when prerequisites are unmet, but that's a minor omission for a read-only list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both 'competency' and 'organization' have explicit descriptions in the schema. The description adds minimal additional parameter meaning, only hinting that organization is relevant to the competency's context. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a precise resource ('requirements of a competency'), and a clear ordering ('by their priority'). It distinguishes itself from the sibling tool edubase_get_organization_competencies, which lists competencies themselves, not their requirements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear precondition: 'Library and competencies must be enabled for the organization of the competency.' This tells the agent when the tool is applicable. It doesn't explicitly mention alternatives, but the distinct resource (requirements vs. competencies) makes the use case unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organization_complianceARead-onlyIdempotentInspect
Get the competency compliance overview of an organization, grouped by departments. Organization reporters see every visible member, department leaders only the members of the departments they lead. Library and competencies must be enabled for the organization.
| Name | Required | Description | Default |
|---|---|---|---|
| organization | Yes | organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | Yes | |
| status | Yes | |
| assigned | Yes | |
| departments | Yes | |
| competencies | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond these annotations: role-based data scoping and an explicit prerequisite. It does not describe the response format, but the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states exactly what the tool does, the second clarifies data visibility rules, and the third states a necessary precondition. There is no fluff or repetition of schema/annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single-parameter schema, existing output schema, and annotations covering safety, the description is complete. It covers what the tool returns (compliance overview by department), who can see what, and what must be enabled. An agent has enough to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'organization' is described in the schema as 'organization identification string', and schema coverage is 100%. The description does not add parameter-level meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('competency compliance overview of an organization'), and adds the key differentiator 'grouped by departments'. This distinguishes it from the sibling get_organization_competencies, which presumably returns raw competency data rather than a compliance overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating role-based visibility ('Organization reporters see every visible member, department leaders only the members of the departments they lead') and a precondition ('Library and competencies must be enabled'). It does not explicitly name alternatives or exclusions, but the conditions are sufficiently clear for an agent to decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organization_departmentARead-onlyIdempotentInspect
Get a department of an organization, identified by its name or external identifier: its parent, level in the hierarchy and the permissions given to its members.
| Name | Required | Description | Default |
|---|---|---|---|
| department | Yes | name of the department (or its external identifier if no department has this name) | |
| organization | Yes | organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| level | Yes | |
| parent | No | |
| leaders | Yes | |
| members | Yes | |
| department | Yes | |
| permission | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds value by revealing what the response centers on (parent, hierarchy level, member permissions) and the dual identification mechanism, which is more than annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler: verb first, resource next, and the key detail about identification and return content all in one compact sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read-only operation with an output schema present, the description conveys purpose, identification method, and return semantics. It does not explicitly explain the fallback rule (external identifier used only if no department has the name), but that is covered in the schema, and the description remains sufficient for correct invocation overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description largely restates the department parameter's lookup semantics ('name or external identifier') without adding additional syntax, format, or relationship details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), a clear resource ('a department of an organization'), and the specific data returned ('parent, level in the hierarchy and the permissions given to its members'). It also differentiates itself from sibling edubase_get_organization_departments by focusing on a single department identified by name or external identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is for fetching one specific department rather than listing all departments, and says it is identified by name or external identifier. It does not explicitly name alternatives or state when not to use this tool, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organization_departmentsARead-onlyIdempotentInspect
List all departments in an organization, ordered by their hierarchy.
| Name | Required | Description | Default |
|---|---|---|---|
| organization | Yes | organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| departments | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral detail beyond annotations by specifying the output ordering 'by their hierarchy'. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the action, resource, scope, and ordering with zero filler. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with a full output schema and safety annotations, the description is complete. It tells the agent exactly what the tool returns and how it is ordered; no additional information is needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'organization' parameter is fully documented in the schema. The description adds no additional parameter semantics beyond what the schema already provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states the specific verb 'List', the resource 'departments in an organization', and the ordering behavior 'by their hierarchy'. The plural 'departments' clearly distinguishes it from the sibling tool edubase_get_organization_department which targets a single department.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: retrieving all departments of an organization. It does not explicitly name alternatives or provide exclusion criteria, but the plural vs singular sibling tool names strongly imply when this tool should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organization_membersARead-onlyIdempotentInspect
List the members of an organization, with their names, departments and permission levels (to the organization, its contents and its members).
| Name | Required | Description | Default |
|---|---|---|---|
| organization | Yes | organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| members | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds context about the returned data (names, departments, permission levels), which is beyond the schema. No contradictions, and it appropriately supplements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the primary action. It avoids unnecessary words and clearly communicates the tool's purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read-only, with output schema), the description is complete. It states what the tool does and what information is returned. No additional context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single parameter 'organization' with a description 'organization identification string'. The description does not add additional parameter details, but with 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'members of an organization', and specifies the returned fields (names, departments, permission levels). This clearly distinguishes it from sibling tools like edubase_get_organization_departments or edubase_get_organization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need member information for an organization. It does not explicitly mention alternatives or exclusions, but the context is clear enough to differentiate from related tools like get_organization_departments or get_organization_competencies. No explicit guidance on when not to use, but the purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_organizationsARead-onlyIdempotentInspect
List owned and managed organizations. Returns organization identification strings, external identifiers and titles.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| organizations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is clear. The description adds the return contents and scope, but does not discuss pagination behavior beyond what the parameter schema already documents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, direct sentences communicate scope and return value with no filler. The most important information is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with fully documented optional parameters and an output schema, the description is nearly complete. The only noticeable gap is the lack of explicit sibling differentiation, but this is partly covered by the plural scope in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meanings are fully documented in the input schema. The tool description does not add further parameter-level detail, which is acceptable at the baseline level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('List') and a clear resource ('owned and managed organizations'), and it states what is returned (identification strings, external identifiers, titles). This clearly distinguishes it from singular tools like edubase_get_organization or membership-focused tools like edubase_get_organization_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope 'owned and managed organizations' implies this is for enumerating organizations the caller controls, but the description does not explicitly contrast it with alternatives such as edubase_get_user_organizations or edubase_get_organization. There is no 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.
edubase_get_organization_webhookARead-onlyIdempotentInspect
Get a webhook of an organization: its title and whether it is active.
| Name | Required | Description | Default |
|---|---|---|---|
| webhook | Yes | webhook identification string | |
| organization | Yes | organization identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | Yes | |
| active | Yes | |
| webhook | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the response includes the webhook's title and active status, which is useful. It does not disclose potential 404 behavior or whether the webhook must belong to the specified organization, but for a simple read operation with strong annotations, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the action and resource, then specifies the returned data. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with two required parameters, full schema coverage, and an output schema present, the description is nearly complete. It could mention that the webhook is identified by an ID string and that the organization is the parent scope, but the schema already covers parameter names and types. The output schema presumably documents the return shape, so the description does not need to.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('organization' and 'webhook') are already described as identification strings. The description does not add further semantic detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('webhook of an organization') and specifies the returned fields ('its title and whether it is active'). It is clear, though it does not explicitly distinguish itself from sibling webhook tools like edubase_post_organization_webhook or edubase_patch_organization_webhook, which are clearly different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read operation for retrieving a single webhook, and the readOnlyHint annotation reinforces that. However, it does not explicitly state when to use this tool versus alternatives, such as listing webhooks or creating/updating webhooks. The context is clear enough for a simple getter, but no explicit when/when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_questionBRead-onlyIdempotentInspect
Check existing question. Questions are the lowest level in the EduBase hierarchy, serving as the building blocks for Quiz sets. To get question details, use the question export function!
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | external unique question identifier |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| active | Yes | |
| question | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering safety. The description adds context about the hierarchy but does not disclose behavioral details like what happens when the question doesn't exist or what the response contains. It does not contradict annotations, but adds minimal extra behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences that front-load the purpose and provide a pointer to an alternative. The hierarchy context is useful but could be considered extraneous; still, it is efficiently written and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema exists, the description does not clarify how this tool differs from the sibling edubase_get_question_id, which is a significant gap given the similar names. It also doesn't specify the return type or behavior on missing questions. The context is partially complete but misses key distinctions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'id', so the schema fully documents it. The description adds no extra parameter semantics, which is acceptable given full coverage. It meets the baseline for a well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks for the existence of a question ('Check existing question'), which is a specific verb+resource. It also gives context about the hierarchy, distinguishing it from higher-level resources. However, it doesn't explicitly differentiate from the sibling edubase_get_question_id, which might also retrieve a question, so it's not fully distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance by pointing to the question export function for details, suggesting this tool is not for full retrieval. However, it does not mention the sibling edubase_get_question_id or explicitly state when to use this check tool versus other getters. The guidance is partial and leaves room for confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_question_idBRead-onlyIdempotentInspect
Get external unique question identifier by question identification string.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | question identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| question | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a small amount of context about resolving an identifier, but it does not disclose behavior such as failure modes, uniqueness guarantees, or what happens when no identifier is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no extraneous words. It front-loads the verb and target resource, though the wording 'by question identification string' is slightly awkward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with full schema coverage and an output schema, the description is minimally sufficient. However, it lacks any context about when this identifier lookup is appropriate or how it relates to the many question-related sibling tools, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter description 'question identification string' already defines the single parameter. The tool description simply repeats this phrasing without adding format, example, or boundary information, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Get external unique question identifier') and the input basis ('question identification string'). It is clear enough to distinguish this from edubase_get_question and edubase_get_questions, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as edubase_get_question, edubase_get_questions, or edubase_post_question_id. The description only states what the tool does, leaving the agent to infer appropriate usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_questionsARead-onlyIdempotentInspect
List owned and managed Quiz questions. Returns the question identification strings and external identifiers. Use edubase_post_question_export to read the content of a question.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| questions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the important behavioral fact that this tool returns only identifiers, not full question content, and that content access is delegated to a different operation. It does not describe search or pagination quirks, but the core behavior relevant to an agent is well conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly written sentences with no filler. The primary capability is front-loaded, the return payload is stated immediately, and the sibling-tool pointer is a single clean sentence. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with 3 optional parameters, a rich annotation set, an output schema present, and a clear description of what is returned, nothing essential is missing. An agent can select this tool and invoke it correctly with the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: page, limit, and search each already have descriptive text. The tool description adds no parameter-level meaning beyond what the schema provides. This matches the baseline expectation that structured schema fields carry the parameter semantics, so no extra credit or penalty is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List owned and managed Quiz questions.' It also clarifies the output scope by stating it returns only question identification strings and external identifiers, and it distinguishes itself from edubase_post_question_export. This is more than a restatement of the tool name; it tells an agent exactly what operation this tool performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use edubase_post_question_export to read the content of a question' explicitly names an alternative and the condition under which it should be used. Combined with 'Returns the question identification strings and external identifiers,' it gives the agent clear when-to-use and when-not-to-use guidance. This is the kind of direct routing that helps an agent choose correctly among many similar question-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quizCRead-onlyIdempotentInspect
Get/check Quiz set. Containing questions and powering Exams.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| quiz | Yes | |
| title | Yes | |
| language | Yes | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the description's 'Get/check' aligns with these. However, the description adds minimal behavioral context beyond the annotations. It doesn't explain what 'check' means (e.g., validates existence, returns status), nor does it mention that the quiz is an entity containing questions and used in exams, which is a minor detail. The description repeats the resource type but doesn't disclose any non-obvious behavior such as response format, error conditions, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but awkwardly structured: 'Get/check Quiz set. Containing questions and powering Exams.' The second sentence is a fragment and not clearly connected; it reads as two separate clauses that don't flow. It is concise in word count but not well-formatted, and the lack of a clear subject-verb-object structure hurts clarity. It could be improved by rewriting as a single sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is an output schema (though not shown in the prompt, it is indicated as present), the description doesn't need to detail return values. However, for a simple get tool with a single parameter, the description is adequate to know what it does (retrieve quiz data). It doesn't cover edge cases like what happens if the quiz ID is invalid, but given the output schema and annotations that provide safety (read-only), it is minimally complete. The lack of usage guidance is a gap but not critical for a read-only retrieval.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100%, with the parameter 'quiz' described as 'Quiz identification string' in the schema. The description does not add any additional meaning beyond that; it says the quiz set contains questions and powers exams, but that doesn't elaborate on the parameter itself. Since the schema adequately documents the parameter, baseline of 3 is appropriate; no extra semantics are provided, but not needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get/check Quiz set. Containing questions and powering Exams.' which identifies the resource (Quiz set) and action (Get/check), but the phrasing is awkward and lacks clarity. It doesn't clearly distinguish from siblings like get_quiz_settings or get_quiz_questions; the mention of 'powering Exams' adds ambiguity about the tool's scope. Still, it's more than a tautology because it indicates the tool retrieves quiz data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. It does not mention any conditions for choosing this over other get_* quiz functions (e.g., get_quiz_settings, get_quiz_questions). The description only says what it returns, not when to use it. The only implied context is that it retrieves quiz information, but no exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quizesBRead-onlyIdempotentInspect
List owned and managed Quiz sets. Quiz sets are named collections of questions that sit at the middle level of the EduBase Quiz hierarchy.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| quizes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering safety. The description adds the behavioral scope constraint ('owned and managed') and explains what a quiz set is, but it does not mention pagination behavior, default limits, or result ordering, which would be useful for a list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The main action is front-loaded in the first sentence, and the second sentence provides necessary domain context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and fully described parameters, the description adequately covers the tool's role. It explains the domain concept of a Quiz set and its position in the hierarchy. The only notable gap is the lack of explicit differentiation from closely related sibling tools, but this is not critical for a simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with every parameter (page, limit, search) already described in the input schema. The tool description adds no parameter-specific semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List'), a clear resource ('Quiz sets'), and a scope qualifier ('owned and managed'). The added hierarchy explanation ('middle level of the EduBase Quiz hierarchy') helps distinguish this from other quiz-related tools, though it does not explicitly name a sibling like edubase_get_quiz to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as edubase_get_quiz or edubase_get_quiz_questions. The hierarchy mention implies a starting point for navigating quiz structures, but there is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quiz_grading_presetARead-onlyIdempotentInspect
Get a grading preset with its thresholds and grades, including whether its threshold is configurable and whether certificates can be issued with it. List the presets with edubase_get_quiz_grading_presets.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | grading preset identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| own | Yes | |
| type | Yes | |
| used | Yes | |
| title | Yes | |
| grades | Yes | |
| preset | Yes | |
| language | Yes | |
| certificates | Yes | |
| configurable | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds what information is included rather than disclosing new behavioral traits such as failure modes or identifier requirements. No contradiction with the annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first states the operation and its key outputs, the second routes list requests to the correct sibling tool. There is no redundant phrasing or repetition of structured information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read operation with a single required preset identifier, full annotations, and an output schema. The description names the resource type, the relevant return content, and the correct sibling for listing, which is complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, 'preset', is documented as a grading preset identification string in the input schema. The description does not add further meaning about the parameter's format or where to obtain a valid identifier, but with full schema coverage the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('a grading preset') while enumerating the meaningful output dimensions: thresholds, grades, threshold configurability, and certificate issuance. It also distinguishes itself from the plural listing sibling by explicitly naming edubase_get_quiz_grading_presets for that purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent that listing presets is handled by edubase_get_quiz_grading_presets, which clarifies the singular tool's scope. It does not explicitly discuss the create/update/delete preset siblings, but the retrieval-vs-listing distinction is clear and adequate for this read-only tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quiz_grading_presetsARead-onlyIdempotentInspect
List the grading presets available for the user. The global presets, the owned custom presets and the presets of the organizations of the user are returned. A Quiz set or an exam can be specified to list only the presets that can be used on it, together with the one it is currently using.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | exam identification string, only the presets that can be used on this exam are listed, either the quiz or the exam can be specified, not both of them | |
| quiz | No | Quiz identification string, only the presets that can be used on this Quiz set are listed | |
| language | No | optional language to filter the results with, presets that are not bound to a language are always included (default: the language of the specified Quiz set or exam) |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | No | |
| quiz | No | |
| presets | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral detail: it specifies the preset sources returned (global, owned, organizational) and the 'currently using' inclusion behavior when an exam or quiz is specified. This goes beyond what the annotations alone convey, though it omits minor details like pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary content: the first states the primary action and scope, the second explains the optional filtering behavior. The main purpose is front-loaded and every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile and an output schema present, the description covers the decision-relevant behavior: what preset categories are returned and how quiz/exam filtering modifies the response. No critical information needed to call the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, and each parameter already has a descriptive schema entry explaining exam, quiz, and language semantics. The tool description reinforces the filtering concept but adds no parameter syntax or default-value details beyond what the schema already documents, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource, 'List the grading presets available for the user', and then defines the exact scope: global presets, owned custom presets, and organizational presets. The optional quiz/exam filtering further clarifies the operation, and the plural 'presets' distinguishes it from the singular sibling get_quiz_grading_preset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when the optional quiz and exam parameters are useful and notes that the currently used preset is included. It does not explicitly name get_quiz_grading_preset as the single-preset alternative, but the list-versus-get context and sibling names make the routing reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quiz_questionsARead-onlyIdempotentInspect
List all questions and question groups in a Quiz set. Quiz sets contain questions (lowest level) and can be used by exams (highest level).
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that results include both questions and question groups and provides domain hierarchy context. It does not describe pagination, ordering, or nesting behavior, but the output schema and strong annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded. The second sentence adds useful domain context about quiz set hierarchy without padding. Every sentence earns its place, and there is no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one required parameter and an output schema, the description is nearly sufficient. It tells the agent what it returns and how quiz sets relate to questions and exams. It does not explain exactly what a 'question group' is, but the output schema covers return structure, so no critical invocation detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the 'quiz' parameter described as 'Quiz identification string.' The description reinforces that the quiz is a Quiz set, but provides no additional format, source, or lookup semantics beyond what the schema already offers. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List all questions and question groups in a Quiz set.' It clearly scopes the operation to a quiz set, distinguishing it from global question tools like edubase_get_questions. It does not name sibling alternatives, so it misses the top tier, but the action and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The hierarchy note that 'Quiz sets contain questions' implies this tool is for retrieving question-level content within a quiz, which gives some usage context. However, it never explicitly tells the agent when to choose this over related tools like edubase_get_quiz, edubase_get_quiz_skills, or edubase_get_questions, nor does it state any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quiz_results_playARead-onlyIdempotentInspect
Get the detailed results of a single Quiz play (attempt): times, points, validity, whether it passed the grading, and the points and answer time of every question. Play identification strings are returned by edubase_get_quiz_results_user and edubase_get_exam_results_user.
| Name | Required | Description | Default |
|---|---|---|---|
| play | Yes | Quiz play identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| play | Yes | |
| user | Yes | |
| valid | Yes | |
| time_end | Yes | |
| questions | Yes | |
| successful | Yes | |
| time_start | Yes | |
| points_total | Yes | |
| points_correct | Yes | |
| questions_total | Yes | |
| questions_correct | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds meaningful behavioral context by detailing the returned aspects like validity, grading pass/fail, and per-question timing, which is useful beyond the annotation data. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two well-organized sentences: the first front-loads the action and the detailed content, and the second provides essential identifier provenance. There is no redundant phrasing or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single required parameter, full schema coverage, strong safety annotations, and an output schema, the description covers everything needed to invoke the tool correctly. It also supplies the necessary upstream context for obtaining the play ID, making it complete for this simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'play' is described as a 'Quiz play identification string'. The description enhances this by explaining where such identifiers come from, giving the agent concrete provenance for the required value. This goes beyond the bare schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a precise resource ('detailed results of a single Quiz play (attempt)'), and enumerates exactly what data is included: times, points, validity, pass/fail, and per-question points and answer time. It also implicitly differentiates from sibling result-listing tools by emphasizing 'single' play and referencing the user-level result functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool by noting that play identification strings come from edubase_get_quiz_results_user and edubase_get_exam_results_user, establishing a prerequisite flow. It does not explicitly state exclusions or when-not-to-use, but the context is clear enough for an agent to sequence calls correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quiz_results_userARead-onlyIdempotentInspect
List the results (plays) of a user in a Quiz set, with times, points, validity and whether they passed the grading. Use edubase_get_quiz_results_play for the per-question details of a play.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz set identification string | |
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only nature is covered. The description adds context about what data is returned (times, points, validity, pass status), though it does not disclose other behavioral aspects such as pagination or filtering. Given the strong annotation coverage, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the action and scope, and the second provides useful sibling routing. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity read tool with only two fully documented parameters, a rich annotation set, and an output schema. The description clearly identifies what the tool returns and points to the correct sibling for more detailed data, making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters ('Quiz set identification string' and 'user identification string'). The description does not add additional meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('results (plays) of a user in a Quiz set') and enumerates the included data: times, points, validity, and pass/fail grading. It also differentiates itself from edubase_get_quiz_results_play by pointing out that this tool handles summary results rather than per-question details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use the sibling tool instead: 'Use edubase_get_quiz_results_play for the per-question details of a play.' This gives clear routing guidance and implies that this tool is for the overall play-level results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quiz_settingsARead-onlyIdempotentInspect
Get the settings of a Quiz set: question shuffling, time limits and grading. Change them with edubase_post_quiz_settings.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| quiz | Yes | |
| grading | Yes | |
| shuffle | Yes | |
| roundtime | Yes | |
| timelimit | Yes | |
| grading_threshold | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds value by enumerating which settings are retrievable, giving the agent a concrete sense of the tool's scope without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states the purpose and the specific setting categories, the second names the corresponding mutation tool. Every word earns its place and the core information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present, annotations covering idempotency and read-only nature), the description is fully sufficient. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'quiz', described as 'Quiz identification string'. The tool description does not add any additional meaning about the parameter beyond that, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get settings) and the resource (Quiz set), and lists the specific setting types covered: question shuffling, time limits, and grading. It also distinguishes itself from the sibling mutation tool by naming edubase_post_quiz_settings, so an agent can immediately tell this is the read-only counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly points to the alternative for changing settings, which implies when to use this tool versus the write version. However, it does not explicitly state 'use this when you need to view settings' or list exclusions, but the named sibling provides sufficient routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_quiz_skillsBRead-onlyIdempotentInspect
Get the skills defined in a Quiz set, with the identifier, title and description of each skill.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| quiz | Yes | |
| skills | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds the specific return fields (identifier, title, description) but doesn't disclose other behaviors like pagination or authentication requirements. Since annotations handle the core safety context, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and return content. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and an output schema, the description is sufficiently complete. It covers the purpose and return fields; annotations handle safety. The only minor gap is the lack of clarification on what constitutes a 'Quiz set', but this is likely domain knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'quiz' is fully documented in the schema with the description 'Quiz identification string'. The tool description adds no extra meaning beyond what the schema provides, so the baseline score of 3 applies for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: retrieve skills defined in a Quiz set, with specific fields (identifier, title, description). It distinguishes from exam-related skills by explicitly mentioning 'Quiz set', though it doesn't reference the sibling edubase_get_exam_skills or other similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like edubase_get_exam_skills or edubase_get_quiz. The description only states what it does without indicating prerequisites, exclusions, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_tagARead-onlyIdempotentInspect
Get the details of a tag: title, external identifier, color and icon.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | tag identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| tag | Yes | |
| icon | Yes | |
| color | Yes | |
| title | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the core behavioral safety profile. The description adds the returned fields but does not disclose additional behavioral traits such as error behavior for an unknown tag or open-world lookup semantics. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the action, names the target resource, and lists the relevant returned fields. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with a fully described parameter, strong safety annotations, and an output schema present, the description is sufficient for an agent to invoke the tool correctly. The lack of sibling-routing guidance is a usage-guidelines concern, not a completeness gap for this simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single 'tag' parameter is already documented as 'tag identification string'. The description adds no further parameter meaning, such as expected format or how to obtain the identifier, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('details of a tag'), and it enumerates the returned fields: title, external identifier, color and icon. It is clear enough to understand what the tool does, but it does not explicitly differentiate this from sibling tools like edubase_get_tags or edubase_get_content_tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you need details about a single identified tag. However, there is no explicit guidance about when to use this instead of edubase_get_tags (listing tags) or edubase_get_content_tag (content tags), leaving the most likely source of confusion unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_tagsARead-onlyIdempotentInspect
List owned and managed tags. Returns tag identification strings, external identifiers and titles. Attach tags to contents with edubase_post_content_tag.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| tags | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful behavioral detail by naming the returned fields and the follow-up action, exceeding what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The primary purpose is front-loaded, followed by return-value details and a relevant next-step pointer to another tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with all parameters documented, a full output schema, and safety annotations, the description is complete enough for correct invocation. Pagination details are not elaborated, but the schema's page/limit parameters and return field list cover the essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (page, limit, search) are already documented in the input schema. The description does not add additional parameter-level meaning, which aligns with the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource ('List owned and managed tags') and identifies the return payload (tag identification strings, external identifiers, titles). It does not explicitly contrast with sibling tools like edubase_get_tag or edubase_get_content_tags, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a workflow by telling agents to attach tags with edubase_post_content_tag, giving a clear downstream usage context. However, it does not explicitly state when to choose this tool over alternative tag-related listing tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_userARead-onlyIdempotentInspect
Get a user: name, whether the account is enabled and whether it is a generated exam account. Use edubase_get_user_search if only the email address or username is known.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | User identification string. Use 'me' to get the current user, but prefer /user:me endpoint instead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| name | Yes | |
| user | Yes | |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only, non-destructive nature is covered without needing description repetition. The description adds useful context by listing the specific data returned (name, enabled status, generated exam account flag) and by introducing the domain concept of a 'generated exam account'. It does not disclose additional behaviors like authorization requirements or error conditions, but with annotations covering the safety profile, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The first sentence states the purpose and output data fields; the second sentence gives a clear routing rule for an alternative tool. It is front-loaded with the core action and follows with the most relevant usage caveat, making it easy to scan and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter tool with an existing output schema, the description covers the essential information: what the tool returns and when to use the search sibling instead. The /user:me special case is handled in the parameter schema, and the dedicated sibling edubase_get_user_me exists for current-user retrieval, so the description does not need to restate it. The only minor omission is an explicit statement about required identifier format, but the schema fills that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the 'user' parameter fully documented as a user identification string, including the special 'me' value and the advice to prefer the /user:me endpoint. The description itself adds no further parameter semantics, so it does not go beyond what the schema already provides. This matches the baseline 3 for a fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and clearly identifies the resource (a user) plus the three fields returned: name, enabled status, and generated exam account flag. It differentiates from edubase_get_user_search by naming it explicitly in the second sentence, but it does not distinguish itself from edubase_get_user_me, a close sibling for retrieving the current user. This is a clear purpose with only a minor gap in sibling separation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use an alternative: 'Use edubase_get_user_search if only the email address or username is known.' This provides a clear when-not condition. However, it omits guidance about when to prefer edubase_get_user_me for the current user, and it does not specify what form of identifier the tool expects beyond what the schema says. Guidance is present but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_user_classesARead-onlyIdempotentInspect
List the classes a user is member of, with their titles, links and whether the membership is active.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| classes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds minor context about membership-active status but does not disclose other behavioral traits like ordering, pagination, or error behavior; this is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that front-loads the core action and result contents. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only list operation with full schema coverage, an output schema, and rich annotations, the description is complete. Nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'user' parameter is documented as a 'user identification string'. The description does not add extra parameter guidance, but with full schema coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a specific resource ('classes a user is member of'), and the included fields ('titles, links and whether the membership is active'). This clearly distinguishes the tool from siblings like get_classes or get_user_classes-related write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: retrieving class memberships for a given user. However, it does not explicitly state when to prefer this tool over alternatives such as get_classes or get_class_members, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_user_groupARead-onlyIdempotentInspect
Get the code of the user group a user belongs to.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| group | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond restating the tool's purpose, such as behavior for unknown users, multiple groups, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to identifying the action and resource, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with one documented parameter and an existing output schema, the description is nearly complete. It could be improved by clarifying what happens when a user has no group or multiple groups, but those are edge cases rather than core gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single 'user' parameter and describes it as a 'user identification string'. The description adds no additional parameter meaning, so the baseline of 3 applies because the schema already carries the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('the code of the user group a user belongs to'). It clearly distinguishes this from sibling tools like edubase_post_user_group, edubase_get_user_classes, and edubase_get_user_organizations, which target different actions or entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The read-only intent is implied by 'Get', so an agent can infer it is appropriate when needing a user's group code. However, there is no explicit guidance about when to prefer this tool over alternatives, nor any exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_user_loginARead-onlyIdempotentInspect
Get the latest valid login link of a user and its validity. Generate a new link with edubase_post_user_login.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| user | Yes | |
| valid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context: it returns the 'latest valid' link and its validity, which clarifies the result content and the notion of validity. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and ends with the alternative. Every word earns its place; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (single parameter, no nested objects), the presence of an output schema (which covers return structure), and annotations covering safety, the description is complete. It states the operation, the result, and the alternative for generation. Nothing critical is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the parameter 'user' is described as 'user identification string' in the schema. The tool description adds no additional semantics beyond that. With high coverage, the baseline is 3, and the description does not compensate with extra details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and a clear resource: 'latest valid login link of a user and its validity.' It distinguishes itself from the sibling edubase_post_user_login by explicitly naming the alternative for generating a new link, so an agent can immediately tell what this tool does and what it does not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Generate a new link with edubase_post_user_login,' which explicitly points to the alternative when a new link is needed. It implies the use case of retrieving an existing link, though it does not explicitly enumerate exclusions or prerequisites. This is clear enough for an agent to decide when to call this tool versus the generation sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_user_meARead-onlyIdempotentInspect
Get the current user the requests are made as: identification string, name, whether the account is enabled and whether it is a generated exam account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| name | Yes | |
| user | Yes | |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds valuable context by disclosing that the result is tied to the request's identity and by specifying what data is returned. This goes slightly beyond structured annotations, though it does not discuss authentication prerequisites or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence: 'Get the current user the requests are made as' followed by a concise list of returned fields. Every word earns its place, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, clear purpose, comprehensive annotations, and an output schema present), the description is complete. An agent has everything needed to select and invoke the tool correctly, and the output schema covers detailed return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description accurately describes what the response contains, which is more relevant than parameter semantics here. There is no schema gap for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get the current user the requests are made as', which clearly distinguishes this from siblings like edubase_get_user or edubase_get_users. It also enumerates the exact returned attributes (identification string, name, enabled status, generated exam account), leaving no ambiguity about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'current user the requests are made as' provides clear context for when to use this tool: when an agent needs information about the authenticated caller's own account, not a queried user. It does not explicitly name alternatives or exclusion conditions, but the context is strong enough that an agent can infer the correct usage without further guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_user_nameARead-onlyIdempotentInspect
Get the first, last, full and display name of a user.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| full_name | Yes | |
| last_name | Yes | |
| first_name | Yes | |
| display_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the agent knows this is a safe, repeatable read operation. The description is consistent with those annotations but adds no additional behavioral context such as what happens for missing or invalid users.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no filler. It directly states the returned name fields and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with strong annotation coverage and an output schema, the description is largely sufficient. The only notable gap is the lack of routing guidance among the many sibling user-related tools, but the description still allows correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'user' parameter has a schema description ('user identification string'), giving 100% schema description coverage. The tool description does not add further meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Get') and resource ('first, last, full and display name of a user'), making the purpose easy to understand. It does not explicitly differentiate this from sibling tools such as edubase_get_user or edubase_post_user_name, so it loses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool should be used when a user's name fields are needed, but it offers no explicit when-to-use instructions and does not mention alternatives like edubase_get_user, edubase_get_user_me, or edubase_get_user_search. Guidance is therefore only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_user_organizationsARead-onlyIdempotentInspect
List the organizations a user is member of, with their titles, links, the department of the user and the permission levels.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| organizations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the annotations: readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and 'List' accurately reflects a read operation. However, it adds no behavioral context beyond the annotations, such as pagination, auth requirements, or scope caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and resource immediately, then lists the relevant result fields. There is no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only lookup with one documented parameter, full annotation coverage, and an output schema present. The description conveys what the tool returns, which is sufficient for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single required 'user' parameter with 100% coverage, including 'user identification string'. The description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('organizations a user is member of'), then enumerates the returned fields: titles, links, department, and permission levels. This clearly distinguishes it from siblings like get_user_classes, get_organizations, and get_organization_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as get_user_classes or get_organization_members. The intended use is implied by the name and description, but no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_usersARead-onlyIdempotentInspect
List managed users, excluding generated exam accounts. Returns user identification strings and names. Use edubase_get_user_search to find a user by email address, username or code.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | page number (default: 1), not used in search mode! | |
| limit | No | limit number of results (default: 16) | |
| search | No | search string to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| users | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false). The description adds useful behavioral context beyond that by scoping results to managed users, excluding generated exam accounts, and disclosing that it returns identification strings and names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler. The main purpose and return contents are front-loaded, and the alternative-tool routing is placed second without redundantly restating what the schema already says.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with optional parameters, an output schema, and strong annotations, the description is nearly complete. The only minor gap is not explaining how this tool's own 'search' parameter relates to the dedicated search tool, though the sibling pointer helps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page, limit, and search are already documented. The description does not add parameter-specific details, such as how 'search' interacts with the dedicated edubase_get_user_search tool, so it stays at the schema-driven baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('List') and resource ('managed users'), adds an important exclusion ('excluding generated exam accounts'), and states the returned data ('user identification strings and names'). This clearly distinguishes it from sibling tools like edubase_get_user_search and edubase_get_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the sibling tool for a different use case: 'Use edubase_get_user_search to find a user by email address, username or code.' This gives an agent a clear routing decision rather than leaving it to infer when to use the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_get_user_searchARead-onlyIdempotentInspect
Look up a user by email address, username or user identification string. Returns the user identification string and whether it is a generated exam account.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | query string |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| user | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds that the lookup returns the user identification string and a generated-exam-account flag, which is useful but modest context beyond the annotations; edge behaviors like no-match or multiple-match outcomes are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the action and accepted query formats are front-loaded, and the return summary follows. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only lookup with rich annotations and an existing output schema, the description covers what the tool does, what inputs are valid, and what it returns. The remaining gap is minor: it does not specify behavior when no user matches or when multiple users match, but the low complexity and structured output schema keep this from being a significant deficiency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the parameter description ('query string') is a tautology that adds no meaning. The tool description compensates by specifying that the query can be an email address, username, or user identification string, which is essential semantic information for constructing a correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Look up a user') and enumerates the accepted identifier types (email address, username, user identification string). This implicitly distinguishes it from siblings like edubase_get_user, edubase_get_user_me, and edubase_get_users, and it also summarizes the return value, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this tool when you have an email, username, or user identification string and need to resolve it to a user. It does not explicitly name alternatives or give when-not-to-use exclusions among the many user-related siblings, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_mcp_server_apiARead-onlyIdempotentInspect
Get the MCP server API URL (only use for debugging).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, etc. The description adds the 'debugging only' constraint, which is useful context beyond annotations, but no further behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no waste. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with annotations, the description is complete enough. It states what the tool does and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description adds no parameter info, which is acceptable per baseline for 0 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get the MCP server API URL (only use for debugging)' clearly states a specific verb and resource, and distinguishes its debugging-only purpose from sibling tools like edubase_mcp_server_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly restricts usage to debugging, providing a clear context. It does not name alternatives but effectively implies when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_mcp_server_versionARead-onlyIdempotentInspect
Get the MCP server version (only use for debugging).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the debugging context, which provides additional behavioral guidance beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the key information. There is no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with no parameters and no output schema, the description is complete. It clearly states the purpose and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100%. The description does not need to add parameter information, and the baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Get' and the resource 'MCP server version', making the purpose clear. It distinguishes itself from sibling tools, which focus on domain entities like classes, exams, or users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'only use for debugging', providing explicit context for when to use this tool. While it does not list alternatives, no alternative is needed given the tool's simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_examAIdempotentInspect
Update the details of an existing exam: title, external identifier, language, description, organization, start and end times, and deadline. The start time can only be changed until the first result arrives. Use edubase_post_exam_settings to change its settings.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | external unique exam identifier, send an empty value to remove the current identifier | |
| end | No | exam end time (in YYYY-MM-DD HH:ii:ss format) | |
| exam | Yes | exam identification string | |
| start | No | exam start time (in YYYY-MM-DD HH:ii:ss format), can only be changed until the first result arrives | |
| title | No | title of the exam | |
| deadline | No | latest date and time the exam can be started at (in YYYY-MM-DD HH:ii:ss format), should be within the exam period, send "none" (or an empty value) to remove the current deadline | |
| language | No | language of the exam | |
| description | No | description of the exam, basic HTML formatting is kept and scripts are removed, send an empty value to remove the current description | |
| organization | No | organization identification string to move the exam to, only an organization of the API application owner can be used, only the owner of the exam (or an administrator) can change the organization, send "none" (or an empty value) to remove the exam from its current organization, always the organization of the user for organizational members |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (non-readonly, non-destructive, idempotent), so the bar is lower. The description adds meaningful behavior beyond annotations, notably the start-time mutation limit and the boundary that settings updates belong to a different endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences, no filler, and the most important scoping information is front-loaded in the first sentence. Every clause contributes either resource identification, a usage boundary, or a temporal constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Rich parameter descriptions in the schema plus the description's scope and constraint are enough for an agent to invoke this tool correctly. No output schema exists, but the return value is not necessary to decide whether or how to call this endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents each parameter, including formats, removal semantics, and constraints. The description restates the parameter list but adds no meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and clearly identifies the resource: an existing exam. It enumerates the exact editable fields (title, external identifier, language, description, organization, start/end times, deadline), and its closing note distinguishes this tool from the settings endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool (to update exam details) and when not to (to change settings, use edubase_post_exam_settings). It also includes a clear temporal exclusion: the start time can only be changed until the first result arrives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_exam_settingsAIdempotentInspect
Copy only those settings from another exam that are not configured yet in the target exam.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string (the target exam) | |
| source | Yes | exam identification string to copy the settings from, must be different from the target exam | |
| keep_certificate_settings | No | whether to copy the certificate settings as well (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false, and the description adds meaningful behavioral context beyond them: the tool never overwrites already-configured settings, only fills gaps. This aligns with and reinforces the non-destructive, idempotent profile. Return-value behavior is not discussed, but an output schema exists, lowering that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 17-word sentence with the action and the key conditional ('only those settings that are not configured yet') front-loaded. There is no filler, no restating of parameter names, and every clause contributes to understanding the tool's unique behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full output schema, 100% parameter coverage, and annotations covering idempotency/non-destructiveness, the one-sentence description is nearly sufficient for correct invocation. Minor gaps remain: which setting categories are copied is not enumerated, and edge behavior (e.g., source exam lacking settings) is unaddressed, but these are secondary details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; each parameter is already well documented (exam as target, source with the 'must be different' constraint, keep_certificate_settings with its default of false). The description adds no parameter-level detail beyond the overall copy semantics, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Copy'), a clearly bounded resource ('settings from another exam'), and a distinctive scoping condition ('only those... not configured yet in the target exam'). This differentiates the tool from siblings such as edubase_put_exam_settings (full overwrite), edubase_post_exam_settings (create), and edubase_get_exam_settings (read) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: fill gaps in a target exam's settings using a source exam as a template. However, there is no explicit when-to-use statement, no named alternatives, and no exclusion criteria telling the agent to prefer put_exam_settings or post_exam_settings in other scenarios. The guidance is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_integrationAIdempotentInspect
Enable or disable an integration, or move it to another organization.
| Name | Required | Description | Default |
|---|---|---|---|
| active | No | enable or disable the integration | |
| integration | Yes | integration identification string | |
| organization | No | organization identification string to move the integration to, only an organization of the API application owner can be used, only the owner of the integration (or an administrator) can change the organization, send "none" (or an empty value) to remove the integration from its current organization, always the organization of the user for organizational members |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description states mutation actions but adds no context beyond those hints, such as side effects of disabling or ownership requirements, though the schema covers some ownership constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence that front-loads the primary actions and avoids filler or repetition. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the complete input schema and the mutation/idempotence annotations, the description gives an agent enough to call the tool correctly for the stated use cases. It could be more complete by noting that at least one of active/organization should be supplied and by naming sibling tools, but the remaining gap is small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: active, integration, and organization all have descriptions. The prose mirrors those descriptions (enable/disable maps to active, move maps to organization) without adding new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (integration) and the concrete operations available (enable, disable, move to another organization). This distinguishes it from sibling get/post/delete_integration tools and is not a restatement of the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly maps user intent to this tool: choose it to enable, disable, or move an integration. It does not explicitly name alternatives or exclusions such as using post_integration for creation or delete_integration for removal, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_organizationAIdempotentInspect
Update the title or custom fields of an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | title of the organization | |
| custom | No | custom field data, keyed by field name (sent as `custom_{field}`), only if the specified field is configured for the target EduBase instance | |
| organization | Yes | organization identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal non-read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds only the scope of the update but does not disclose PATCH semantics such as whether omitted fields are left unchanged or whether the custom object is merged or replaced. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word adds information about the tool's effect, making it optimal for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations carry much of the load, but the description alone leaves gaps: it does not state that at least one of title/custom should be provided, does not explain whether custom fields are merged or replaced, and omits the organization parameter requirement. For a PATCH operation with nested objects, this is a clear but incomplete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already explained (title, custom keyed by field name, organization identifier). The description echoes 'title or custom fields' without adding syntax, constraints, or merge semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Update'), a clear resource ('organization'), and the exact fields affected ('title or custom fields'), which also differentiates it from sibling tools like edubase_patch_organization_department. An agent can immediately identify what this tool changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for updating an organization's title or custom fields) but provides no explicit alternatives, exclusions, or prerequisites such as requiring the organization identifier. Unlike a tool that names a sibling or gives when-not-to-use conditions, this leaves routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_organization_departmentAIdempotentInspect
Update department of an organization. Changed permissions are applied to every member of the department.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | external unique department identifier, empty string removes it | |
| title | No | new name of the department, must be unique within the organization | |
| parent | No | name (or external identifier) of the parent department, empty string moves the department to the root level, the department itself or a department below it cannot be the parent | |
| leaders | No | comma-separated list of user identification strings of the leaders (must be members of the organization, maximum 5), replaces the current leaders, empty string removes every leader | |
| department | Yes | name of the department (or its external identifier if no department has this name) | |
| organization | Yes | organization identification string | |
| permission_content | No | permission level to contents in organization given to the members (none / view / report / control / modify / grant / admin) | |
| permission_members | No | permission level to members in organization given to the members (none / department / organization) | |
| permission_organization | No | permission level to organization given to the members (member / teacher / reporter / supervisor / admin) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds one useful behavioral detail: permission changes propagate to all department members. However, it does not mention other potential side effects (e.g., partial vs full update, required permission level) beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and immediately followed by the key side effect. No wasted words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 parameters and no output schema, the description is minimal but the schema covers all parameters. It does not explicitly state that only provided fields are updated (patch semantics), but this is implied by the name and idempotentHint. The description does highlight the most critical side effect (permission propagation), making it sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The tool description adds no parameter-specific meaning beyond the schema, which meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and the resource (department of an organization), which is specific and distinct from sibling tools like post (create), delete, or get. It also adds a clarifying side-effect sentence that reinforces the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as edubase_post_organization_department or edubase_delete_organization_department. The description only states what it does without indicating prerequisites, exclusions, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_organization_webhookBIdempotentInspect
Enable or disable a webhook of an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| active | No | enable or disable webhook | |
| webhook | Yes | webhook identification string | |
| organization | Yes | organization identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description communicates that this is a state-changing operation (enable/disable), which aligns with readOnlyHint=false and idempotentHint=true. It adds no detail beyond that—no information about required permissions, side effects, or the effect of omitting 'active'—so it does not significantly expand on the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise, though so minimal that it omits context that usage and behavior dimensions would need; as a pure concision matter it is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter PATCH, the description plus schema covers the basics, but there is no output schema and no guidance on side effects, when to use, or what happens if 'active' is omitted (it is optional in the schema despite being central to the described operation). The tool is callable but not fully self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the three parameters are already documented in the input schema. The description reinforces the meaning of 'active' by saying 'enable or disable,' but adds no new semantic detail such as accepted formats, defaults, or which identifiers are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Enable or disable') and resource ('a webhook of an organization'), making the core purpose obvious. It does not explicitly differentiate from sibling webhook tools like post_organization_webhook or delete_organization_webhook, so it stops short of a fully distinguishing statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the related webhook operations (get/post/delete/trigger). The description only states what it does, leaving the agent to infer that PATCH is the modification endpoint. No conditions, prerequisites, or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_quizAIdempotentInspect
Update the details of an existing Quiz set: title, external identifier, language, description and organization. Use edubase_post_quiz_settings to change its settings and edubase_post_quiz_questions to add questions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | external unique Quiz identifier, send an empty value to remove the current identifier | |
| quiz | Yes | Quiz identification string | |
| title | No | title of the Quiz set | |
| language | No | language of the Quiz set | |
| description | No | short description of the Quiz set, send an empty value to remove the current description | |
| organization | No | organization identification string to move the Quiz set to, only an organization of the API application owner can be used, only the owner of the Quiz set (or an administrator) can change the organization, send "none" (or an empty value) to remove the Quiz set from its current organization, always the organization of the user for organizational members |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description doesn't need to restate those. The description adds value by clarifying the scope of the update (only the listed fields) and by pointing to sibling tools for other operations. However, it doesn't disclose details like whether partial updates are supported, whether the 'quiz' parameter is required as an identifier, or what happens if the quiz doesn't exist. The description is consistent with annotations, and the idempotentHint is supported by the patch semantics implied by the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the primary purpose front-loaded in the first sentence and the routing guidance in the second. Every word earns its place: the first sentence lists the exact fields, and the second sentence prevents misuse by naming the correct sibling tools. There is no fluff, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a patch tool with six parameters, 100% schema coverage, and no output schema, the description is quite complete. It tells the agent what the tool does, which fields it updates, and which sibling tools to use for related operations. The only minor gap is that it doesn't explicitly state that the 'quiz' parameter is required (though the schema marks it as required) or describe the return value, but the schema covers the required parameter and the lack of an output schema makes return-value documentation less critical. The routing to siblings is a strong contextual addition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description adds value by summarizing the purpose of the tool as updating title, external identifier, language, description, and organization, which maps directly to the parameters. It also clarifies the relationship between the 'id' parameter (external identifier) and the 'quiz' parameter (quiz identification string) by calling the former 'external identifier' in the description. However, the description doesn't add much beyond the schema's own parameter descriptions, so a 4 is appropriate rather than a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update'), a specific resource ('existing Quiz set'), and enumerates the exact fields that can be changed (title, external identifier, language, description, organization). It also distinguishes itself from sibling tools by explicitly naming edubase_post_quiz_settings and edubase_post_quiz_questions as the tools for settings and questions, respectively. This makes the tool's purpose unambiguous and clearly differentiated from the many quiz-related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool (to update quiz set details) and when to use alternatives: 'Use edubase_post_quiz_settings to change its settings and edubase_post_quiz_questions to add questions.' This is a clear routing instruction that prevents an agent from confusing this patch tool with the settings or questions tools. It also implicitly excludes deletion (edubase_delete_quiz) and creation (edubase_post_quiz) by focusing on updating an existing quiz.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_quiz_grading_presetAIdempotentInspect
Update an existing custom grading preset. The global presets and the presets of the organizations cannot be modified.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | type of the grading preset, cannot be changed anymore once the preset is used by a Quiz set or an exam | |
| title | No | title of the grading preset | |
| grades | No | thresholds and grades of the preset, in ascending order, the complete list is replaced | |
| preset | Yes | grading preset identification string | |
| language | No | language of the grading preset |
Output Schema
| Name | Required | Description |
|---|---|---|
| own | Yes | |
| type | Yes | |
| used | Yes | |
| title | Yes | |
| grades | Yes | |
| preset | Yes | |
| language | Yes | |
| certificates | Yes | |
| configurable | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a modifying, idempotent, non-destructive operation. The description adds the meaningful behavioral constraint that global and organization presets are off-limits, which is not evident from the annotations or schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core action and the most important restriction. No filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small update tool with rich schema descriptions, an output schema, and supportive annotations, the description is mostly complete. It covers the main action and scope restriction, though it does not explicitly summarize partial-update semantics beyond what the schema already states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter in detail. The description does not add significant parameter-level meaning beyond establishing that only custom presets are updatable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update'), a specific resource ('existing custom grading preset'), and the key constraint that global and organization presets cannot be modified. This clearly differentiates the tool from siblings like post_quiz_grading_preset and delete_quiz_grading_preset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this tool is for updating custom presets only and explicitly excludes global and organization presets. It does not explicitly name alternative tools for creation or deletion, but the usage context is still sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_quiz_settingsAIdempotentInspect
Copy only those settings from another Quiz set that are not configured yet in the target Quiz set.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string (the target Quiz set) | |
| source | Yes | Quiz identification string to copy the settings from, must be different from the target Quiz set |
Output Schema
| Name | Required | Description |
|---|---|---|
| quiz | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as idempotent and non-destructive. The description adds meaningful behavioral context by specifying that only settings not yet configured are copied, meaning existing target settings are preserved. This goes beyond the annotation hints and clarifies the merge semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. The core action ('Copy') and the distinguishing condition ('not configured yet') are front-loaded, making it immediately actionable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, idempotent, non-destructive operation with an output schema, the description covers the essential invocation semantics. It does not specify behavior when no settings are missing or the exact list of copied settings, but those details are not required for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters fully described: 'quiz' as the target and 'source' as the copy source that must differ from the target. The description adds no additional parameter-level detail beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Copy'), a specific resource ('settings from another Quiz set'), and the precise condition ('not configured yet in the target Quiz set'). This clearly distinguishes it from sibling tools like edubase_get_quiz_settings, edubase_post_quiz_settings, and edubase_put_quiz_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case (merging only missing settings from a source quiz into a target quiz) is implied but not explicitly contrasted with alternatives. The description does not state when to use this over edubase_put_quiz_settings or edubase_patch_quiz_settings, leaving the routing decision to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_patch_userBIdempotentInspect
Enable or disable a user account, identified by its user identification string.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string | |
| active | No | enable or disable user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds that the operation is an enable/disable toggle, which is consistent with idempotentHint (setting active=true twice is idempotent). It doesn't add context about side effects, permissions, or what happens to the user's sessions/data when disabled, but the annotations cover the safety profile adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. It is efficient and free of fluff, though it could have added a brief note about the 'active' parameter without much cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter toggle with full schema coverage and annotations covering idempotency and non-destructiveness, the description is mostly complete. However, it doesn't mention the return value (no output schema) or any behavioral nuances like whether disabling a user revokes sessions, which would be useful for an agent deciding to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('user' and 'active'). The description adds the phrase 'enable or disable' which maps directly to the 'active' boolean, but doesn't add meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Enable or disable') and resource ('a user account'), and identifies the user by 'user identification string'. It clearly distinguishes from sibling tools like edubase_post_user (create) and edubase_delete_user (delete), though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for toggling account status, and the 'active' parameter makes the usage context clear. However, it doesn't explicitly state when to use this vs alternatives (e.g., create/delete user) or mention any prerequisites like admin permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_classes_membersAInspect
Assign user(s) to class(es). Updates memberships if already member of a class.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | comma-separated list of user identification strings | |
| notify | No | notify users (default: false) | |
| classes | Yes | comma-separated list of class identification strings | |
| expires | No | expiry in days or YYYY-MM-DD HH:ii:ss |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are provided: readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds the key behavioral trait that it updates memberships if the user is already a member. This adds value beyond annotations. However, it doesn't disclose other behaviors like whether the notify parameter triggers an email, or what happens on failure. A 3 is appropriate as it adds some but not exhaustive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. Every word adds value: the first sentence states the action, the second clarifies idempotency on re-assignment. This is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 params (all described in schema), no output schema, and moderate complexity (batch operation on users and classes). The description covers the core behavior and an important edge case (updating existing memberships). It omits what the response contains (e.g., success/failure per user-class pair) but with no output schema, that's acceptable. A 4 is appropriate for being mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description doesn't add any parameter-specific meaning beyond what's in the schema. It could have clarified the format for user/class IDs (e.g., are these UUIDs or names) or provided examples for the expires parameter. No added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Assign' and resources 'user(s) to class(es)'. It distinguishes from siblings like edubase_get_class_members (read) and edubase_delete_class_members (delete), and other membership tools. However, it could more explicitly contrast with edubase_post_class_members if that exists, but among siblings it's clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for assigning or updating memberships. It says 'Updates memberships if already member of a class', which gives guidance on idempotent-like behavior. While it doesn't explicitly state when not to use it or name alternatives, the update clause helps agents decide. Could be improved by stating when to use delete_class_members instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_class_membersAInspect
Assign user(s) to a class. Updates memberships if already member of the class.
| Name | Required | Description | Default |
|---|---|---|---|
| class | Yes | class identification string | |
| users | Yes | comma-separated list of user identification strings | |
| notify | No | notify users (default: false) | |
| expires | No | expiry in days or YYYY-MM-DD HH:ii:ss |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) indicate a write operation, and the description adds that it updates memberships if the user is already a member. This provides useful behavioral context beyond annotations, though it does not detail side effects like response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no unnecessary words. The first sentence states the primary action, and the second adds the update behavior. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters fully documented in schema and no output schema required, the description covers the purpose and key behavior (updating existing memberships). It could add guidance on the format of expires but the schema already describes that. Overall, adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description does not add significant meaning beyond the schema descriptions (class, users, expires, notify). For example, 'expires' description in schema is adequate, and description does not elaborate. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Assign user(s) to a class' and adds the nuance of updating existing memberships, which distinguishes it from sibling tools like edubase_get_class_members (read) and edubase_delete_class_members (remove).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding users to a class, but does not explicitly contrast with alternatives like edubase_post_classes_members (which may batch multiple assignments). However, the core use case is clear, and the update behavior is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_content_permissionAInspect
Give a user a permission level on a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material, tag or video).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| user | Yes | user identification string | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) | |
| permission | Yes | permission level (view / report / control / modify / grant / admin), finances is only available for events |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| content | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-destructive, non-idempotent operation, and the description's 'Give' is consistent with that profile. However, the description does not explain whether existing permissions are overwritten or accumulated, or describe any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one front-loaded sentence with no filler. The parenthetical listing of content types, while verbose, earns its place by disambiguating the valid targets for the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With fully documented parameters, annotations covering mutability, and an output schema present, the description is sufficient for constructing a valid call. The only shortfall is the lack of side-effect and usage-selection guidance, which keeps it from a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters clearly. The description only repeats the content-type list and generic 'permission level' concept already present in the schema, adding no new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Give') and a clear resource ('a user a permission level on a content'), and enumerates the valid content types. This clearly separates it from sibling tools like get_content_permission and delete_content_permission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states only the basic action and gives no guidance on when to use this tool versus alternatives such as get_content_permission or delete_content_permission. No conditions, exclusions, or prerequisites are provided, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_content_tagAInspect
Attach a tag to a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video). List the available tags with edubase_get_tags.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | tag identification string | |
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tag | Yes | |
| content | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description does not need to restate those. The description adds the useful context that the tag must already exist (via edubase_get_tags), but it does not disclose whether attaching an already-attached tag is an error or a no-op, or whether the operation is reversible. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the action and resource, then lists the supported types and points to the prerequisite tool. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter attach operation with a full schema and an output schema present, the description covers the essential context: what the tool does, what types are supported, and where to find valid tag values. It does not explain the return value, but the output schema exists and the operation is simple enough that this is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds a helpful example for the 'content' parameter ('e.g. the exam identification string if type is exam') and clarifies the enum abbreviations for 'scorm' and 'quiz', but it does not go beyond what the schema already provides in a meaningful way. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Attach') and a clear resource ('a tag to a content'), enumerating all supported content types. It also names the sibling tool for listing tags, which helps distinguish it from related tag operations like edubase_get_content_tags or edubase_delete_content_tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use edubase_get_tags to list available tags, which is a clear prerequisite. It does not explicitly state when not to use this tool versus alternatives like edubase_delete_content_tag, but the context is sufficient for a straightforward attach operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_content_transferAInspect
Transfer the ownership of a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material, tag or video) to another user. Confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | type of the content (scorm: SCORM learning material, quiz: Quiz set) | |
| user | Yes | user identification string | |
| content | Yes | identification string of the content (e.g. the exam identification string if type is exam) |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| content | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-idempotent mutation. The description adds one meaningful behavioral note: confirm with the user first. However, it does not disclose whether the transfer is reversible, whether the previous owner loses access immediately, or what input constraints apply to the target user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the action and resource, enumerates valid content types efficiently, and appends a concise safety instruction. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema fully documents the three required parameters and the output schema exists, the description is largely sufficient. It covers the main user-facing caveat (confirmation). It could be slightly stronger by noting the transfer's effect on the current owner, but nothing critical is missing for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are documented with types and examples. The description adds no new parameter semantics beyond the schema; it only restates the operation. A baseline score of 3 is appropriate because the schema carries the full weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Transfer the ownership') and a specific resource, followed by an exhaustive list of supported content types. It distinguishes itself from the sibling tools because it is the only ownership-transfer operation in the set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case obvious: transfer ownership of supported content to another user. It also adds the operational guideline to confirm with the user first. It does not name alternative tools, but no sibling offers this operation, so the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_examAInspect
Create a new exam from an existing Quiz set. Exams are at the top level of the EduBase Quiz hierarchy and MUST be created from existing Quiz sets. They are time-constrained, secured assessment instances of Quiz sets.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | external unique exam identifier | |
| end | Yes | exam end time (in YYYY-MM-DD HH:ii:ss format) | |
| quiz | Yes | the Quiz set (specified using the Quiz identification string) the exam is attached to | |
| type | No | type of the exam (default: exam) | |
| start | Yes | exam start time (in YYYY-MM-DD HH:ii:ss format) | |
| title | Yes | title of the exam | |
| language | No | desired exam language | |
| organization | No | organization identification string to assign the exam to, only an organization of the API application owner can be used, always the organization of the user for organizational members | |
| copy_settings | No | optional exam identification string to copy settings from | |
| keep_certificate_settings | No | whether to keep certificate settings from the copied exam (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds context that exams are 'time-constrained, secured assessment instances', clarifying the behavioral nature of the created object. It does not fully disclose all side effects, but with annotations present, the description adds meaningful context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, with the key constraint ('MUST be created from existing Quiz sets') placed early. It avoids repetition of the schema and annotations. It could be slightly more front-loaded about the prerequisite, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters and a complete output schema, the description is relatively complete for an agent to understand the core purpose and constraint. The description does not explain required versus optional parameters or edge cases, but the schema provides that. Given the tool's moderate complexity and the existing schema coverage, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description mentions the 'quiz' parameter must reference an existing Quiz set, which adds a bit of context beyond the schema but does not explain formats or optional behaviors like copy_settings. Given full schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new exam') and specifies the mandatory resource ('from an existing Quiz set'). It also defines key attributes of the exam (time-constrained, secured, top-level), which effectively distinguishes it from other exam-related tools like edubase_patch_exam or edubase_post_exam_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that exams MUST be created from existing Quiz sets, providing a critical precondition. It also implies when not to use it (only for creating, not for editing or settings changes), but it does not explicitly name alternatives or list exclusions. However, in the context of a large sibling set, this guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_autologinAInspect
Enable or reconfigure automatic login for an exam, optionally with a shortlink for the login link. Returns the configuration with the PIN code and login link, the same way as edubase_get_exam_autologin. Disable it with edubase_delete_exam_autologin.
| Name | Required | Description | Default |
|---|---|---|---|
| se | No | shortlink for the login URL, at least 3 characters long (with a + sign automatically prepended), send an empty value to remove the current shortlink, needs the shortlink feature to be enabled and cannot be used with secure (Safe Exam Browser) exams | |
| exam | Yes | exam identification string | |
| autoadd | No | generate new exam accounts automatically on demand, needs special privileges to set! | |
| autojoin | No | allow already registered users to join the exam automatically, needs special privileges to set! | |
| autojoin_limited | No | limit automatic joining to the users assigned to the exam, only used when autojoin is enabled, needs special privileges to set! (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| pin | No | |
| url | No | |
| exam | Yes | |
| autoadd | No | |
| autojoin | No | |
| autologin | Yes | |
| results_url | No | |
| autojoin_limited | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this is not read-only and not destructive, and the description does not contradict them. The description adds value beyond the annotations by stating that calling this tool returns the configuration with the PIN code and login link, and that it behaves the same way as edubase_get_exam_autologin, which helps an agent predict the response shape and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences: first the action and resource, then the return behavior, then the disable alternative. It is front-loaded with the core purpose and contains no filler, redundant details, or restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete input schema, an output schema available, and sibling tools explicitly mentioned, the description covers nearly everything an agent needs. The only minor gap is that it does not state that reconfiguring may overwrite an existing autologin configuration, but this is reasonably inferable from 'Enable or reconfigure'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all five parameters with 100% coverage, including the shortlink constraints, privilege requirements, and defaults. The description only mentions 'shortlink' generally and does not add meaningful semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair, 'Enable or reconfigure automatic login for an exam', and also mentions the optional shortlink behavior. It clearly differentiates this tool from siblings edubase_get_exam_autologin and edubase_delete_exam_autologin, so an agent can identify the correct operation without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly references edubase_get_exam_autologin for the returned configuration and edubase_delete_exam_autologin for disabling, providing useful routing among the related sibling tools. However, it does not explicitly state conditions such as when a shortlink is appropriate or when special privileges are required, though those details live in the parameter descriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_brandingAInspect
Configure or update the branding of an exam with an image (base64-encoded or URL, used as a logo or as a cover) and a color.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| type | No | branding image type (foreground: image is used as a logo, background: image is used as a cover), default: foreground | |
| color | Yes | branding color | |
| image | Yes | branding image, either a base64-encoded image or a URL, supported formats: PNG, JPEG, WebP |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so the description's mutation claim ('configure or update') aligns with annotations. It adds useful context by specifying supported image formats (PNG, JPEG, WebP) and the base64/URL input mechanism, which helps agents understand constraints. It doesn't describe errors or idempotency, but since idempotentHint is false, that's acceptable. The description adds some behavioral context beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that states the action, the resource, the object (image and color), and the image type usage. It is concise and front-loaded, with no fluff or redundant phrasing. Every word adds value, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100% schema coverage and acceptable annotations, the description is mostly complete. It covers the image type roles and supported formats, which are critical for correct invocation. It could mention whether a URL is fetched by the server or requires prior upload, but given the openWorldHint=true, that is a minor gap. Output is likely simple, so description completeness is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for each parameter. The description adds a bit of nuance by explicitly explaining 'foreground' as logo and 'background' as cover, which clarifies the type enum beyond the schema. It also reiterates the image formats alert. Though the schema already covers most, the description's clarification of the two image roles adds value, so 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: configuring or updating exam branding with an image (as logo or cover) and a color. The verb 'configure or update' is specific, the resource 'branding of an exam' is well-defined, and it distinguishes from siblings like get_exam_branding and delete_exam_branding by explicitly mentioning the update capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its purpose, but it doesn't explicitly state when to use this tool versus alternatives like delete_exam_branding or get_exam_branding. It also lacks prerequisites (e.g., whether the exam must exist or whether earlier branding must be deleted first) and doesn't mention when to use 'foreground' vs 'background'. This is a clear but implicit guidance, earning a 3 for not being misleading but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_certificatesAInspect
Change individual certificate settings of an exam. Every setting other than enabled requires the certificates to be enabled for the exam, and the items displayed on the certificates have to be switched on before their own settings can be configured (for example show_serial before the serial_ settings). The certificates configured by a preset can only be replaced completely, see edubase_put_exam_certificates. The settings cannot be changed while the exam is locked.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| notes | No | notes displayed at the bottom of the certificates | |
| renew | No | whether the certificates can be renewed, requires show_expiration (false: the certificates cannot be renewed, true: the certificates can be renewed any time, number: the number of days the renewal is available from, relative to the expiry, 0 is the day of the expiry, negative values open the renewal before it, at most the validity period earlier), default: false | |
| text1 | No | text displayed under the data of the examinee, the multi line texts (text1, text2 and notes) support basic formatting (bold, italic, underline, subscript, superscript) and line breaks | |
| text2 | No | text displayed under the results, above the date of the test | |
| title | No | title of the certificates, certificates are only issued once they have a title | |
| enabled | No | issue certificates for the exam, needs the certificate feature to be enabled for the user, not available for surveys, and needs a grading that decides whether the test was successful (see the certificates flag in edubase_get_quiz_grading_presets), the configuration is kept when the certificates are disabled | |
| language | No | language of the certificates, only the languages EduBase is translated to are available (default: language of the exam) | |
| timezone | No | timezone of the dates on the certificates, or "default" if the timezone of the exam should be used | |
| text_date | No | text displayed before the date of the test | |
| email_send | No | send the certificates to the examinees in email automatically, needs the certificate email sending feature to be enabled on the instance | |
| expiration | No | validity period of the certificates in days, between 0 and 9999, requires show_expiration and it is mandatory when the expiration is configured for the first time | |
| show_custom | No | display custom user data | |
| show_result | No | display the result of the test | |
| show_serial | No | give a serial number to the certificates | |
| custom_fields | No | custom user data to display as extra data, requires show_custom, at most three fields can be displayed, the custom user data fields of the exam are identified by their label (see edubase_get_exam_fields), the data fields of the user accounts by their customer_ prefixed name, send an empty list to remove every field | |
| hide_timezone | No | hide the timezone information | |
| result_format | No | format of the displayed result, requires show_result (points-percent-time: points, result in percentage and the time spent with the test, points-percent: points and result in percentage, points: points only, percent: result in percentage only), default: points-percent-time | |
| serial_format | No | format of the serial numbers, requires show_serial and it is mandatory when the serial numbers are configured for the first time (prefix-year-index: prefix, the year of the test and the index, prefix-date-index: prefix, the date of the test and the index, prefix-index: prefix and index, written together), none of the serial_ settings can be changed anymore once a certificate is issued for the exam | |
| serial_prefix | No | prefix of the serial numbers, requires show_serial, the serial numbers are only unique within the exam, so a unique prefix is recommended | |
| branding_image | No | logo of the branding, the same way as with signature_left_image | |
| branding_line1 | No | name of the organization, requires show_custom_branding and it is mandatory when the branding is displayed | |
| branding_line2 | No | second line of the branding | |
| branding_line3 | No | third line of the branding | |
| branding_line4 | No | fourth line of the branding | |
| manual_renewal | No | the renewal has to be approved by a supervisor, requires renew | |
| show_signature | No | display signatures | |
| signature_left | No | display the signature of the first organizer, requires show_signature, the lines of the signature are kept when it is disabled | |
| signature_user | No | display a signature line for the examinee, requires show_signature | |
| show_expiration | No | expire the certificates and display their validity | |
| signature_right | No | display the signature of the second organizer, the same way as with signature_left | |
| signature_stamp | No | stamp displayed between the signatures, the same way as with signature_left_image | |
| branding_edubase | No | display the EduBase logo, it can only be removed with the matching feature enabled | |
| serial_separator | No | separator between the parts of the serial numbers, requires show_serial, always empty with the prefix-index format (default: /) | |
| supervisors_only | No | only allow the supervisors to issue the certificates, so the examinees cannot get their own ones | |
| grading_threshold | No | threshold of the certificates in percentage, overriding the threshold of the grading, certificates are only issued above it. Accepts a number or a numeric string between 0 and 100, or "default" if the threshold of the grading should be used | |
| custom_user_fields | No | custom user data to display together with the data of the examinee, the same way as with custom_fields | |
| serial_index_digits | No | minimum length of the index in the serial numbers, between 1 and 16, requires show_serial (default: 4) | |
| show_custom_branding | No | display custom branding (logo and organization name) | |
| signature_left_image | No | image of the first signature, the identifier of an image uploaded to the filebin replaces the image (supported formats: JPEG, WebP, PNG), the white background of the signatures and the stamp is removed automatically, but transparent PNG images are recommended (true: display the image that is already uploaded, false: keep the uploaded image, but do not display it) | |
| signature_left_line1 | No | name of the first organizer, mandatory when the signature is displayed | |
| signature_left_line2 | No | second line of the first signature | |
| signature_left_line3 | No | third line of the first signature | |
| signature_left_line4 | No | fourth line of the first signature | |
| signature_right_image | No | image of the second signature, the same way as with signature_left_image | |
| signature_right_line1 | No | name of the second organizer, mandatory when the signature is displayed | |
| signature_right_line2 | No | second line of the second signature | |
| signature_right_line3 | No | third line of the second signature | |
| signature_right_line4 | No | fourth line of the second signature | |
| download_automatically | No | download the certificate automatically when the examinee opens the results page | |
| show_birthdate_birthplace | No | display the birth date and the birth place of the examinee | |
| automatic_renewal_approval | No | approve the renewal automatically, but keep it revocable, requires manual_renewal | |
| expiration_notification_emails | No | email addresses to notify about the expiring certificates, requires show_expiration, the examinees of the exam are notified automatically about their renewable certificates, these notifications are sent to the specified addresses only, send an empty list to remove every address |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| notes | No | |
| renew | No | |
| text1 | No | |
| text2 | No | |
| title | No | |
| preset | No | |
| enabled | Yes | |
| language | No | |
| timezone | No | |
| text_date | No | |
| configured | Yes | |
| email_send | No | |
| expiration | No | |
| show_custom | No | |
| show_result | No | |
| show_serial | No | |
| custom_fields | No | |
| hide_timezone | No | |
| result_format | No | |
| serial_format | No | |
| serial_prefix | No | |
| branding_image | No | |
| branding_line1 | No | |
| branding_line2 | No | |
| branding_line3 | No | |
| branding_line4 | No | |
| manual_renewal | No | |
| show_signature | No | |
| signature_left | No | |
| signature_user | No | |
| show_expiration | No | |
| signature_right | No | |
| signature_stamp | No | |
| branding_edubase | No | |
| serial_separator | No | |
| supervisors_only | No | |
| grading_threshold | No | |
| custom_user_fields | No | |
| serial_index_digits | No | |
| show_custom_branding | No | |
| signature_left_image | No | |
| signature_left_line1 | No | |
| signature_left_line2 | No | |
| signature_left_line3 | No | |
| signature_left_line4 | No | |
| signature_right_image | No | |
| signature_right_line1 | No | |
| signature_right_line2 | No | |
| signature_right_line3 | No | |
| signature_right_line4 | No | |
| download_automatically | No | |
| show_birthdate_birthplace | No | |
| automatic_renewal_approval | No | |
| expiration_notification_emails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as mutating (readOnlyHint: false) and non-idempotent. The description adds valuable behavior beyond that: prerequisite ordering (enabled must be set, display items like show_serial must be on before their dependent settings), the preset replacement limitation, and the locked-exam restriction. These are meaningful operational constraints that annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. The action is front-loaded, and each subsequent sentence carries a distinct, necessary constraint or sibling reference. This is appropriately sized for a complex tool and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 53 parameters and an output schema, the description covers the main operational caveats (enabling dependencies, preset replacement, lock) and points to the relevant sibling for full replacement. The output schema covers return values, so no return description is needed. Some caveats like instance feature requirements appear only in schema parameters rather than the description, but the overall context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 53 parameters already has a substantial description in the schema. The tool description contributes cross-parameter dependency guidance (e.g., show_serial before serial_ settings), but much of that is also reflected in per-parameter 'requires' notes, so the marginal semantic value is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Change individual certificate settings') on a clear resource (an exam), and explicitly contrasts itself with edubase_put_exam_certificates, which replaces preset-configured certificates completely. This distinguishes the tool from its closest sibling and leaves no ambiguity about its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the alternative edubase_put_exam_certificates for the preset replacement case, and communicates a constraint ('The settings cannot be changed while the exam is locked'). It does not enumerate all certificate-related siblings (get, delete) or provide an explicit when-to-use summary, but the guidance given is clear and useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_certificates_user_downloadARead-onlyInspect
Generate download link for the latest user exam certificate. If a previous valid link exists, it will be returned instead.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| user | Yes | user identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| play | Yes | |
| user | Yes | |
| valid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds valuable context: it returns a link (not the certificate itself), and it reuses a previous valid link if one exists. This 'latest' and 'reuse existing link' behavior goes beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The core action is front-loaded, and the important reuse behavior is stated in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown in detail but indicated as present), so return values are presumably documented there. The description covers the key behavioral nuance (reusing existing links) and the 'latest' scoping. It doesn't mention expiration or validity of the link, but with an output schema present and annotations covering safety, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (exam, user) are documented in the schema as identification strings. The description doesn't add much beyond that, but it does clarify that the link is for the latest certificate for that exam/user combination. Baseline 3 is appropriate since the schema already covers parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Generate download link') and resource ('latest user exam certificate'), which clearly distinguishes it from the sibling get_exam_certificates_user (which likely retrieves certificate data rather than generating a download link). It doesn't explicitly name the sibling, but the action and resource are specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when a download link for a user's latest exam certificate is needed. It also notes that a previous valid link will be returned instead, which hints at idempotent-like behavior. However, it doesn't explicitly state when NOT to use it or mention alternatives like get_exam_certificates_user for viewing certificate details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_fieldsAInspect
Change the built-in user data fields of an exam, and replace the complete list of its custom fields. The view_results_identifier setting of the exam is cleared when the selected custom field is not a unique free text field anymore.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| name | No | request the full name of the examinee (true: use the field with its default label, false: do not use the field but keep its other settings, any other value is used as the label of the field) | |
| No | request the email address of the examinee (true: use the field with its default label, false: do not use the field but keep its other settings, any other value is used as the label of the field) | ||
| phone | No | request the phone number of the examinee (true: use the field with its default label, false: do not use the field but keep its other settings, any other value is used as the label of the field) | |
| fields | No | the custom fields of the exam, in the order they are shown to the examinee, the submitted list replaces the current one so send every custom field that should be kept, use edubase_delete_exam_fields to remove every custom field |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| name | Yes | |
| Yes | ||
| phone | Yes | |
| fields | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, and the description adds meaningful behavioral context beyond those: it explicitly states that the custom field list is replaced wholesale and that view_results_identifier is cleared under certain conditions. This disclosure of side effects is valuable. However, it does not elaborate on permissions, reversibility, or idempotency beyond the annotations, so a 4 is appropriate rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. The primary action is front-loaded in the first sentence, and the crucial side effect is presented immediately in the second. It is efficient and immediately scannable, earning a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex schema with rich parameter descriptions, an output schema, and the description covers the core behavior and a critical side effect. It clarifies that custom fields are fully replaced (not merged) and explains the view_results_identifier clearing condition. While it does not enumerate all response details, the output schema exists, and the description sufficiently covers the essential operational context for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (exam, name, email, phone, fields) are already well-documented in the schema. The description itself adds minimal parameter-specific detail, only referencing 'built-in user data fields' and 'custom fields' generically. With full schema coverage, the baseline is 3, and the description does not significantly enhance parameter understanding beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Change the built-in user data fields of an exam, and replace the complete list of its custom fields.' It identifies the resource (exam fields) and distinguishes it from siblings like get_exam_fields (read) and delete_exam_fields (delete). The mention of the side effect on view_results_identifier further clarifies the tool's unique behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or sibling tools. It implies usage by describing the action, but lacks explicit routing guidance such as 'use this instead of patch_exam_settings for field updates.' The purpose is clear enough that an agent could infer when to call it, but no alternatives or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_results_exportARead-onlyInspect
Generate a download link for the results of an exam. The generated link is not authenticated, so it can be handed over to any service, but it can only be used once and it expires in an hour. Only those examinees are exported that are visible for the current user, and the exported columns are controlled by the export settings of the exam (see edubase_get_exam_settings). Exporting the results needs reporting permission for the exam.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| sort | No | ordering of the examinees in the exported file (default: the same order they are listed in on the users page of the exam, name: by the name of the examinees), default: the export_sort setting of the exam | |
| round | No | export the results of a previous round instead of the current one, only available when the exam is configured to keep the results of its previous rounds, has to be the number of an already closed round (see edubase_get_exam_round) | |
| format | No | format of the exported file (csv: semicolon separated values, xlsx: Excel 2007+ workbook), default: the export_format setting of the exam | |
| preset | No | content of the exported file (default: the examinees with their results, answers: the answers only, without the examinees), the answers preset is only available for anonymous surveys (default: default) | |
| filters | No | only export the examinees matching the given user data, keyed by the label of a custom user data field of the exam (see edubase_get_exam_fields), only those select custom fields can be used that have their filtering configured, the value is one of the filterable options of the field or a list of them, the examinees have to match any of the values given for the same field and all of the fields specified, cannot be combined with round as the results of a previous round cannot be filtered | |
| language | No | language of the exported file (default: the language of the user) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| exam | Yes | |
| valid | Yes | |
| format | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, destructiveHint), the description discloses key behaviors: the link is unauthenticated, single-use, expires in an hour, exports only visible examinees, and is controlled by exam settings. It also states the permission requirement. No contradiction with annotations; readOnlyHint is consistent since no data mutation occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, starting with the main action, then elaborating on link properties, scope, and permissions. It avoids redundancy and effectively uses the available space, though it could benefit from clearer segmentation of distinct points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema and complete parameter descriptions, the description covers all essential aspects: what the tool does, link characteristics, permission requirements, and scope limitations. It references related tools for further context, making it sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented in the schema. The tool description adds no parameter-specific information beyond what the schema provides, such as the round availability constraint or preset restrictions, which are already in the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a download link for exam results, specifying the verb and resource. It also differentiates from sibling result tools by focusing on the export link rather than direct data retrieval, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a precondition (reporting permission) and references related tools (edubase_get_exam_settings, edubase_get_exam_round) for context, but it does not explicitly explain when to use this tool versus alternatives like edubase_get_exam_results_user or edubase_get_exam_results_raw. The usage context is implied but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_roundAInspect
Start a new round of the exam. The running tests are closed, the results of the previous round are detached from the exam accounts and the generated accounts are reset, so the exam can be taken again by another group of examinees. A new round cannot be started when the exam is locked, archived, the current round is frozen (see the freeze_round setting of edubase_post_exam_settings), or the results viewing period of the exam has already begun (see the view_results_start setting of edubase_post_exam_settings).
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| force | No | start a new round even if the current one has no results yet (default: false) | |
| notify | No | notify the assigned users about the exam (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| round | Yes | |
| frozen | Yes | |
| results | Yes | |
| started | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses concrete side effects: running tests are closed, previous results are detached from exam accounts, and generated accounts are reset. It also surfaces state-dependent gotchas with references to the exact settings that control them. This is exactly the kind of behavioral context agents need, and it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: the main action is front-loaded, followed by a compact list of side effects, then a concise list of blocking conditions. The references to edubase_post_exam_settings settings are precise and earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, the output schema, and the detailed behavioral description, nothing essential is missing for an agent to invoke this tool correctly. The description covers what happens, when it cannot happen, and which settings govern the constraints, making it complete for this mutation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter has its own inline description, so the baseline of 3 applies. The tool description does not add parameter-level detail beyond the schema, though it does help contextualize the 'no results yet' state that the force parameter relates to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Start a new round of the exam.' It then details the lifecycle effects—closing running tests, detaching results, and resetting generated accounts—which makes the operation unambiguous and distinct from other exam-related sibling tools like get_exam_round or post_exam_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong contextual guidance by stating when the tool is appropriate (after a previous round, to let another group take the exam) and explicit disqualifiers: locked, archived, frozen round, or results viewing period started. It does not name an alternative tool to use instead, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_settingsAInspect
Change individual settings of an exam. The columns of the export (every setting from export_stats on) cannot be configured for surveys, only the export_format and the export_sort settings are available for them. The export_attendance setting is read only, the attendance is configured together with its source on the interface.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| archive | No | allow archiving the users who already have a result, only available for the managers of the exam | |
| grading | No | grading of the exam, the code of a grading preset (see edubase_get_quiz_grading_presets), "none" to disable grading, or "default" to use the setting of the Quiz set, not available for surveys as they are never graded | |
| pausable | No | allow tests to be paused and continued later during the exam period, only available for non-blocking exams and always true for homeworks, cannot be disabled when some tests are currently paused, automatically disabled when nonblocking is disabled | |
| roundtime | No | time limit of a single question in seconds, overriding the setting of the Quiz set, only available for turn based (TURNS mode) Quiz sets. Accepts a number or a numeric string, 0 if there is no time limit, or "default" if the setting of the Quiz set should be used | |
| timelimit | No | time limit of the whole test in seconds, overriding the setting of the Quiz set. Accepts a number or a numeric string, 0 if there is no time limit, or "default" if the setting of the Quiz set should be used | |
| hide_grade | No | hide the grade on the results page, can only be enabled together with hide_points, always enabled with the none type | |
| export_sort | No | ordering of the examinees in the exported results file (default: the same order they are listed in on the users page of the exam, name: by the name of the examinees), default: default | |
| hide_points | No | hide the points during the test and on the results page, always enabled with the none type | |
| nonblocking | No | exam accounts are exclusively assigned to the exam and cannot be assigned to other exams during the exam period, always true for homeworks and surveys, cannot be disabled when the exam already has results or when some tests are currently paused | |
| export_stats | No | export the statistics of every question, not available for surveys (default: false) | |
| freeze_round | No | freeze the current round of the exam, so the Quiz set cannot be replaced and no new round can be started, only available for the managers of the exam | |
| results_page | No | redirect the examinees to the results page after the test, can only be disabled with the datetime_blind, manual and none types | |
| view_results | No | when the examinees can see their results (after: right after the test is submitted, until the end of the exam, always: any time during the exam period, the examinees can log back in to see their results, datetime: after the test is submitted, and again from the start of the results viewing period, datetime_blind: only in the results viewing period, the solutions and the details of the evaluation are hidden right after the test, manual: only after the result is published separately, test by test, none: never), not available for surveys (default: after) | |
| export_format | No | format of the exported results file (csv: semicolon separated values, xlsx: Excel 2007+ workbook), default: xlsx | |
| export_gender | No | export the gender of the registered examinees, needs special privileges to enable, not available for surveys (default: false) | |
| export_points | No | export the points scored on every question, not available for surveys (default: false) | |
| export_skills | No | export the skill results of the examinees, only exported when the Quiz set of the exam has skills, not available for surveys (default: true) | |
| export_answers | No | export the answers given by the examinees, not available for surveys (default: false) | |
| export_suspicion | No | export the suspicious test taking indicator, not available for surveys (default: false) | |
| show_in_lasthour | No | only show the results in the last hour of the exam, only available with the after type | |
| grading_threshold | No | threshold of the grading in percentage, between 0 and 100, only available for grading presets with a configurable threshold (of the go-nogo-custom type), can be changed without selecting the grading preset again | |
| view_results_start | No | start of the results viewing period (in YYYY-MM-DD HH:ii:ss format), only available with the datetime and datetime_blind types where it is mandatory, has to be between the start and the end of the exam, no further tests and no new rounds can be started once the period has begun | |
| hide_ingame_results | No | hide the results while the test is taken | |
| export_custom_fields | No | export the user data fields filled in by the examinees (see edubase_get_exam_fields), not available for surveys (default: true) | |
| export_finished_only | No | only export the examinees who finished their test, not available for surveys (default: false) | |
| view_results_identifier | No | label of the unique free text custom user data field the examinees can look up their results with, only available with the datetime and datetime_blind types, the field has to be a unique free text (text, email or phone) custom field of the exam (see edubase_get_exam_fields), send "none" (or an empty value) to disable the identifier based results page |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| archive | Yes | |
| grading | No | |
| pausable | Yes | |
| roundtime | Yes | |
| timelimit | Yes | |
| hide_grade | No | |
| export_sort | Yes | |
| hide_points | No | |
| nonblocking | Yes | |
| results_url | No | |
| export_stats | No | |
| freeze_round | Yes | |
| results_page | No | |
| view_results | No | |
| export_format | Yes | |
| export_gender | No | |
| export_points | No | |
| export_skills | No | |
| export_answers | No | |
| export_suspicion | No | |
| show_in_lasthour | No | |
| export_attendance | No | |
| grading_threshold | No | |
| view_results_start | No | |
| hide_ingame_results | No | |
| export_custom_fields | No | |
| export_finished_only | No | |
| view_results_identifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description doesn't need to repeat those. It adds useful behavioral context: survey-specific limitations on export columns, read-only nature of export_attendance, and the fact that attendance is configured via its source. This goes beyond the annotations and helps the agent understand constraints. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short (three sentences) but includes a confusing mention of 'export_attendance' which is not in the parameter list. This could mislead an agent into thinking it can be set. The first two sentences are clear and front-load the key caveat about surveys, but the third sentence detracts from conciseness and clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 27 parameters and no output schema details provided, the description should offer more guidance on usage scenarios, such as what happens when a survey is used or when a read-only setting is attempted. It covers some caveats but does not explain the differences from sibling settings tools or error behavior. The description is adequate for a simple mutation but lacks depth for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning every parameter is already documented in the schema with detailed descriptions. The description itself adds little beyond what the schema provides – the only extra is the mention of export_attendance, which is not actually a parameter in the schema, so it doesn't clarify parameter semantics. Baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action clearly: 'Change individual settings of an exam' – a specific verb with a specific resource. It distinguishes itself as a 'change' tool, which is distinct from 'get' or 'put' siblings, but it does not explicitly differentiate from edubase_patch_exam_settings or edubase_put_exam_settings, which likely have overlapping purposes. The mention of 'export_attendance' which is not in the schema is a minor confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: it notes which export settings are available for surveys (only export_format and export_sort) and that export_attendance is read-only. However, it does not explicitly state when to use this tool versus the sibling settings tools (patch/put) or any prerequisites. The guidance is implicit rather than explicit about alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_statusAInspect
Enable or disable starting new tests on an exam. The exam itself stays active, only the start of further tests is controlled. The status can only be changed while the exam is active and has not closed yet. New tests cannot be started in the results viewing period. Disabling new tests also cancels the scheduled automatic disabling of the exam.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| status | Yes | allow new tests to be started |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| active | Yes | |
| status | Yes | |
| modified | Yes | |
| scheduled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses a non-obvious side effect: 'Disabling new tests also cancels the scheduled automatic disabling of the exam.' It also clarifies that the exam stays active, preventing a misunderstanding that disabling new tests closes the exam.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core action stated first followed by necessary constraints and side effects. Every sentence adds useful information, and there is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two well-documented parameters, an output schema, and no nested objects, the description provides sufficient context: valid conditions, behavior, and side effects. An agent has enough information to select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully, with 'exam' as an identification string and 'status' as a boolean allowing new tests. The description adds operational context but does not materially extend the parameter-level meaning beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Enable or disable starting new tests on an exam.' It clearly differentiates this write operation from the read-only sibling edubase_get_exam_status by explaining that the exam itself remains active and only test-starting is controlled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when the operation is valid ('while the exam is active and has not closed yet') and when it is not ('New tests cannot be started in the results viewing period'). This gives the agent clear conditions for invoking the tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_summaryAInspect
Submit a short summary of an exam, such as an AI-generated evaluation of its results. Keep it concise, use only basic HTML formatting, and avoid personal information (names, usernames, contact details).
| Name | Required | Description | Default |
|---|---|---|---|
| llm | No | name of the Large Language Model used to generate the summary (preferred: openai / claude / gemini) | |
| exam | Yes | exam identification string | |
| type | No | type of summary (default: ai) | |
| model | No | exact LLM model name used to generate the summary (requires llm) | |
| summary | Yes | summary text (basic HTML formatting allowed, keep concise, avoid personal information) | |
| language | No | summary language |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the bar for additional disclosure is lower. The description adds useful context by requiring concise content, basic HTML only, and no personal information — a meaningful privacy constraint. It does not, however, disclose whether an existing summary is overwritten, what happens on duplicate submission, or any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, roughly 30 words, with the action front-loaded ('Submit a short summary of an exam') followed by three quick constraints. Every clause earns its place, and there is no fluff or repetition within the description itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple content-submission tool with 2 required parameters, full schema coverage, and an explicit content policy, the description is adequate. However, with no output schema and no mention of overwrite behavior, conflict handling, or where this fits in the exam lifecycle, an agent cannot fully anticipate the tool's effects beyond the write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters, setting the baseline at 3. The description largely restates the summary parameter's own schema text ('keep concise, avoid personal information, basic HTML formatting'), adding no new meaning for exam, llm, model, type, or language parameters. It neither compensates for a gap nor enriches the schema's already complete documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource pairing: 'Submit a short summary of an exam,' with a clarifying example ('such as an AI-generated evaluation of its results'). This distinguishes it from sibling tools like edubase_post_exam (creating an exam) and edubase_post_exam_results_export (exporting results). It does not name a sibling explicitly, so it falls short of a 5, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives usage context by framing the summary as an AI-generated evaluation of exam results, and it sets content constraints ('Keep it concise, use only basic HTML formatting, and avoid personal information'). However, it never states when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites (e.g., whether an exam must already exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_usersAInspect
Assign existing users to an exam by their user identification strings. Use edubase_post_exam_users_generate to create new exam accounts instead.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| users | Yes | comma-separated list of user identification strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the precondition that users must already exist ('existing users') and clarifies this is not a user-creation endpoint. However, it does not disclose response behavior, failure modes, or effects on existing assignments; annotations already cover the read/write/destructive profile, so the description adds only modest behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the main action is front-loaded and the alternative is a single closing clause. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with full schema coverage and clear sibling differentiation, the description is nearly complete. It doesn't describe the return payload or side effects, but with annotations covering safety and no nested objects, the core invocation is fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters fully ('exam identification string' and 'comma-separated list of user identification strings'), so the description adds no new parameter detail. With 100% schema coverage, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the verb 'Assign' and identifies the resource ('existing users to an exam') and the key by which users are identified. It distinguishes this tool from the sibling edubase_post_exam_users_generate by explicitly framing it as operating on existing users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence is an explicit routing instruction: 'Use edubase_post_exam_users_generate to create new exam accounts instead.' This tells the agent when not to use this tool and points to the correct alternative, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_exam_users_generateAInspect
Generate exam accounts from patterns and assign them to an exam. The following placeholders can be used in the patterns: {index} (the index of the generated account), {random:N} (a random alphanumeric string of N characters, unambiguous characters only in passwords), {number:N} (a random numeric string of N characters), {name} and {Name} (the name of the account, only when names is specified, as given and capitalized) and {username} (the generated username, in the name pattern only). Patterns are stored with the exam and reused as defaults for the next call.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string | |
| name | No | full name pattern, defaults to the pattern used previously for this exam, mandatory if the exam has no previously used pattern | |
| count | No | number of accounts to generate, between 1 and 500, ignored when names is specified (default: 1) | |
| names | No | list of names to generate the accounts for, either a list or a comma or newline separated string, the number of accounts generated is the number of names specified and count is ignored | |
| start | No | index to start the generation at (default: the index after the previously generated accounts, 1 for the first call) | |
| emails | No | list of email addresses for the generated accounts, either a list or a comma or newline separated string, only used together with names and the number of items must match the number of names, invalid addresses are replaced with a generated one | |
| password | No | password pattern, defaults to the pattern used previously for this exam, mandatory if the exam has no previously used pattern | |
| username | No | username pattern, defaults to the pattern used previously for this exam, mandatory if the exam has no previously used pattern |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| users | Yes | |
| failed | No | |
| duplicate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description reveals important behavioral details: patterns are stored with the exam and reused as defaults, invalid email addresses are replaced, and count is ignored when names are specified. It adds meaningful side-effect context, though it does not cover authentication, rate limits, or all possible failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: it front-loads the core purpose and then packs the placeholder rules and cross-parameter behavior into a single paragraph. It could be improved with bullet points for readability, but every clause contributes real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and all parameters have schema descriptions, the tool description covers the essential generation semantics, placeholder grammar, and stateful pattern reuse. It does not explicitly guide the agent toward this tool versus the sibling creation tool, but for the tool's own mechanics it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents every parameter, the description adds substantial meaning by defining the placeholder vocabulary and the rules linking parameters: {index}, {random:N}, {name}, {username}, count being ignored with names, emails requiring matching names, and defaults carried from previous calls. This goes well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence clearly states the action ('Generate'), the resource ('exam accounts'), and the outcome ('assign them to an exam'). It is unambiguous, but it does not explicitly contrast with the sibling edubase_post_exam_users, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when exam accounts need to be generated from patterns—and explains pattern persistence and defaults. However, it provides no explicit guidance on when to prefer this over edubase_post_exam_users or when not to use it, leaving usage mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_filebin_uploadAInspect
Generate an upload link for the temporary file storage (filebin). Returns the filebin identifier, the upload link, its expiration and the maximum file size. Upload the file with edubase_filebin, then reference the filebin identifier in the fields accepting files (e.g. question images and attachments). A previous valid link is returned unless force is set.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | type of file to be uploaded (IMAGE/AUDIO/SCORM/FILE) | |
| force | No | force new link for another file even if a previous valid link exists |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| limit | Yes | |
| valid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description reveals important behavior: a previous valid link is returned unless force is set, and the response includes expiration and maximum file size. This helps an agent understand reuse semantics and the effect of the force parameter. No contradiction with readOnlyHint=false or other annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: purpose, return values, workflow, and caching behavior are all included efficiently. It is compact while providing actionable guidance, and the most important action is stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with a rich output schema, the description covers all necessary operational context: what to do before calling, what to do after, how to use the returned identifier, and the effect of force. The mention of the sibling edubase_filebin completes the end-to-end workflow an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% description coverage for both parameters, including the enum for type and a clear explanation of force. The description reinforces the force behavior by explaining caching of a previous link, but does not add substantial new parameter-specific meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Generate[s] an upload link for the temporary file storage (filebin)' and lists the returned values (identifier, link, expiration, max file size). It distinguishes itself from the sibling edubase_filebin (which uploads the file) and edubase_delete_filebin_upload (which deletes an upload), so an agent can easily tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear workflow: generate the link first, upload the file with edubase_filebin, then reference the filebin identifier in file-accepting fields. It implies when this tool is used without explicitly stating exclusions or alternatives, but the sequencing is concrete enough for an agent to invoke it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_integrationAInspect
Create a new API or LMS (LTI 1.0/1.1 or 1.3) integration. Returns the integration identification string, get its keys with edubase_get_integration_keys.
| Name | Required | Description | Default |
|---|---|---|---|
| lti | No | LTI version, required for LMS integrations | |
| type | No | type of the integration (default: api) | |
| title | Yes | title of the integration | |
| platform | No | LMS platform URL, only necessary for LMS integrations! | |
| description | No | optional short description | |
| organization | No | organization identification string to assign the integration to, only an organization of the API application owner can be used, always the organization of the user for organizational members |
Output Schema
| Name | Required | Description |
|---|---|---|
| integration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, which aligns with the description's 'create' action. However, annotations do not provide coverage on other behavioral aspects, and the description does not disclose details such as any required authentication, potential side effects like creating default resources, or what happens if the title already exists. The description adds minimal context beyond the basic 'create' semantics, so it relies on the schema for parameters. A score of 3 is appropriate because there is no contradiction and some value is added by clarifying the resource type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that are to the point. The first sentence states the primary purpose, and the second sentence provides a clear next-step instruction. There is no fluff or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively complex with multiple types of integrations and many parameters, but the schema covers all parameters and there is an output schema. The description provides a clear purpose and next-step guidance, which is sufficient for an agent to call the tool correctly. The lack of detailed behavioral nuances (like error handling) is minor given the annotations and schema coverage. Almost complete, missing only minor edge-case details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions), so the schema fully documents each parameter. The description adds no further parameter semantics beyond what the schema provides. However, the description does not repeat or clarify any of the parameters, so the baseline of 3 is maintained because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new API or LMS (LTI 1.0/1.1 or 1.3) integration, identifying the specific resource type and the action. It also distinguishes from related tools like edubase_get_integrations and edubase_get_integration_keys by outlining the follow-up step of retrieving keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions that it returns the integration identification string and directs the agent to use edubase_get_integration_keys to get the keys, providing clear post-creation guidance. It also implies that this is the creation tool, distinguishing it from patch/delete integration tools based on the verb. This is sufficient for when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_integration_keysAInspect
Rotate the keys and secrets of an integration and return the new ones, the previous keys stop working. Confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| integration | Yes | integration identification string |
Output Schema
| Name | Required | Description |
|---|---|---|
| app | No | |
| jwk | No | |
| pem | No | |
| secret | No | |
| consumer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a material behavioral consequence—previous keys stop working—which goes beyond the annotations' simple write/read flags. Also states that new keys are returned and that user confirmation is required, giving an agent the risk context needed before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the core action and consequence in the first and the safety precondition in the second. No redundant wording; every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with an output schema, the description tells the agent what happens, what to do before calling, and what to expect. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the only parameter ('integration identification string') with 100% coverage. The description adds no parameter-level detail beyond 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action ('Rotate') and target ('keys and secrets of an integration'), and specifies the outcome: new keys are returned and the previous ones stop working. This clearly distinguishes it from read-oriented siblings like edubase_get_integration_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction to 'Confirm with the user first' establishes a clear precondition and implies this is a consequential operation, not a routine read. It does not explicitly name alternatives or enumerate when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_metrics_customAInspect
Set a custom metric to a value, or increment it with a + prefixed value (e.g. +1). Returns the saved value.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | target value (also accepts increments with a + prefix) | |
| metric | Yes | metric name |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | Yes | |
| metric | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent, non-destructive operation. The description adds meaningful behavioral nuance: the + prefix triggers incrementing rather than overwriting, and the saved value is returned. This goes beyond the annotations and helps the agent predict the outcome.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the operation, the increment variant, an example, and the return value. There is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity—two required parameters, full schema coverage, and an output schema—the description is largely complete. It explains both usage modes and the return value. A small gap is the absence of context about prerequisite setup or where custom metrics are scoped, but this is not critical for a basic call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description reinforces the value parameter's dual behavior with an example ('+1') but adds no new semantic information beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Set', 'increment') and identifies the resource ('custom metric'), clearly distinguishing this operation from sibling tools. It also states the two supported input modes and the return behavior, so an agent knows exactly what the tool does without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool—whenever a custom metric needs to be set or incremented—but it does not provide explicit guidance on when to prefer this over alternatives or when not to use it. No exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_organizationAInspect
Create an organization with a title and optional description, website, contact details and custom fields. Returns the organization identification string.
| Name | Required | Description | Default |
|---|---|---|---|
| No | contact email address | ||
| phone | No | contact phone number | |
| title | Yes | title of the organization | |
| custom | No | custom field data, keyed by field name (sent as `custom_{field}`), only if the specified field is configured for the target EduBase instance | |
| domain | No | domain name (FQDN) for the organization without www prefix, needs special privileges to set! | |
| website | No | homepage URL | |
| description | No | optional short description |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a mutating, non-read-only operation, and the description's 'Create' is consistent. The description adds the useful fact that the response is an organization identification string, but it doesn't discuss side effects, idempotency implications, or authorization beyond what annotations and schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action ('Create an organization'), lists the optional parameters at a high level, and closes with the return value. Every phrase carries useful information with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, annotations, and an output schema, the description covers the essential call contract: what is created, which optional fields exist, and what is returned. Minor details like the special privileges for 'domain' are left to the schema, which is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a descriptive entry in the schema. The description only summarizes optional field categories without adding semantic detail beyond the schema, so it earns the baseline score for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and resource ('an organization'), and enumerates the optional fields and return value. The create verb clearly distinguishes it from sibling patch/delete/get organization tools, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are provided. The 'Create' verb implies it should be used for new organizations rather than existing ones, but it doesn't mention patch_organization for updates or delete_organization, leaving usage guidance to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_organization_departmentAInspect
Create a department in an organization. Members of a department can see the members of the departments below it, but permissions are not inherited.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | optional external unique department identifier | |
| title | Yes | name of the department, must be unique within the organization | |
| parent | No | optional name (or external identifier) of the parent department | |
| leaders | No | optional comma-separated list of user identification strings of the leaders (must be members of the organization, maximum 5) | |
| organization | Yes | organization identification string | |
| permission_content | No | optional permission level to contents in organization given to the members (none / view / report / control / modify / grant / admin) (default: none) | |
| permission_members | No | optional permission level to members in organization given to the members (none / department / organization) (default: none) | |
| permission_organization | No | optional permission level to organization given to the members (member / teacher / reporter / supervisor / admin) (default: member) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| department | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the agent knows this is a non-read, non-destructive write operation. The description adds a meaningful behavioral nuance about visibility of sub-department members and lack of permission inheritance, which goes beyond the annotations. It does not describe other side effects, error conditions, or idempotency implications, but the core behavior is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences. The first sentence states the primary purpose, and the second adds a relevant behavioral caveat about hierarchy and permissions. There is no redundancy or filler, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, 3 enums, and an output schema, the description covers the essential purpose and a key behavioral trait. It does not mention prerequisites like authentication or the need for an existing organization, but the schema's required parameters (organization, title) imply that. The presence of an output schema means return values are documented elsewhere, so the description is adequately complete for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – every parameter has a description, including enums and defaults. The description does not add any parameter-specific information beyond the schema, so it adds no extra semantic value. The baseline of 3 applies because the schema already carries the full parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Create') and resource ('a department in an organization'), making the purpose unambiguous. It distinguishes itself from sibling operations like patch and delete through the explicit 'Create' action, and the note about department hierarchy adds specificity without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context about department hierarchy and permission non-inheritance, which helps an agent understand the implications of creating a department. However, it does not explicitly mention when to use this tool versus alternatives like edubase_patch_organization_department or edubase_delete_organization_department, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_organization_membersBInspect
Assign user(s) to an organization. Updates memberships if already member of the organization.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | comma-separated list of user identification strings | |
| notify | No | notify users (default: false) | |
| department | No | optional name of department (or its external identifier if no department has this name), the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost | |
| organization | Yes | organization identification string | |
| permission_content | No | optional permission level to contents in organization (none / view / report / control / modify / grant / admin) (default: none) | |
| permission_members | No | optional permission level to members in organization (none / department / organization) (default: none) | |
| permission_organization | No | optional permission level to organization (member / teacher / reporter / supervisor / admin) (default: member) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds a useful behavioral detail: if a user is already a member, the membership is updated instead of causing a duplicate or error. It does not mention return values, side effects, or required permissions, but the annotations already establish this is a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary action is front-loaded, and the behavioral caveat about existing memberships is expressed in a single additional sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With complete parameter documentation and annotations covering mutability, the description is sufficient for an agent to invoke the tool correctly. The main gap is the lack of explicit differentiation from sibling tools and any mention of return behavior, but these are not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all seven parameters. The description does not add parameter-level guidance, which is acceptable but also not above the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Assign user(s) to an organization.' It also clarifies that existing memberships are updated rather than rejected. It does not explicitly name sibling alternatives, but the singular 'an organization' distinguishes it from tools like edubase_post_organizations_members and edubase_post_user_organizations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to prefer this tool over closely related siblings such as edubase_post_organizations_members, edubase_post_user_organizations, or edubase_post_class_members. The description states what happens for existing members, but gives no invocation conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_organizations_membersBInspect
Assign user(s) to organization(s). Updates memberships if already member of an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | comma-separated list of user identification strings | |
| notify | No | notify users (default: false) | |
| department | No | optional name of department (or its external identifier if no department has this name), the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost | |
| organizations | Yes | comma-separated list of organization identification strings | |
| permission_content | No | optional permission level to contents in organization (none / view / report / control / modify / grant / admin) (default: none) | |
| permission_members | No | optional permission level to members in organization (none / department / organization) (default: none) | |
| permission_organization | No | optional permission level to organization (member / teacher / reporter / supervisor / admin) (default: member) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the upsert behavior ('Updates memberships if already member'), which is valuable and goes beyond the annotations that only indicate a write operation. However, it does not mention side effects like permission changes, notification behavior, or department-related competency updates that are hinted by parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action and a key behavioral note. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, 3 enums, and no output schema, the description is minimal. It covers the core action but omits guidance on optional parameters, side effects, or which sibling tool to choose, leaving the agent to rely heavily on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The tool description does not add additional semantic meaning beyond the schema, but it does reinforce the concept of updating memberships, which is marginally helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Assign') and resource ('user(s) to organization(s)'), and clarifies the upsert behavior. It is clear but does not explicitly differentiate from similar siblings like edubase_post_organization_members or edubase_post_user_organizations, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives. It does not mention exclusions, prerequisites, or compare with sibling tools that handle similar assignments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_organization_webhookAInspect
Create a webhook for an organization, called on exam results, Quiz practice results or manual API triggers, with optional authentication and retries. Returns the webhook identification string. Test it with edubase_post_organization_webhook_trigger.
| Name | Required | Description | Default |
|---|---|---|---|
| retry | No | How to retry webhook notifications on failure (default: error): - none: no retry - error: delayed retry on any error | |
| title | Yes | title of the webhook | |
| method | No | HTTP method to use for webhook notifications (default: POST) - POST - GET | |
| endpoint | Yes | URL to send webhook notifications to | |
| extra_data | No | additional data (as JSON encoded string) to send with the webhook notification | |
| organization | Yes | organization identification string | |
| trigger_event | Yes | Type of event to trigger webhook: - exam-play-result: triggers when a user (must be member of the organization) completes an exam in the organization - quiz-play-result: triggers when a user (must be member of the organization) completes a quiz in practice mode in the organization - api: triggers when a manual API call is made (useful for testing and debugging) | |
| authentication | No | Type of authentication (default: none): - none: no authentication - key: use a secret key (or password) for authentication | |
| authentication_key | No | secret key (or password) to use for authentication, required if authentication is set to key | |
| authentication_send | No | How to send authentication data (default: data): - header: as header field - bearer: as Bearer token in Authorization header - data: as data field (in body or query string) | |
| authentication_send_data | No | name of data field to send authentication data in, required if authentication is set to key and authentication_send is set to data | |
| authentication_key_custom | No | custom field name to use as the authentication key, required if authentication is set to key, mutually exclusive with authentication_key | |
| authentication_send_header | No | name of header field to send authentication data in, required if authentication is set to key and authentication_send is set to header |
Output Schema
| Name | Required | Description |
|---|---|---|
| webhook | Yes | |
| organization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the agent knows this is a non-idempotent write operation. The description adds meaningful behavioral context: it states the return value (webhook identification string), the trigger conditions, and that authentication and retries are optional. It does not detail side effects or failure modes, but the annotations plus description cover the key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core purpose, then adds the return value and a pointer to the test tool. Every clause earns its place; no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter creation tool with a full schema and an output schema, the description is complete enough: it states the purpose, return value, and a testing path. It does not explain the authentication/retry configuration details, but those are fully documented in the schema, and the output schema covers return values. The only minor gap is not mentioning that updates are handled by edubase_patch_organization_webhook, but that is not essential for invoking this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters. The description adds a little context by naming the trigger events and mentioning optional authentication/retries, but it does not add meaning beyond the schema's per-parameter descriptions. Baseline 3 is appropriate when the schema carries the full parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create'), a resource ('webhook for an organization'), and the triggering conditions ('exam results, Quiz practice results or manual API triggers'). It also mentions optional authentication and retries, and notes the return value ('webhook identification string'). This clearly distinguishes it from sibling tools like edubase_delete_organization_webhook and edubase_post_organization_webhook_trigger.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use this tool: to create a webhook for an organization, and explicitly suggests testing with edubase_post_organization_webhook_trigger. It does not explicitly state when not to use it or name alternatives like edubase_patch_organization_webhook for updates, but the trigger event enum and the mention of manual API triggers provide useful usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_organization_webhook_triggerAInspect
Trigger an organizational webhook call with optional custom payload. Only triggers webhooks with trigger_event set to api!.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | custom payload data to be sent with the webhook call, must be a valid JSON string | |
| webhook | Yes | webhook identification string | |
| organization | Yes | organization identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint=false, destructiveHint=false) and don't conflict. The description adds the trigger_event constraint but does not explain what happens when triggered (e.g., HTTP request sent, side effects, success/failure behavior). Given the sparse annotations, it would benefit from more behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and resource, and a concise condition. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 3 params and no output schema, the description covers purpose and key constraint. However, it lacks details like what the trigger does (e.g., sends HTTP request), required permissions, or error handling. Completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters with clear descriptions. The description adds only 'with optional custom payload', which matches the data parameter. No additional meaning beyond schema is provided, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Trigger'), the resource ('organizational webhook call'), and includes a crucial constraint ('Only triggers webhooks with trigger_event set to api!'). It effectively distinguishes from sibling tools like delete or patch webhook tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states a key usage condition ('Only triggers webhooks with trigger_event set to api!'), which helps the agent decide when to use this tool. However, it does not provide explicit alternatives or when-not-to-use scenarios, but the condition itself is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_questionAInspect
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!
| Name | Required | Description | Default |
|---|---|---|---|
| ai | Yes | Flag 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. | |
| id | Yes | External unique question identifier for question management. | |
| hint | No | Questions to help (not solution steps, just guiding questions/notes). | |
| note | No | The text that appears right below the question. | |
| path | No | Path where question will be stored in personal QuestionBase. | |
| tags | No | Tag questions with custom user-defined tags. Use ID or code of pre-registered tags. Multiple tags separated by triple-and operators ("&&&"). | |
| type | Yes | Type of the question. | |
| graph | No | Attach a graph to the question. | |
| group | No | Add 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. | |
| image | No | Attach 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. | |
| label | No | Categorize questions with instance-level labels. Pre-defined values specific to each EduBase instance. Multiple labels separated by triple-and operators ("&&&"). | |
| video | No | EduBase video to help solve the question, revealed on demand. The video code of an existing EduBase video can be provided. | |
| answer | Yes | The 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 | |
| points | No | Maximum points for a fully correct answer. Default: 1 point. | |
| skills | No | Define skills associated with the question, identified by skill identifiers. Separate multiple skills with triple-and operators ("&&&"). | |
| source | No | Specify source of question content (not shown to test takers). | |
| content | Yes | The 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. | |
| options | No | Incorrect 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 ("&&&"). | |
| subject | No | Subject classification for organizing questions. | |
| category | No | Category, another layer of organization as seen in SUBJECT | |
| decimals | No | Decimal precision. Default: 2. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions. | |
| grouping | No | Used 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. | |
| language | No | The language of the question, in Alpha-2 code format (according to ISO 639-1). | |
| solution | No | Step-by-step solution. | |
| subpoints | No | Define 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). | |
| tolerance | No | Evaluation tolerance method. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions. | |
| attachment | No | Attach 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. | |
| difficulty | No | Difficulty level of the question. Scale: 1 (very easy) - 5 (very difficult). Default: 0 (not classified). | |
| file_count | No | Limit the number of files that can be uploaded. Applicable only for FILE questions. Integer between 1-25. | |
| file_types | No | Limit the filetypes that can be uploaded. Applicable only for FILE questions. File extensions separated by triple-and operators ("&&&"). | |
| parameters | No | Parameter definitions for dynamic question generation. Separate multiple parameters with triple-and operators ("&&&"). Up to 128 parameters can be defined! | |
| subscoring | No | Method for calculating partial credit for partially correct answers. Not applicable for CHOICE, READING and FREE-TEXT questions. | |
| answer_hide | No | Controls whether correct answers are hidden on the results page. | |
| constraints | No | Define rules that parameter combinations must satisfy. | |
| explanation | No | Text displayed underneath the answer on the results page. | |
| media_audio | No | Attach 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_video | No | Attach a video to the question. The video code of an existing EduBase video can be provided. | |
| options_fix | No | Controls the arrangement of answers and options. | |
| answer_label | No | Text displayed in/above the input field during the test. Separate multiple labels with triple-and operators ("&&&"). Automatically activates the answer_order function. | |
| answer_order | No | Controls whether the sequence of multiple answers matters. | |
| hint_penalty | No | Point deduction for using hints/solutions/videos during a test. | |
| organization | No | Organization identification string to assign the question to. Only an organization of the API application owner can be used. Only the owner of the question (or an administrator) can change the organization of an existing question. Send "none" (or an empty value) to remove the question from its current organization. Always the organization of the user for organizational members. | |
| private_note | No | Private notes (not shown to test takers). | |
| answer_format | No | Defines how to display the answer on the results page. Only applicable for FREE-TEXT questions. | |
| hotspot_image | No | The 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_zones | No | Zones accepted as answers. Applicable only for HOTSPOT questions. | |
| main_category | No | The name of the category (for which CATEGORY will be a subcategory). | |
| options_order | No | Define exact presentation order of answers and options. | |
| video_penalty | No | Point deduction for video assistance used (NONE, ONCE:N%). Default: NONE. | |
| answer_require | No | Number of answers required for maximum score. Only applicable for questions with multiple valid answers where only a subset needs to be provided. | |
| datetime_range | No | Date/time range (interval) question. Applicable only for DATE/TIME questions. | |
| freetext_rules | No | Automatic evaluation of free text questions. Applicable only for FREE-TEXT questions. | |
| freetext_words | No | Limit 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_scoring | No | Controls when to enable manual scoring. Not applicable for READING and FREE-TEXT questions. | |
| penalty_points | No | Points deducted for completely incorrect answers. | |
| solution_image | No | Attach 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_choices | No | Maximum number of options the test taker can select. Only applicable for MULTIPLE-CHOICE questions. | |
| numerical_range | No | Number range (interval) question. Only applicable for NUMERIC questions. | |
| parameters_sync | No | Controls synchronization of LIST parameter selections. | |
| penalty_scoring | No | Controls how penalty points should be applied. | |
| question_format | No | Controls question text rendering. | |
| rubric_criteria | No | Rubric criteria and score in percentage for manual or semi-automatic scoring. Format: {criterion; points}. Applicable for FILE and FREE-TEXT questions, or after enabling manual_scoring. | |
| expression_check | No | Define how expressions should be validated (RANDOM, EXPLICIT, COMPARE). Default: RANDOM. | |
| solution_penalty | No | Point deduction for viewing steps of the solution (NONE, ONCE:N%). Default: NONE. | |
| answer_indefinite | No | Allows users to add any number of input fields using + and - buttons. | |
| datetime_precision | No | Date/time precision. Applicable only for DATE/TIME questions. Accepted values: YEAR / MONTH / DAY. Default: DAY. | |
| expression_decimals | No | Sets precision for decimal calculations. Default: 2. | |
| expression_extended | No | Enable additional mathematical functions. Activates support for custom base logarithms (e.g., log2(4)). Enables factorial operations (e.g., 5!, 1!+2!+3!). | |
| expression_variable | No | Specifies variable names used in expressions (separate multiple variables with &&&). Default: x. | |
| freetext_characters | No | Limit 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_functions | No | Controls whether functions can be used in user inputs. Default: +. | |
| expression_random_type | No | Type of generated test values (INTEGER, FLOAT). Specify per variable with triple-and operators ("&&&"). Only applicable when expression_check=RANDOM. | |
| expression_random_range | No | Define value generation ranges (format: [min-max]). Specify per variable with triple-and operators ("&&&"). Only applicable when expression_check=RANDOM. | |
| expression_random_tries | No | Number of validation points. Default: 5. Only applicable when expression_check=RANDOM. | |
| truefalse_third_options | No | Activate 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_goal | No | Define 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_inside | No | Require 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_outside | No | Exclude 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_label | No | Label 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
| Name | Required | Description |
|---|---|---|
| question | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the mutation signal (readOnlyHint false, idempotentHint false), and the description's 'Publish or update' is consistent with those. The description adds the useful caveat that type-specific fields like hotspot_zones and hotspot_image may be required, but it does not disclose side effects, validation failures, or update semantics, which is acceptable but not exceptional given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, followed by domain context and a single high-value example. No filler or repetition; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 79-parameter tool the description is relatively short, but the input schema is fully documented and an output schema exists, so the burden on the description is lower. It supplies the missing cross-cutting warning about type-specific required fields; it does not need to enumerate parameters or return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantic value: it warns that type-matching fields must be considered and calls out the HOTSPOT pair (hotspot_zones and hotspot_image) as required, which the schema does not mark required. This goes beyond restating parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource statement ('Publish or update a question') and reinforces the domain by placing questions at the lowest level of the hierarchy. It does not explicitly differentiate from sibling tools such as edubase_post_question_id or edubase_post_quiz_questions, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives actionable in-tool guidance ('Always check what the fields named like the type of the question do') with a concrete HOTSPOT example, but it never states when to prefer this tool over related alternatives such as edubase_post_quiz_questions. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_question_exportARead-onlyInspect
Generate download link for exporting the question (in JSON format). If a previous valid link exists, it will be returned instead.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | external unique question identifier |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | Yes | |
| valid | Yes | |
| question | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: it discloses that if a previous valid link exists, it will be returned instead of generating a new one. This is a caching/reuse behavior that an agent would not know from the readOnlyHint=true annotation alone. The description also implies the operation is non-destructive and read-only, consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The primary action is stated first, followed by the important caching behavior. Every word earns its place, and the description is appropriately sized for a single-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with a readOnlyHint and an output schema, the description is largely complete. It explains the core behavior and the caching nuance. It doesn't mention the format of the download link or any expiration details, but the output schema likely covers the return structure. The description is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single 'id' parameter as an external unique question identifier. The description doesn't add additional meaning about the parameter beyond what the schema provides, but it does clarify the parameter's role in the export context. Baseline 3 is appropriate since the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: generating a download link for exporting a question in JSON format. It identifies the specific resource (question) and the action (generate download link). However, it doesn't explicitly differentiate from sibling tools like edubase_get_question or edubase_post_question_export, though the export-specific verb and format make it reasonably distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need a download link for a question export. It doesn't explicitly state when not to use it or mention alternatives like edubase_get_question for retrieving question data directly. The context is clear enough for an agent to infer the primary use case, but lacks explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_question_idCInspect
Set external unique question identifier for question identified by a question identification string.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | external unique question identifier | |
| question | Yes | question identification string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a write operation (readOnlyHint=false) but the description adds minimal behavioral context beyond 'Set'. It does not disclose side effects, idempotency (annotation says false), permission requirements, or whether the operation overwrites or merges existing identifiers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that concisely conveys the core purpose. It is appropriately front-loaded and contains no unnecessary words, though it could be slightly rephrased for even greater clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description provides adequate purpose but lacks information about constraints, success/failure behavior, or the meaning of the external identifier. Annotations partially fill the gap, but more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already described in the schema. The description adds no further meaning beyond what the schema provides, placing it at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'external unique question identifier' for a question. It distinguishes the tool from siblings like edubase_post_question and edubase_get_question_id by specifying the action of setting an external ID, but it does not explicitly contrast with nearby tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., edubase_post_question for creating questions, or edubase_get_question_id for retrieving IDs). No conditions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_quizCInspect
Create a new Quiz set. Quiz sets are collections of questions that can be used for practice or to power multiple Exams.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | External unique Quiz identifier. Should be maximum 64 characters long! | |
| mode | No | Sets how questions are displayed during the Quiz. (default: TEST) - TEST: all questions are displayed at once, user can answer them in any order and switch between them - TURNS: questions are displayed one by one, only one question is visible at a time and the user must answer it before moving to the next question | |
| type | No | Type of the Quiz set. (default: set) - set: for practice purposes - final: for course exam purposes - exam: for exam purposes - private: for private purposes (e.g testing) | |
| title | Yes | title of the Quiz set | |
| language | No | desired Quiz set language | |
| description | No | short description | |
| organization | No | organization identification string to assign the Quiz set to, only an organization of the API application owner can be used, always the organization of the user for organizational members | |
| copy_settings | No | optional Quiz set identification string to copy settings from | |
| copy_questions | No | optional Quiz set identification string to copy questions from |
Output Schema
| Name | Required | Description |
|---|---|---|
| quiz | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and non-idempotent (idempotentHint=false). The description adds no extra behavioral context such as permissions, side effects, or the fact that it returns a new resource ID. It simply states the creation action, which is already implied by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the action front-loaded and a brief definition following. It is concise and avoids unnecessary detail, though it could be slightly richer without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 9 parameters and an output schema, the description is minimal. It doesn't explain when to create a quiz set versus an exam, any prerequisites, or typical use cases beyond the short definition. The existence of an output schema covers return values, but the description still lacks operational context that would help an agent decide to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is documented in the schema itself. The description does not add any parameter-specific meaning beyond that baseline, so a 3 is appropriate per the scoring rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create' and the resource 'Quiz set', and adds a definition that distinguishes it from exams. It doesn't explicitly name siblings like post_exam, but the resource is specific enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as edubase_post_exam or edubase_post_question. It only defines what a quiz set is, leaving the selection decision to the agent without explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_quiz_grading_presetAInspect
Create a new custom grading preset. Needs the custom grading feature to be enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | type of the grading preset (custom: freely named grades, at least 2 items - go-nogo-custom: successful/unsuccessful grading with a custom threshold, exactly 2 items - hungarian-school: Hungarian primary and secondary school grading (1-5), exactly 5 items - hungarian-university: Hungarian university grading (1-5), exactly 5 items) | |
| title | Yes | title of the grading preset | |
| grades | Yes | thresholds and grades of the preset, in ascending order | |
| language | No | language of the grading preset (default: content language of the API application owner) |
Output Schema
| Name | Required | Description |
|---|---|---|
| preset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate readOnlyHint=false (mutation) and destructiveHint=false, but the description adds a specific behavioral requirement: the custom grading feature must be enabled. This is valuable context not captured by annotations. However, it does not describe side effects, validation failures, or the response format beyond what the output schema covers. The added prerequisite is useful but the overall behavioral disclosure remains sparse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and then states the prerequisite. It is concise, with no filler words, and every part adds value. It is appropriately sized for a tool with a rich schema that carries most of the details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations are quite detailed, covering parameters, types, and read-only/destructive hints. The description adds the feature requirement but does not clarify that non-custom preset types are also possible, nor does it explain the implications of the 'custom grading feature' requirement (e.g., what happens if disabled). Given the complexity of the tool (4 parameters, 3 required) and the rich schema, the description is adequate but not fully complete; it leaves the agent to infer some context from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a detailed description in the schema. The tool description does not mention any parameters or add meaning beyond the schema. According to the rubric, a high coverage baseline is 3, and the description adds no additional parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create a new custom grading preset.' It uses a specific verb and resource, and the sibling list shows other operations (get, patch, delete), so the create intent is unambiguous. However, the word 'custom' is slightly misleading because the 'type' parameter accepts non-custom types (hungarian-school, hungarian-university), so the purpose is not perfectly aligned with the full scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite: 'Needs the custom grading feature to be enabled.' This gives some context on when the tool can be used. However, it does not explicitly state when to prefer this over the patch/delete/get siblings, nor does it mention that it is the only way to create a new preset. The usage is implied rather than explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_quiz_questionsAInspect
Assign question(s) to a Quiz set, or one of its question group. Questions can exist independently from Quiz sets.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string | |
| group | No | question group title | |
| questions | Yes | comma-separated list of question identification strings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic safety traits (readOnlyHint=false, destructiveHint=false). The description adds that questions can exist independently from quiz sets, which is useful behavioral context. However, it does not explain what happens if the quiz/group doesn't exist or if questions are already assigned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first states the primary action, and the second adds important context about independence. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and the simplicity of the tool (assign questions), the description covers the core use case adequately. It could mention error states or prerequisites, but the information provided is sufficient for an AI agent to understand the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters (100%) with descriptions. The description adds minimal extra meaning beyond the schema—only the implicit context that 'group' is a question group title, which is already in the schema. No elaboration on format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'assign' and the resource 'question(s) to a Quiz set, or one of its question group,' distinguishing it from sibling tools like edubase_delete_quiz_questions (remove) and edubase_post_question (create new). The second sentence adds context about questions existing independently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when assigning existing questions to a quiz or group, but does not explicitly state when to use this tool versus alternatives like edubase_post_question for creating new questions or edubase_delete_quiz_questions for removing. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_quiz_settingsAInspect
Change individual settings of a Quiz set: question shuffling, time limits, grading and grading threshold. Only the given settings are changed, and the updated settings are returned. List the available grading presets with edubase_get_quiz_grading_presets.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string | |
| grading | No | grading of the Quiz set, the code of a grading preset (see edubase_get_quiz_grading_presets), or "none" to disable grading | |
| shuffle | No | shuffle questions for every play, when disabled the current order of the questions is kept | |
| roundtime | No | time limit of a single question in seconds, only available for turn based (TURNS mode) Quiz sets. Accepts a number or a numeric string, 0 or "default" if there is no time limit | |
| timelimit | No | time limit of the whole test in seconds. Accepts a number or a numeric string, 0 or "default" if there is no time limit | |
| grading_threshold | No | threshold of the grading in percentage, between 0 and 100, only available for grading presets with a configurable threshold (of the go-nogo-custom type), can be changed without selecting the grading preset again |
Output Schema
| Name | Required | Description |
|---|---|---|
| quiz | Yes | |
| grading | Yes | |
| shuffle | Yes | |
| roundtime | Yes | |
| timelimit | Yes | |
| grading_threshold | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as non-read-only and non-idempotent; the description adds useful behavior beyond that: it is a partial update rather than a full replacement, and it states that the updated settings are returned. There is no contradiction with the annotations, though side-effect scope like permission requirements or follow-up effects is not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences carry the purpose, partial-update behavior, return value, and the relevant helper tool. There is no filler, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool, the description plus fully documented schema and output schema cover what an agent needs to invoke it correctly: required quiz identifier, optional settings, grading-preset source, and return behavior. It is slightly incomplete only in not routing around the patch/put quiz-settings siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds only a high-level orientation and the grading-preset source, without providing meaning beyond the schema fields; this matches the baseline for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Change'), a resource ('individual settings of a Quiz set'), and enumerates the affected settings: shuffling, time limits, grading, and grading threshold. It clearly states what the tool does, but it does not distinguish this operation from the sibling tools edubase_patch_quiz_settings and edubase_put_quiz_settings, so it earns 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies partial-update usage ('Only the given settings are changed') and points to edubase_get_quiz_grading_presets as a prerequisite for grading values. However, it never says when to prefer this tool over the similar patch/put quiz-settings siblings, so usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_userAInspect
Create a new EduBase user account with a username, name, email address and optional details (group, language, timezone, custom fields, etc.). A random initial password is generated if none is given. Returns the user identification string, and the username and password for non-exam accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | user is only allowed to login when accessing exams (default: false) | |
| color | No | desired favorite color (default/branding/red/blue/yellow/green/purple/gray) (default: default) | |
| Yes | valid email address | ||
| group | No | name of the user group | |
| phone | No | valid phone number in format "+prefix number" without special characters | |
| custom | No | custom field data, keyed by field name (sent as `custom_{field}`), only if the specified field is configured for the target EduBase instance | |
| gender | No | gender ("male", "female", or "other") | |
| notify | No | notify user via email (or SMS) (default: false) | |
| language | No | desired account language (default: API application owner's language) | |
| password | No | password (4-64 characters) (default: initial random password is automatically generated) | |
| template | No | a template ID for the new account (default: none) | |
| timezone | No | desired timezone (default: API application owner's timezone) | |
| username | Yes | username (4-64 characters) | |
| birthdate | No | date of birth | |
| full_name | No | override automatic full name (1-255 characters) | |
| last_name | Yes | last name (1-64 characters) | |
| first_name | Yes | first name (1-64 characters) | |
| display_name | No | override automatic display name (1-255 characters) | |
| must_change_password | No | user is forced to change password on first login (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| password | No | |
| username | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic safety hints, and the description adds meaningful behavioral context: automatic random password generation when none is supplied, and the return semantics (user identification string plus username/password for non-exam accounts). This goes beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The core purpose is front-loaded, and key behavioral notes are placed without obscuring the main function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 19 parameters, a nested object, and an output schema, the description provides a solid high-level summary and covers important return behavior. It does not detail every optional parameter, but the schema already handles that, so the description is complete enough for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description enumerates a few optional field categories (group, language, timezone, custom fields) but does not add additional semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Create') and resource ('EduBase user account'), and lists the key identifying fields. This clearly distinguishes it from sibling user tools like edubase_get_user, edubase_patch_user, and edubase_delete_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for creating new accounts, which is distinct from update/delete/read siblings, but it does not explicitly state when to prefer this over alternatives or mention any exclusions or prerequisites. The usage context is clear enough from the verb, but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_user_classesAInspect
Assign user to class(es). Updates membership if already member of a class.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string | |
| notify | No | notify user (default: false) | |
| classes | Yes | comma-separated list of class identification strings | |
| expires | No | expiry in days or YYYY-MM-DD HH:ii:ss |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read, non-destructive mutation. The description adds that it updates existing memberships, which is useful but still vague on specifics (e.g., how updates differ from initial assignments, permissions required). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The core action and an important nuance (updates existing membership) are front-loaded. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic action and update behavior, but with no output schema and 4 parameters, more detail on expected response or parameter effects (e.g., what 'notify' does, 'expires' behavior) would improve completeness. Adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter. The description does not add any additional meaning or context beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Assign user to class(es)') and adds the update behavior detail, clearly distinguishing it from siblings like edubase_get_user_classes or edubase_post_class_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., edubase_post_class_members, edubase_classes_members). No explicit when/when-not or trade-offs are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_user_groupAInspect
Move a user to another user group, identified by its code. Returns whether the group was changed.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string | |
| group | Yes | user group code |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| changed | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and destructiveHint=false, covering the mutation and safety profile. The description adds useful context by specifying that the group is identified by a code and that the tool returns whether the group was changed. However, it does not disclose edge-case behavior, such as what happens if the user or group does not exist, or whether membership in the previous group is removed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, focused sentences with no filler. The core action is front-loaded, and every clause adds information: the operation, the identification scheme, and the return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter operation with a provided output schema, the description is sufficiently complete: it states the action, identifies how the group is selected, and mentions the return value. It omits error-handling details, but those are not critical for such a straightforward move operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have complete schema descriptions ('user identification string' and 'user group code'), so the baseline of 3 applies. The tool description only reinforces that the group is referenced by its code, which is already in the schema, and adds no additional format, example, or relationship detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Move') and target resource ('user to another user group'), and adds the identifying scheme ('by its code') and the return value. This clearly distinguishes it from sibling GET tools like edubase_get_user_group and association tools like edubase_post_user_classes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: to relocate a user to a different group. It doesn't mention alternatives or exclusions, but the use of 'Move' rather than 'Add' or 'Get' implicitly separates it from related actions, and no other sibling tool appears to handle this exact operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_user_loginAInspect
Generate login link. If a valid link with the same settings exists, it will be returned instead of creating a new one.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | No | the exam identification string to redirect the user to (mutually exclusive with redirect) | |
| user | Yes | user identification string | |
| short | No | generate shortened (eduba.se) link (only if feature is enabled on EduBase) (default: false) | |
| logins | No | total count the link can be used to login users (default: 1) | |
| expires | No | expiry in days (1-30) or YYYY-MM-DD (default: 1 day) | |
| redirect | No | redirect after a successful login (URI path or [{content_type}:{tag}]) | |
| template | No | a template ID for the login link |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| user | Yes | |
| count | Yes | |
| valid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait beyond the annotations: if a valid link with the same settings exists, it is returned instead of creating a new one. This is consistent with readOnlyHint=false and does not contradict idempotentHint=false because the deduplication is conditional. It does not explain permissions or side effects, but annotations already cover the basic safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The main purpose is front-loaded, and the second sentence adds meaningful behavioral information about link reuse rather than repeating schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full parameter documentation, an output schema, and available annotations, the description covers the core behavior and the important deduplication nuance. The main gap is the lack of explicit guidance about choosing this tool over sibling login-related endpoints, but that is more of a usage-guideline concern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all parameters. The description adds no direct parameter-level detail, though the phrase 'same settings' hints that the combination of parameters determines link uniqueness. This meets the baseline for a schema-covered tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: generate a login link, and the second sentence adds a useful distinction by describing the reuse of existing valid links. It does not explicitly differentiate this from sibling tools like edubase_get_user_login or edubase_post_exam_autologin, so it falls short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied: call this when a login link for a user is needed. However, there is no explicit when-to-use versus alternative tools, and no mention of sibling operations like edubase_get_user_login or edubase_delete_user_login, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_user_nameAInspect
Update the name of a user: first and last name, optionally the full and display name. Returns whether the name was changed.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string | |
| full_name | No | full name (1-255 characters) | |
| last_name | Yes | last name (1-64 characters) | |
| first_name | Yes | first name (1-64 characters) | |
| display_name | No | display name (1-255 characters) |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | Yes | |
| changed | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation is a non-read (readOnlyHint=false) and non-destructive update. The description adds the useful detail that it returns whether the name was changed, and it does not contradict the annotations, but it does not disclose auth requirements, idempotency implications, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded purpose, explicit optionality, and a return-value note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple parameter surface, full schema coverage, an output schema, and annotations, the description is nearly complete for safe invocation. The only notable gap is usage guidance relative to the broader patch_user sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents each parameter, so the description need not repeat details. It does clarify that first/last names are required while full/display names are optional, but this largely restates the schema's required array.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Update the name of a user') and the resource (user name), and spells out which fields are affected. It is easily distinguishable from read-only siblings like get_user_name, but it doesn't explicitly differentiate from broader user-update tools such as edubase_patch_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for updating a user's name and identifies optional fields, so an agent can infer when to call it. It provides no explicit when/when-not guidance or comparison with alternatives like patch_user.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_post_user_organizationsBInspect
Assign user to organization(s). Updates membership if already member of an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | user identification string | |
| notify | No | notify user (default: false) | |
| department | No | optional name of department (or its external identifier if no department has this name), the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost | |
| organizations | Yes | comma-separated list of organization identification strings | |
| permission_content | No | optional permission level to contents in organization (none / view / report / control / modify / grant / admin) (default: none) | |
| permission_members | No | optional permission level to members in organization (none / department / organization) (default: none) | |
| permission_organization | No | optional permission level to organization (member / teacher / reporter / supervisor / admin) (default: member) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a key behavioral detail beyond annotations: 'Updates membership if already member of an organization,' which is not present in the annotation hints. However, it does not elaborate on side effects such as impact on competencies or permissions, and the openWorldHint suggests additional consequences are unstated. It provides some value but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, direct sentences that front-load the primary action and then state the update behavior. There is zero fluff or redundant detail, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 7 parameters and no output schema, the description is extremely brief. It does not explain the operation's scope (e.g., multiple organizations via comma-separated list), the effect on existing permissions, or how it relates to sibling membership tools. The description leaves an agent without sufficient context to confidently invoke it correctly in a broader workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already well-documented with enums, defaults, and descriptions. The tool description itself adds no parameter-specific information. Per the rubric, with high coverage the baseline is 3, and the description does not go beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Assign user to organization(s)' with a specific verb and resource. It also clarifies behavior on existing membership, which distinguishes it from mere creation. The purpose is unambiguous and easy for an agent to grasp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many similar sibling tools like edubase_post_organization_members or edubase_post_organizations_members. The description does not mention alternatives or conditions that would route an agent here over those tools, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_put_exam_certificatesAIdempotentInspect
Replace the complete certificate configuration of an exam with a preset or with the configuration of another exam. The certificates have to be enabled for the exam, and its settings cannot be changed while it is locked.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string (the target exam) | |
| preset | No | certificate preset identification string (see edubase_get_exam_certificates_presets), the settings of the preset are applied to the exam, and they are kept up to date with the preset | |
| source | No | exam identification string to copy the certificate configuration from, must be different from the target exam, and its certificates have to be configured manually (not by a preset), the images (signatures, stamp and logo) are copied as well |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| notes | No | |
| renew | No | |
| text1 | No | |
| text2 | No | |
| title | No | |
| preset | No | |
| enabled | Yes | |
| language | No | |
| timezone | No | |
| text_date | No | |
| configured | Yes | |
| email_send | No | |
| expiration | No | |
| show_custom | No | |
| show_result | No | |
| show_serial | No | |
| custom_fields | No | |
| hide_timezone | No | |
| result_format | No | |
| serial_format | No | |
| serial_prefix | No | |
| branding_image | No | |
| branding_line1 | No | |
| branding_line2 | No | |
| branding_line3 | No | |
| branding_line4 | No | |
| manual_renewal | No | |
| show_signature | No | |
| signature_left | No | |
| signature_user | No | |
| show_expiration | No | |
| signature_right | No | |
| signature_stamp | No | |
| branding_edubase | No | |
| serial_separator | No | |
| supervisors_only | No | |
| grading_threshold | No | |
| custom_user_fields | No | |
| serial_index_digits | No | |
| show_custom_branding | No | |
| signature_left_image | No | |
| signature_left_line1 | No | |
| signature_left_line2 | No | |
| signature_left_line3 | No | |
| signature_left_line4 | No | |
| signature_right_image | No | |
| signature_right_line1 | No | |
| signature_right_line2 | No | |
| signature_right_line3 | No | |
| signature_right_line4 | No | |
| download_automatically | No | |
| show_birthdate_birthplace | No | |
| automatic_renewal_approval | No | |
| expiration_notification_emails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the bar is lower; the description still adds value by spelling out the overwrite semantics ('replace the complete certificate configuration') and the locking constraint. The schema additionally reveals the ongoing link where a preset's settings are 'kept up to date' and that source images are copied, which is behavioral context beyond the annotation flags. Nothing in the description contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences with zero filler: the first delivers the action and its two modes, the second the operative preconditions. The purpose is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema parameter coverage, an output schema present, and annotations covering the read-only/idempotent/destructive profile, the description covers the essentials of purpose and preconditions. The remaining gap is failure behavior — what happens if certificates are disabled or the exam is locked — and the fate of existing certificates after replacement, which keeps this from a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter (exam, preset, source) already carries a detailed schema description including a cross-reference to the presets tool, mutual-exclusion constraints, and image-copy behavior, so the baseline of 3 applies. The tool description frames the preset/source choice but adds no syntax or format detail beyond what the schema provides, which is acceptable because the schema is comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object — 'Replace the complete certificate configuration of an exam' — and names the two input modes ('with a preset or with the configuration of another exam'). This clearly differentiates it from sibling tools like edubase_get_exam_certificates, edubase_post_exam_certificates, and edubase_delete_exam_certificates, which read, set, or remove certificate configuration rather than replace it wholesale.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives two operative preconditions for a valid call: certificates must be enabled for the exam, and settings cannot be changed while the exam is locked. This is clear context about when the tool is usable, though it never names sibling alternatives or states explicit when-not-to-use scenarios, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_put_exam_settingsAIdempotentInspect
Replace the complete configuration of an exam with the configuration of another exam. Exam specific data and state (automatic account generation, rounds, notifications, login settings and previously used patterns) is never copied. Branding, and the attached learning materials (course, SCORM package and video) of the target exam are kept as well.
| Name | Required | Description | Default |
|---|---|---|---|
| exam | Yes | exam identification string (the target exam) | |
| source | Yes | exam identification string to copy the settings from, must be different from the target exam | |
| keep_certificate_settings | No | whether to copy the certificate settings as well (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| exam | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false), though it does replace settings. The description adds valuable context about what is preserved (branding, materials) and what is never copied (state, patterns), going beyond the annotations. It doesn't mention side effects beyond the stated scope, but given openWorldHint=true, some external effects might be expected; still, the description covers the key behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, then clarifying exclusions and preserved items. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains what is replaced, what is never copied, and what is kept, which is sufficient for a complex copy operation. An output schema exists, so return-value details are not required. No critical operational aspect is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are well-documented in the schema. The description does not add additional parameter-level detail, but it does clarify the relationship between exam and source. This meets the baseline for high coverage without requiring extra compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (replace complete configuration) and the resource (exam), and explicitly lists what is and isn't copied. It distinguishes this from partial-update siblings like edubase_patch_exam_settings by emphasizing the complete replacement nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need to copy all settings from one exam to another) but doesn't explicitly name alternatives or state when not to use it. The context that it replaces everything and keeps certain items is clear, but explicit exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edubase_put_quiz_settingsAIdempotentInspect
Replace the complete configuration of a Quiz set with the configuration of another Quiz set. Only the configuration is copied, questions and question groups are not. The question selection, filtering and export settings of the target Quiz set are kept as well.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz | Yes | Quiz identification string (the target Quiz set) | |
| source | Yes | Quiz identification string to copy the settings from, must be different from the target Quiz set |
Output Schema
| Name | Required | Description |
|---|---|---|
| quiz | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description discloses precisely what is copied and what is kept: only configuration is copied, questions and question groups are not, and the target's question selection, filtering, and export settings remain. This is valuable behavioral context not available from the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the primary action and then provide necessary scope limitations. There is no filler; each sentence adds distinct information about what is replaced, copied, or preserved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, only two simple parameters, and annotations covering mutability and idempotency, the description is sufficient for an agent to invoke the tool correctly and understand the side effects. It could be slightly more complete by explicitly naming the patch/post alternatives, but that gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter description coverage, including the roles of 'quiz' as the target and 'source' as the quiz to copy settings from, with the constraint that they must differ. The description reinforces this but does not add substantive new parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action: 'Replace the complete configuration of a Quiz set' with the configuration of another Quiz set, making the verb, resource, and scope unmistakable. It also distinguishes itself from partial-update siblings such as edubase_patch_quiz_settings by emphasizing 'complete' and clarifies that questions and question groups are not affected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: copy an entire quiz configuration from one quiz to another while preserving target question selection, filtering, and export settings. It does not explicitly name alternatives or state when not to use the tool, but the 'complete replacement' framing provides enough context for an agent to select it over the patch/post siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
173 tool updates
v2.0.0- Removed
edubase_delete_class_permission - Removed
edubase_delete_class_tag - Added
edubase_delete_content_permission - Added
edubase_delete_content_tag - Removed
edubase_delete_course_permission - Removed
edubase_delete_course_tag - Removed
edubase_delete_event_permission - Removed
edubase_delete_event_tag - Changed
edubase_delete_exam_certificates55 fields changed- removed
Output schema / properties / automatic_renewal_approval / descriptionRemoved value: -"the renewal is approved automatically, but it stays revocable (only present if show_expiration is enabled)" - removed
Output schema / properties / branding_edubase / descriptionRemoved value: -"the EduBase logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_image / descriptionRemoved value: -"the uploaded logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line1 / descriptionRemoved value: -"name of the organization (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line2 / descriptionRemoved value: -"second line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line3 / descriptionRemoved value: -"third line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line4 / descriptionRemoved value: -"fourth line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / configured / descriptionRemoved value: -"the certificates are configured, so they can be issued" - removed
Output schema / properties / custom_fields / descriptionRemoved value: -"custom user data displayed as extra data (only present if show_custom is enabled), the custom user data fields of the exam are identified by their label (see edubase_get_exam_fields), the data fields of the user accounts by their customer_ prefixed name" - removed
Output schema / properties / custom_user_fields / descriptionRemoved value: -"custom user data displayed together with the data of the examinee (only present if show_custom is enabled)" - removed
Output schema / properties / download_automatically / descriptionRemoved value: -"the certificate is downloaded automatically when the examinee opens the results page" - removed
Output schema / properties / email_send / descriptionRemoved value: -"the certificates are sent to the examinees in email automatically" - removed
Output schema / properties / enabled / descriptionRemoved value: -"certificates are issued for the exam, the configuration itself is only returned when the certificates are enabled" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / expiration / descriptionRemoved value: -"validity period of the certificates in days (only present if show_expiration is enabled)" - removed
Output schema / properties / expiration_notification_emails / descriptionRemoved value: -"email addresses notified about the expiring certificates (only present if show_expiration is enabled)" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the certificates in percentage, overriding the threshold of the grading, null if the threshold of the grading is used" - removed
Output schema / properties / hide_timezone / descriptionRemoved value: -"the timezone information is hidden" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the certificates" - removed
Output schema / properties / manual_renewal / descriptionRemoved value: -"the renewal has to be approved by a supervisor (only present if show_expiration is enabled)" - removed
Output schema / properties / notes / descriptionRemoved value: -"notes displayed at the bottom of the certificates" - removed
Output schema / properties / preset / descriptionRemoved value: -"identification string of the certificate preset configuring the certificates (see edubase_get_exam_certificates_presets), null if the certificates are configured manually" - removed
Output schema / properties / renew / descriptionRemoved value: -"whether the certificates can be renewed (only present if show_expiration is enabled), false: the certificates cannot be renewed, true: the certificates can be renewed any time, number: the number of days the renewal is available from, relative to the expiry (0 is the day of the expiry, negative values open the renewal before it)" - removed
Output schema / properties / result_format / descriptionRemoved value: -"format of the displayed result (only present if show_result is enabled)" - removed
Output schema / properties / serial_format / descriptionRemoved value: -"format of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_index_digits / descriptionRemoved value: -"minimum length of the index in the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_prefix / descriptionRemoved value: -"prefix of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_separator / descriptionRemoved value: -"separator between the parts of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / show_birthdate_birthplace / descriptionRemoved value: -"the birth date and the birth place of the examinee are displayed" - removed
Output schema / properties / show_custom / descriptionRemoved value: -"custom user data is displayed" - removed
Output schema / properties / show_custom_branding / descriptionRemoved value: -"custom branding (logo and organization name) is displayed" - removed
Output schema / properties / show_expiration / descriptionRemoved value: -"the certificates expire and their validity is displayed" - removed
Output schema / properties / show_result / descriptionRemoved value: -"the result of the test is displayed" - removed
Output schema / properties / show_serial / descriptionRemoved value: -"the certificates get a serial number" - removed
Output schema / properties / show_signature / descriptionRemoved value: -"signatures are displayed" - removed
Output schema / properties / signature_left / descriptionRemoved value: -"the signature of the first organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_image / descriptionRemoved value: -"the uploaded image of the first signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line1 / descriptionRemoved value: -"name of the first organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line2 / descriptionRemoved value: -"second line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line3 / descriptionRemoved value: -"third line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line4 / descriptionRemoved value: -"fourth line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right / descriptionRemoved value: -"the signature of the second organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_image / descriptionRemoved value: -"the uploaded image of the second signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line1 / descriptionRemoved value: -"name of the second organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line2 / descriptionRemoved value: -"second line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line3 / descriptionRemoved value: -"third line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line4 / descriptionRemoved value: -"fourth line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_stamp / descriptionRemoved value: -"the uploaded stamp is displayed between the signatures (only present if show_signature is enabled)" - removed
Output schema / properties / signature_user / descriptionRemoved value: -"a signature line is displayed for the examinee (only present if show_signature is enabled)" - removed
Output schema / properties / supervisors_only / descriptionRemoved value: -"only the supervisors can issue the certificates, the examinees cannot get their own ones" - removed
Output schema / properties / text1 / descriptionRemoved value: -"text displayed under the data of the examinee, the multi line texts (text1, text2 and notes) are returned with basic HTML formatting and line breaks" - removed
Output schema / properties / text2 / descriptionRemoved value: -"text displayed under the results, above the date of the test" - removed
Output schema / properties / text_date / descriptionRemoved value: -"text displayed before the date of the test" - removed
Output schema / properties / timezone / descriptionRemoved value: -"timezone of the dates on the certificates, null if the timezone of the exam is used" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the certificates"
- Removed
edubase_delete_exam_permission - Removed
edubase_delete_exam_tag - Removed
edubase_delete_integration_permission - Removed
edubase_delete_integration_tag - Removed
edubase_delete_organization_permission - Removed
edubase_delete_organization_tag - Removed
edubase_delete_quiz_permission - Removed
edubase_delete_quiz_tag - Removed
edubase_delete_scorm_permission - Removed
edubase_delete_scorm_tag - Removed
edubase_delete_tag_permission - Removed
edubase_delete_user_assume - Removed
edubase_delete_video_permission - Removed
edubase_delete_video_tag - Changed
edubase_get_class5 fields changed- removed
Output schema / properties / class / descriptionRemoved value: -"class identification string" - removed
Output schema / properties / end / descriptionRemoved value: -"end date and time (if set)" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique class identifier (if set for the class)" - removed
Output schema / properties / start / descriptionRemoved value: -"start date and time (if set)" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the class"
- Changed
edubase_get_class_assignments6 fields changed- removed
Output schema / properties / assignments / items / properties / assignment / descriptionRemoved value: -"assignment identification string" - removed
Output schema / properties / assignments / items / properties / ends / descriptionRemoved value: -"when the assignment submission ends" - removed
Output schema / properties / assignments / items / properties / link / descriptionRemoved value: -"link to the assignment page" - removed
Output schema / properties / assignments / items / properties / starts / descriptionRemoved value: -"when the assignment submission starts" - removed
Output schema / properties / assignments / items / properties / status / descriptionRemoved value: -"assignment and submission state (INACTIVE, ACTIVE, STARTED, SUBMITTED, GRADED)" - removed
Output schema / properties / assignments / items / properties / title / descriptionRemoved value: -"title of the assignment"
- Changed
edubase_get_class_members3 fields changed- removed
Output schema / properties / members / items / properties / active / descriptionRemoved value: -"active membership (approved and not expired)" - removed
Output schema / properties / members / items / properties / name / descriptionRemoved value: -"name of the member" - removed
Output schema / properties / members / items / properties / user / descriptionRemoved value: -"user identification string"
- Removed
edubase_get_class_permission - Removed
edubase_get_class_tag - Removed
edubase_get_class_tags - Changed
edubase_get_classes3 fields changed- removed
Output schema / properties / classes / items / properties / class / descriptionRemoved value: -"class identification string" - removed
Output schema / properties / classes / items / properties / id / descriptionRemoved value: -"external unique class identifier (if set for the class)" - removed
Output schema / properties / classes / items / properties / title / descriptionRemoved value: -"title of the class"
- Added
edubase_get_content_permission - Added
edubase_get_content_tag - Added
edubase_get_content_tags - Removed
edubase_get_course_permission - Removed
edubase_get_course_tag - Removed
edubase_get_course_tags - Removed
edubase_get_event_permission - Removed
edubase_get_event_tag - Removed
edubase_get_event_tags - Changed
edubase_get_exam14 fields changed- removed
Output schema / properties / active / descriptionRemoved value: -"exam is active" - removed
Output schema / properties / deadline / descriptionRemoved value: -"latest date and time the exam can be started at (if set for the exam)" - removed
Output schema / properties / description / descriptionRemoved value: -"description of the exam (only present if set for the exam)" - removed
Output schema / properties / end / descriptionRemoved value: -"end date and time" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique exam identifier (if set for the exam)" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the exam" - removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string. The Quiz set the exam is attached to" - removed
Output schema / properties / seb_config_url / descriptionRemoved value: -"Safe Exam Browser configuration file URL (only present if secure is true)" - removed
Output schema / properties / seb_launch_url / descriptionRemoved value: -"Safe Exam Browser launch URL (only present if secure is true)" - removed
Output schema / properties / secure / descriptionRemoved value: -"exam can only be started with the Safe Exam Browser" - removed
Output schema / properties / start / descriptionRemoved value: -"start date and time" - removed
Output schema / properties / status / descriptionRemoved value: -"exam status (INACTIVE, ACTIVE, PAUSED, REVIEW, EXPIRED)" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the exam"
- Changed
edubase_get_exam_autologin8 fields changed- removed
Output schema / properties / autoadd / descriptionRemoved value: -"new exam accounts are generated automatically on demand (only present if autologin is true)" - removed
Output schema / properties / autojoin / descriptionRemoved value: -"already registered users can join the exam automatically (only present if autologin is true)" - removed
Output schema / properties / autojoin_limited / descriptionRemoved value: -"automatic joining is limited to the assigned users (only present if autojoin is true)" - removed
Output schema / properties / autologin / descriptionRemoved value: -"automatic login is enabled" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / pin / descriptionRemoved value: -"PIN code of the exam (only present if autologin is true)" - removed
Output schema / properties / results_url / descriptionRemoved value: -"URL where examinees can look up their own results (only present if autologin is true and results can be viewed with an identifier)" - removed
Output schema / properties / url / descriptionRemoved value: -"login URL of the exam, the shortlink or the Safe Exam Browser launch URL if configured (only present if autologin is true)"
- Changed
edubase_get_exam_branding4 fields changed- removed
Output schema / properties / color / descriptionRemoved value: -"branding color, only present if branding is enabled" - removed
Output schema / properties / enabled / descriptionRemoved value: -"whether branding is configured and enabled" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / type / descriptionRemoved value: -"type of branding image (foreground: image is used as a logo, background: image is used as a cover), only present if branding is enabled"
- Changed
edubase_get_exam_certificates55 fields changed- removed
Output schema / properties / automatic_renewal_approval / descriptionRemoved value: -"the renewal is approved automatically, but it stays revocable (only present if show_expiration is enabled)" - removed
Output schema / properties / branding_edubase / descriptionRemoved value: -"the EduBase logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_image / descriptionRemoved value: -"the uploaded logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line1 / descriptionRemoved value: -"name of the organization (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line2 / descriptionRemoved value: -"second line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line3 / descriptionRemoved value: -"third line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line4 / descriptionRemoved value: -"fourth line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / configured / descriptionRemoved value: -"the certificates are configured, so they can be issued" - removed
Output schema / properties / custom_fields / descriptionRemoved value: -"custom user data displayed as extra data (only present if show_custom is enabled), the custom user data fields of the exam are identified by their label (see edubase_get_exam_fields), the data fields of the user accounts by their customer_ prefixed name" - removed
Output schema / properties / custom_user_fields / descriptionRemoved value: -"custom user data displayed together with the data of the examinee (only present if show_custom is enabled)" - removed
Output schema / properties / download_automatically / descriptionRemoved value: -"the certificate is downloaded automatically when the examinee opens the results page" - removed
Output schema / properties / email_send / descriptionRemoved value: -"the certificates are sent to the examinees in email automatically" - removed
Output schema / properties / enabled / descriptionRemoved value: -"certificates are issued for the exam, the configuration itself is only returned when the certificates are enabled" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / expiration / descriptionRemoved value: -"validity period of the certificates in days (only present if show_expiration is enabled)" - removed
Output schema / properties / expiration_notification_emails / descriptionRemoved value: -"email addresses notified about the expiring certificates (only present if show_expiration is enabled)" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the certificates in percentage, overriding the threshold of the grading, null if the threshold of the grading is used" - removed
Output schema / properties / hide_timezone / descriptionRemoved value: -"the timezone information is hidden" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the certificates" - removed
Output schema / properties / manual_renewal / descriptionRemoved value: -"the renewal has to be approved by a supervisor (only present if show_expiration is enabled)" - removed
Output schema / properties / notes / descriptionRemoved value: -"notes displayed at the bottom of the certificates" - removed
Output schema / properties / preset / descriptionRemoved value: -"identification string of the certificate preset configuring the certificates (see edubase_get_exam_certificates_presets), null if the certificates are configured manually" - removed
Output schema / properties / renew / descriptionRemoved value: -"whether the certificates can be renewed (only present if show_expiration is enabled), false: the certificates cannot be renewed, true: the certificates can be renewed any time, number: the number of days the renewal is available from, relative to the expiry (0 is the day of the expiry, negative values open the renewal before it)" - removed
Output schema / properties / result_format / descriptionRemoved value: -"format of the displayed result (only present if show_result is enabled)" - removed
Output schema / properties / serial_format / descriptionRemoved value: -"format of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_index_digits / descriptionRemoved value: -"minimum length of the index in the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_prefix / descriptionRemoved value: -"prefix of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_separator / descriptionRemoved value: -"separator between the parts of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / show_birthdate_birthplace / descriptionRemoved value: -"the birth date and the birth place of the examinee are displayed" - removed
Output schema / properties / show_custom / descriptionRemoved value: -"custom user data is displayed" - removed
Output schema / properties / show_custom_branding / descriptionRemoved value: -"custom branding (logo and organization name) is displayed" - removed
Output schema / properties / show_expiration / descriptionRemoved value: -"the certificates expire and their validity is displayed" - removed
Output schema / properties / show_result / descriptionRemoved value: -"the result of the test is displayed" - removed
Output schema / properties / show_serial / descriptionRemoved value: -"the certificates get a serial number" - removed
Output schema / properties / show_signature / descriptionRemoved value: -"signatures are displayed" - removed
Output schema / properties / signature_left / descriptionRemoved value: -"the signature of the first organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_image / descriptionRemoved value: -"the uploaded image of the first signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line1 / descriptionRemoved value: -"name of the first organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line2 / descriptionRemoved value: -"second line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line3 / descriptionRemoved value: -"third line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line4 / descriptionRemoved value: -"fourth line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right / descriptionRemoved value: -"the signature of the second organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_image / descriptionRemoved value: -"the uploaded image of the second signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line1 / descriptionRemoved value: -"name of the second organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line2 / descriptionRemoved value: -"second line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line3 / descriptionRemoved value: -"third line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line4 / descriptionRemoved value: -"fourth line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_stamp / descriptionRemoved value: -"the uploaded stamp is displayed between the signatures (only present if show_signature is enabled)" - removed
Output schema / properties / signature_user / descriptionRemoved value: -"a signature line is displayed for the examinee (only present if show_signature is enabled)" - removed
Output schema / properties / supervisors_only / descriptionRemoved value: -"only the supervisors can issue the certificates, the examinees cannot get their own ones" - removed
Output schema / properties / text1 / descriptionRemoved value: -"text displayed under the data of the examinee, the multi line texts (text1, text2 and notes) are returned with basic HTML formatting and line breaks" - removed
Output schema / properties / text2 / descriptionRemoved value: -"text displayed under the results, above the date of the test" - removed
Output schema / properties / text_date / descriptionRemoved value: -"text displayed before the date of the test" - removed
Output schema / properties / timezone / descriptionRemoved value: -"timezone of the dates on the certificates, null if the timezone of the exam is used" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the certificates"
- Changed
edubase_get_exam_certificates_presets8 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string (only present if an exam is specified)" - removed
Output schema / properties / presets / items / properties / current / descriptionRemoved value: -"the certificates of the exam are configured by this preset" - removed
Output schema / properties / presets / items / properties / language / descriptionRemoved value: -"language of the certificate preset" - removed
Output schema / properties / presets / items / properties / organization / descriptionRemoved value: -"organization identification string of the preset, null if the preset is not bound to an organization" - removed
Output schema / properties / presets / items / properties / own / descriptionRemoved value: -"the preset is a custom preset owned by the user" - removed
Output schema / properties / presets / items / properties / preset / descriptionRemoved value: -"certificate preset identification string" - removed
Output schema / properties / presets / items / properties / public / descriptionRemoved value: -"the preset is a public preset available for everyone" - removed
Output schema / properties / presets / items / properties / title / descriptionRemoved value: -"title of the certificate preset"
- Changed
edubase_get_exam_certificates_user7 fields changed- removed
Output schema / properties / archived / descriptionRemoved value: -"exam result is archived" - removed
Output schema / properties / certified / descriptionRemoved value: -"result is eligible for certification and also certified" - removed
Output schema / properties / eligible / descriptionRemoved value: -"result is eligible for certification" - removed
Output schema / properties / expires / descriptionRemoved value: -"date of expiration, only present if the result is certified and expiration is configured" - removed
Output schema / properties / play / descriptionRemoved value: -"Quiz play identification string" - removed
Output schema / properties / serial / descriptionRemoved value: -"serial number of the certificate, only present if the result is certified and serial numbering is enabled" - removed
Output schema / properties / user / descriptionRemoved value: -"user identification string"
- Changed
edubase_get_exam_fields19 fields changed- removed
Output schema / properties / email / descriptionRemoved value: -"the email address of the examinee is requested (false: the field is not used, true: the field is used with its default label, otherwise the custom label of the field)" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / fields / descriptionRemoved value: -"the custom fields of the exam" - removed
Output schema / properties / fields / items / properties / description / descriptionRemoved value: -"description shown under the field (if set)" - removed
Output schema / properties / fields / items / properties / filtering / descriptionRemoved value: -"short labels the examinees are grouped and filtered with in the exam manager and the reports, keyed by option (select fields only, if set)" - removed
Output schema / properties / fields / items / properties / from / descriptionRemoved value: -"lowest selectable value (from-to fields only)" - removed
Output schema / properties / fields / items / properties / icon / descriptionRemoved value: -"Font Awesome icon class name of the field (if set)" - removed
Output schema / properties / fields / items / properties / label / descriptionRemoved value: -"label of the field, shown to the examinee" - removed
Output schema / properties / fields / items / properties / maxlength / descriptionRemoved value: -"maximum length of the value (free text fields only, if set)" - removed
Output schema / properties / fields / items / properties / minlength / descriptionRemoved value: -"minimum length of the value (free text fields only, if set)" - removed
Output schema / properties / fields / items / properties / options / descriptionRemoved value: -"the selectable options (select fields only)" - removed
Output schema / properties / fields / items / properties / pattern / descriptionRemoved value: -"regular expression the value has to match (free text fields only, if set)" - removed
Output schema / properties / fields / items / properties / required / descriptionRemoved value: -"the field has to be filled in" - removed
Output schema / properties / fields / items / properties / step / descriptionRemoved value: -"difference between the selectable values (from-to fields only, if set)" - removed
Output schema / properties / fields / items / properties / to / descriptionRemoved value: -"highest selectable value (from-to fields only)" - removed
Output schema / properties / fields / items / properties / type / descriptionRemoved value: -"type of the field" - removed
Output schema / properties / fields / items / properties / unique / descriptionRemoved value: -"the value has to be unique within the exam (free text fields only, if set)" - removed
Output schema / properties / name / descriptionRemoved value: -"the full name of the examinee is requested (false: the field is not used, true: the field is used with its default label, otherwise the custom label of the field)" - removed
Output schema / properties / phone / descriptionRemoved value: -"the phone number of the examinee is requested (false: the field is not used, true: the field is used with its default label, otherwise the custom label of the field)"
- Removed
edubase_get_exam_permission - Changed
edubase_get_exam_results_raw3 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / questions / descriptionRemoved value: -"most important details about the questions asked" - removed
Output schema / properties / users / descriptionRemoved value: -"details of the user and their results"
- Changed
edubase_get_exam_results_user11 fields changed- removed
Output schema / properties / results / items / properties / attempt / descriptionRemoved value: -"index of attempt" - removed
Output schema / properties / results / items / properties / play / descriptionRemoved value: -"Quiz play identification string" - removed
Output schema / properties / results / items / properties / points_correct / descriptionRemoved value: -"total points scored" - removed
Output schema / properties / results / items / properties / points_total / descriptionRemoved value: -"total points" - removed
Output schema / properties / results / items / properties / questions_correct / descriptionRemoved value: -"number of correctly answered questions" - removed
Output schema / properties / results / items / properties / questions_total / descriptionRemoved value: -"total number of questions asked" - removed
Output schema / properties / results / items / properties / successful / descriptionRemoved value: -"attempt passed grading threshold (if applicable)" - removed
Output schema / properties / results / items / properties / time_end / descriptionRemoved value: -"end time" - removed
Output schema / properties / results / items / properties / time_start / descriptionRemoved value: -"start time" - removed
Output schema / properties / results / items / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / results / items / properties / valid / descriptionRemoved value: -"result is valid"
- Changed
edubase_get_exam_round5 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / frozen / descriptionRemoved value: -"the current round is frozen, no new round can be started" - removed
Output schema / properties / results / descriptionRemoved value: -"the current round already has results" - removed
Output schema / properties / round / descriptionRemoved value: -"index of the current round" - removed
Output schema / properties / started / descriptionRemoved value: -"date and time the current round was started at"
- Changed
edubase_get_exam_settings29 fields changed- removed
Output schema / properties / archive / descriptionRemoved value: -"the users who already have a result can be archived" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / export_answers / descriptionRemoved value: -"the answers given by the examinees are exported (never returned for surveys)" - removed
Output schema / properties / export_attendance / descriptionRemoved value: -"the attendance of the examinees is exported, read only as the attendance is configured together with its source on the interface (never returned for surveys)" - removed
Output schema / properties / export_custom_fields / descriptionRemoved value: -"the user data fields filled in by the examinees are exported (see edubase_get_exam_fields), never returned for surveys" - removed
Output schema / properties / export_finished_only / descriptionRemoved value: -"only the examinees who finished their test are exported (never returned for surveys)" - removed
Output schema / properties / export_format / descriptionRemoved value: -"format of the exported results file (csv: semicolon separated values, xlsx: Excel 2007+ workbook)" - removed
Output schema / properties / export_gender / descriptionRemoved value: -"the gender of the registered examinees is exported (never returned for surveys)" - removed
Output schema / properties / export_points / descriptionRemoved value: -"the points scored on every question are exported (never returned for surveys)" - removed
Output schema / properties / export_skills / descriptionRemoved value: -"the skill results of the examinees are exported, only exported when the Quiz set of the exam has skills (never returned for surveys)" - removed
Output schema / properties / export_sort / descriptionRemoved value: -"ordering of the examinees in the exported results file (default: the same order they are listed in on the users page of the exam, name: by the name of the examinees)" - removed
Output schema / properties / export_stats / descriptionRemoved value: -"the statistics of every question are exported (never returned for surveys)" - removed
Output schema / properties / export_suspicion / descriptionRemoved value: -"the suspicious test taking indicator is exported (never returned for surveys)" - removed
Output schema / properties / freeze_round / descriptionRemoved value: -"the current round of the exam is frozen, no new round can be started" - removed
Output schema / properties / grading / descriptionRemoved value: -"grading of the exam, the code of the grading preset in use, \"custom\" for a manually configured grading, or \"none\" when grading is disabled, null if the setting of the Quiz set is used (never returned for surveys)" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the grading in percentage (only present if a threshold is configured for the exam)" - removed
Output schema / properties / hide_grade / descriptionRemoved value: -"the grade is hidden on the results page" - removed
Output schema / properties / hide_ingame_results / descriptionRemoved value: -"the results are hidden while the test is taken" - removed
Output schema / properties / hide_points / descriptionRemoved value: -"the points are hidden during the test and on the results page" - removed
Output schema / properties / nonblocking / descriptionRemoved value: -"exam accounts are exclusively assigned to the exam and cannot be assigned to other exams during the exam period" - removed
Output schema / properties / pausable / descriptionRemoved value: -"tests can be paused and continued later during the exam period" - removed
Output schema / properties / results_page / descriptionRemoved value: -"the examinees are redirected to the results page after the test" - removed
Output schema / properties / results_url / descriptionRemoved value: -"URL where examinees can look up their own results with the identifier (only present if the identifier based results page is available)" - removed
Output schema / properties / roundtime / descriptionRemoved value: -"time limit of a single question in seconds (as a number), turn based Quiz sets only, null if the setting of the Quiz set is used, or 0 if there is no time limit" - removed
Output schema / properties / show_in_lasthour / descriptionRemoved value: -"the results are only shown in the last hour of the exam" - removed
Output schema / properties / timelimit / descriptionRemoved value: -"time limit of the whole test in seconds (as a number), null if the setting of the Quiz set is used, or 0 if there is no time limit" - removed
Output schema / properties / view_results / descriptionRemoved value: -"when the examinees can see their results (after: right after the test is submitted, until the end of the exam, always: any time during the exam period, the examinees can log back in to see their results, datetime: after the test is submitted, and again from the start of the results viewing period, datetime_blind: only in the results viewing period, the solutions and the details of the evaluation are hidden right after the test, manual: only after the result is published separately, test by test, none: never), never returned for surveys" - removed
Output schema / properties / view_results_identifier / descriptionRemoved value: -"label of the custom user data field the examinees can look up their results with (only present if view_results is datetime or datetime_blind)" - removed
Output schema / properties / view_results_start / descriptionRemoved value: -"start of the results viewing period (only present if view_results is datetime or datetime_blind)"
- Changed
edubase_get_exam_skills4 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / skills / items / properties / description / descriptionRemoved value: -"skill description (if set)" - removed
Output schema / properties / skills / items / properties / identifier / descriptionRemoved value: -"skill identifier" - removed
Output schema / properties / skills / items / properties / title / descriptionRemoved value: -"title of the skill"
- Changed
edubase_get_exam_status5 fields changed- removed
Output schema / properties / active / descriptionRemoved value: -"exam is active" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / modified / descriptionRemoved value: -"date and time the status was changed at" - removed
Output schema / properties / scheduled / descriptionRemoved value: -"date and time starting new tests is automatically disabled at" - removed
Output schema / properties / status / descriptionRemoved value: -"new tests can be started"
- Removed
edubase_get_exam_tag - Removed
edubase_get_exam_tags - Changed
edubase_get_exam_users2 fields changed- removed
Output schema / properties / users / items / properties / name / descriptionRemoved value: -"name of the examinee" - removed
Output schema / properties / users / items / properties / user / descriptionRemoved value: -"user identification string"
- Changed
edubase_get_exams4 fields changed- removed
Output schema / properties / exams / items / properties / active / descriptionRemoved value: -"exam is active" - removed
Output schema / properties / exams / items / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / exams / items / properties / id / descriptionRemoved value: -"external unique exam identifier (if set for the exam)" - removed
Output schema / properties / exams / items / properties / title / descriptionRemoved value: -"title of the exam"
- Changed
edubase_get_integration6 fields changed- removed
Output schema / properties / active / descriptionRemoved value: -"integration is active" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique integration identifier (if set for the integration)" - removed
Output schema / properties / integration / descriptionRemoved value: -"integration identification string" - removed
Output schema / properties / lti / descriptionRemoved value: -"LTI version (1.0/1.1 or 1.3), only present if the integration is an LMS" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the integration" - removed
Output schema / properties / type / descriptionRemoved value: -"type of the integration"
- Changed
edubase_get_integration_keys5 fields changed- removed
Output schema / properties / app / descriptionRemoved value: -"API application identification string, only present if the integration is an API integration" - removed
Output schema / properties / consumer / descriptionRemoved value: -"consumer key, only present if the integration is an LMS integration using LTI 1.0/1.1" - removed
Output schema / properties / jwk / descriptionRemoved value: -"URL for the JWK (JSON Web Key) set, only present if the integration is an LMS integration using LTI 1.3" - removed
Output schema / properties / pem / descriptionRemoved value: -"PEM formatted public key, only present if the integration is an LMS integration using LTI 1.3" - removed
Output schema / properties / secret / descriptionRemoved value: -"secret key, only present if the integration is an API integration or an LMS integration using LTI 1.0/1.1"
- Removed
edubase_get_integration_permission - Removed
edubase_get_integration_tag - Removed
edubase_get_integration_tags - Changed
edubase_get_integrations3 fields changed- removed
Output schema / properties / integrations / items / properties / id / descriptionRemoved value: -"external unique integration identifier (if set for the integration)" - removed
Output schema / properties / integrations / items / properties / integration / descriptionRemoved value: -"integration identification string" - removed
Output schema / properties / integrations / items / properties / title / descriptionRemoved value: -"title of the integration"
- Changed
edubase_get_organization4 fields changed- removed
Output schema / properties / description / descriptionRemoved value: -"short description of the organization (only present if set for the organization)" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique organization identifier (if set for the organization)" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the organization"
- Changed
edubase_get_organization_competencies19 fields changed- removed
Output schema / properties / competencies / items / properties / assigned / descriptionRemoved value: -"number of visible members assigned to the competency" - removed
Output schema / properties / competencies / items / properties / assignments / properties / all / descriptionRemoved value: -"assigned to every member of the organization" - removed
Output schema / properties / competencies / items / properties / assignments / properties / departments / descriptionRemoved value: -"number of departments assigned to" - removed
Output schema / properties / competencies / items / properties / assignments / properties / members / descriptionRemoved value: -"number of members assigned to individually" - removed
Output schema / properties / competencies / items / properties / competency / descriptionRemoved value: -"competency identification string" - removed
Output schema / properties / competencies / items / properties / description / descriptionRemoved value: -"description of the competency (if set)" - removed
Output schema / properties / competencies / items / properties / documents / descriptionRemoved value: -"number of library documents attached" - removed
Output schema / properties / competencies / items / properties / id / descriptionRemoved value: -"external unique competency identifier (if set for the competency)" - removed
Output schema / properties / competencies / items / properties / requirements / descriptionRemoved value: -"number of requirements" - removed
Output schema / properties / competencies / items / properties / status / descriptionRemoved value: -"number of assigned members by their competency status" - removed
Output schema / properties / competencies / items / properties / status / properties / completed / descriptionRemoved value: -"completed" - removed
Output schema / properties / competencies / items / properties / status / properties / due / descriptionRemoved value: -"due soon" - removed
Output schema / properties / competencies / items / properties / status / properties / expired / descriptionRemoved value: -"expired" - removed
Output schema / properties / competencies / items / properties / status / properties / outdated / descriptionRemoved value: -"outdated" - removed
Output schema / properties / competencies / items / properties / status / properties / overdue / descriptionRemoved value: -"past the deadline" - removed
Output schema / properties / competencies / items / properties / status / properties / progress / descriptionRemoved value: -"in progress" - removed
Output schema / properties / competencies / items / properties / status / properties / waiting / descriptionRemoved value: -"waiting for completion" - removed
Output schema / properties / competencies / items / properties / title / descriptionRemoved value: -"title of the competency" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string"
- Changed
edubase_get_organization_competency_requirements28 fields changed- removed
Output schema / properties / competency / descriptionRemoved value: -"competency identification string" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique competency identifier (if set for the competency)" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / requirements / descriptionRemoved value: -"requirements ordered by their priority" - changed
Output schema / properties / requirements / items / properties / class / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "class": { - "description": "class identification string", - "type": "string" - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "external unique class identifier (if set for the class)" - }, - "title": { - "description": "title of the class", - "type": "string" - } - }, - "required": [ - "class", - "title" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "class": { + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "class", + "title" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirements / items / properties / class / descriptionRemoved value: -"the required class (only present if type is class, null if the class is not available)" - removed
Output schema / properties / requirements / items / properties / deadline / descriptionRemoved value: -"deadline of the requirement (only present if a deadline is configured)" - removed
Output schema / properties / requirements / items / properties / deadline / properties / date / descriptionRemoved value: -"fixed deadline (only if type is date)" - removed
Output schema / properties / requirements / items / properties / deadline / properties / days / descriptionRemoved value: -"number of days available to complete the requirement (only if type is days)" - removed
Output schema / properties / requirements / items / properties / deadline / properties / type / descriptionRemoved value: -"type of the deadline" - removed
Output schema / properties / requirements / items / properties / description / descriptionRemoved value: -"description of the requirement (only present if set for the requirement)" - changed
Output schema / properties / requirements / items / properties / document / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "archived": { - "description": "document is archived", - "type": "boolean" - }, - "document": { - "description": "document identification string", - "type": "string" - }, - "prefix": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "prefix of the document" - }, - "title": { - "description": "title of the document", - "type": "string" - } - }, - "required": [ - "document", - "title", - "archived" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "archived": { + "type": "boolean" + }, + "document": { + "type": "string" + }, + "prefix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "document", + "title", + "archived" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirements / items / properties / document / descriptionRemoved value: -"the required library document (only present if type is document, null if the document is not available)" - removed
Output schema / properties / requirements / items / properties / documents / descriptionRemoved value: -"identification strings of the library documents attached to the requirement (only present if there are any)" - changed
Output schema / properties / requirements / items / properties / exam / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "exam": { - "description": "exam identification string", - "type": "string" - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "external unique exam identifier (if set for the exam)" - }, - "title": { - "description": "title of the exam", - "type": "string" - } - }, - "required": [ - "exam", - "title" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "exam": { + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "exam", + "title" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirements / items / properties / exam / descriptionRemoved value: -"the required exam (only present if type is exam, null if the exam is not available)" - removed
Output schema / properties / requirements / items / properties / optional / descriptionRemoved value: -"requirement is optional" - removed
Output schema / properties / requirements / items / properties / requirement / descriptionRemoved value: -"requirement identification string" - removed
Output schema / properties / requirements / items / properties / title / descriptionRemoved value: -"title of the requirement" - removed
Output schema / properties / requirements / items / properties / todo / descriptionRemoved value: -"the required task (only present if type is todo)" - removed
Output schema / properties / requirements / items / properties / todo / properties / attachments / descriptionRemoved value: -"attachments can be uploaded" - removed
Output schema / properties / requirements / items / properties / todo / properties / educators / descriptionRemoved value: -"educators of the training (only present if type is training, visible users only)" - removed
Output schema / properties / requirements / items / properties / todo / properties / educators / items / properties / name / descriptionRemoved value: -"name of the educator" - removed
Output schema / properties / requirements / items / properties / todo / properties / educators / items / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / requirements / items / properties / todo / properties / fields / descriptionRemoved value: -"labels of the fields to fill (only present if type is default)" - removed
Output schema / properties / requirements / items / properties / todo / properties / type / descriptionRemoved value: -"type of the task" - removed
Output schema / properties / requirements / items / properties / type / descriptionRemoved value: -"type of the requirement" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the competency"
- Changed
edubase_get_organization_compliance32 fields changed- removed
Output schema / properties / assigned / descriptionRemoved value: -"total number of competency assignments within the scope" - removed
Output schema / properties / competencies / descriptionRemoved value: -"competencies with any assigned member within the scope" - removed
Output schema / properties / competencies / items / properties / competency / descriptionRemoved value: -"competency identification string" - removed
Output schema / properties / competencies / items / properties / id / descriptionRemoved value: -"external unique competency identifier (if set for the competency)" - removed
Output schema / properties / competencies / items / properties / title / descriptionRemoved value: -"title of the competency" - removed
Output schema / properties / departments / descriptionRemoved value: -"departments with any member or progress within the scope, ordered by their hierarchy" - removed
Output schema / properties / departments / items / properties / competencies / descriptionRemoved value: -"competency statistics of the department (only competencies with assigned members are listed)" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / assigned / descriptionRemoved value: -"number of members assigned to the competency" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / competency / descriptionRemoved value: -"competency identification string" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / descriptionRemoved value: -"number of assigned members by their competency status" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / properties / completed / descriptionRemoved value: -"completed" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / properties / due / descriptionRemoved value: -"due soon" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / properties / expired / descriptionRemoved value: -"expired" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / properties / outdated / descriptionRemoved value: -"outdated" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / properties / overdue / descriptionRemoved value: -"past the deadline" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / properties / progress / descriptionRemoved value: -"in progress" - removed
Output schema / properties / departments / items / properties / competencies / items / properties / status / properties / waiting / descriptionRemoved value: -"waiting for completion" - removed
Output schema / properties / departments / items / properties / department / descriptionRemoved value: -"name of the department (null for the members without a department, in organization scope only)" - removed
Output schema / properties / departments / items / properties / id / descriptionRemoved value: -"external unique department identifier (if set for the department)" - removed
Output schema / properties / departments / items / properties / level / descriptionRemoved value: -"depth of the department within the hierarchy (0 for root level departments)" - removed
Output schema / properties / departments / items / properties / members / descriptionRemoved value: -"number of members in the department" - removed
Output schema / properties / departments / items / properties / parent / descriptionRemoved value: -"name of the parent department (null for root level departments)" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / scope / descriptionRemoved value: -"scope of the overview: organization (whole organization) / departments (only the departments led by the user)" - removed
Output schema / properties / status / descriptionRemoved value: -"total number of competency assignments by their status" - removed
Output schema / properties / status / properties / completed / descriptionRemoved value: -"completed" - removed
Output schema / properties / status / properties / due / descriptionRemoved value: -"due soon" - removed
Output schema / properties / status / properties / expired / descriptionRemoved value: -"expired" - removed
Output schema / properties / status / properties / outdated / descriptionRemoved value: -"outdated" - removed
Output schema / properties / status / properties / overdue / descriptionRemoved value: -"past the deadline" - removed
Output schema / properties / status / properties / progress / descriptionRemoved value: -"in progress" - removed
Output schema / properties / status / properties / waiting / descriptionRemoved value: -"waiting for completion"
- Changed
edubase_get_organization_department13 fields changed- removed
Output schema / properties / department / descriptionRemoved value: -"name of the department" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique department identifier (if set for the department)" - removed
Output schema / properties / leaders / descriptionRemoved value: -"leaders of the department" - removed
Output schema / properties / leaders / items / properties / name / descriptionRemoved value: -"name of the leader" - removed
Output schema / properties / leaders / items / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / level / descriptionRemoved value: -"depth of the department within the hierarchy (0 for root level departments)" - removed
Output schema / properties / members / descriptionRemoved value: -"number of (visible) members in the department" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / parent / descriptionRemoved value: -"name of the parent department (null for root level departments)" - removed
Output schema / properties / permission / descriptionRemoved value: -"permissions given to the members of the department" - removed
Output schema / properties / permission / properties / content / descriptionRemoved value: -"permission level to contents in organization" - removed
Output schema / properties / permission / properties / members / descriptionRemoved value: -"permission level to members in organization" - removed
Output schema / properties / permission / properties / organization / descriptionRemoved value: -"permission level to organization"
- Changed
edubase_get_organization_departments13 fields changed- removed
Output schema / properties / departments / items / properties / department / descriptionRemoved value: -"name of the department" - removed
Output schema / properties / departments / items / properties / id / descriptionRemoved value: -"external unique department identifier (if set for the department)" - removed
Output schema / properties / departments / items / properties / leaders / descriptionRemoved value: -"leaders of the department" - removed
Output schema / properties / departments / items / properties / leaders / items / properties / name / descriptionRemoved value: -"name of the leader" - removed
Output schema / properties / departments / items / properties / leaders / items / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / departments / items / properties / level / descriptionRemoved value: -"depth of the department within the hierarchy (0 for root level departments)" - removed
Output schema / properties / departments / items / properties / members / descriptionRemoved value: -"number of (visible) members in the department" - removed
Output schema / properties / departments / items / properties / parent / descriptionRemoved value: -"name of the parent department (null for root level departments)" - removed
Output schema / properties / departments / items / properties / permission / descriptionRemoved value: -"permissions given to the members of the department" - removed
Output schema / properties / departments / items / properties / permission / properties / content / descriptionRemoved value: -"permission level to contents in organization" - removed
Output schema / properties / departments / items / properties / permission / properties / members / descriptionRemoved value: -"permission level to members in organization" - removed
Output schema / properties / departments / items / properties / permission / properties / organization / descriptionRemoved value: -"permission level to organization" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string"
- Changed
edubase_get_organization_members7 fields changed- removed
Output schema / properties / members / items / properties / department / descriptionRemoved value: -"name of the department (if member)" - removed
Output schema / properties / members / items / properties / name / descriptionRemoved value: -"name of the member" - removed
Output schema / properties / members / items / properties / permission / descriptionRemoved value: -"permissions" - removed
Output schema / properties / members / items / properties / permission / properties / content / descriptionRemoved value: -"permission level to contents in organization" - removed
Output schema / properties / members / items / properties / permission / properties / members / descriptionRemoved value: -"permission level to members in organization" - removed
Output schema / properties / members / items / properties / permission / properties / organization / descriptionRemoved value: -"permission level to organization" - removed
Output schema / properties / members / items / properties / user / descriptionRemoved value: -"user identification string"
- Removed
edubase_get_organization_permission - Removed
edubase_get_organization_tag - Removed
edubase_get_organization_tags - Changed
edubase_get_organization_webhook4 fields changed- removed
Output schema / properties / active / descriptionRemoved value: -"webhook is active" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the webhook" - removed
Output schema / properties / webhook / descriptionRemoved value: -"webhook identification string"
- Changed
edubase_get_organizations3 fields changed- removed
Output schema / properties / organizations / items / properties / id / descriptionRemoved value: -"external unique organization identifier (if set for the organization)" - removed
Output schema / properties / organizations / items / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / organizations / items / properties / title / descriptionRemoved value: -"title of the organization"
- Changed
edubase_get_question3 fields changed- removed
Output schema / properties / active / descriptionRemoved value: -"question is active" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique question identifier (if set for the question)" - removed
Output schema / properties / question / descriptionRemoved value: -"question identification string"
- Changed
edubase_get_question_id2 fields changed- removed
Output schema / properties / id / descriptionRemoved value: -"external unique question identifier (if set for the question)" - removed
Output schema / properties / question / descriptionRemoved value: -"question identification string"
- Changed
edubase_get_questions2 fields changed- removed
Output schema / properties / questions / items / properties / id / descriptionRemoved value: -"external unique question identifier (if set for the question)" - removed
Output schema / properties / questions / items / properties / question / descriptionRemoved value: -"question identification string"
- Changed
edubase_get_quiz5 fields changed- removed
Output schema / properties / description / descriptionRemoved value: -"short description of the Quiz set (only present if set for the Quiz set)" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique Quiz identifier (if set for the Quiz)" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the Quiz set" - removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the Quiz set"
- Changed
edubase_get_quiz_grading_preset12 fields changed- removed
Output schema / properties / certificates / descriptionRemoved value: -"the preset decides whether the test was successful, so certificates can be issued with it (see edubase_post_exam_certificates)" - removed
Output schema / properties / configurable / descriptionRemoved value: -"the threshold of the preset can be configured on the Quiz set or the exam" - removed
Output schema / properties / grades / items / properties / grade / descriptionRemoved value: -"the grade itself" - removed
Output schema / properties / grades / items / properties / text / descriptionRemoved value: -"text shown under the grade on the results page (if set)" - removed
Output schema / properties / grades / items / properties / threshold / descriptionRemoved value: -"lowest result in percentage the grade is given for, the first item always starts at 0" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the grading preset, null if the preset is available in every language" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string of the preset, null if the preset is not bound to an organization" - removed
Output schema / properties / own / descriptionRemoved value: -"the preset is a custom preset owned by the user" - removed
Output schema / properties / preset / descriptionRemoved value: -"grading preset identification string" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the grading preset" - removed
Output schema / properties / type / descriptionRemoved value: -"type of the grading preset" - removed
Output schema / properties / used / descriptionRemoved value: -"the preset is already used by a Quiz set or an exam of the user"
- Changed
edubase_get_quiz_grading_presets11 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string (only present if an exam is specified)" - removed
Output schema / properties / presets / items / properties / certificates / descriptionRemoved value: -"the preset decides whether the test was successful, so certificates can be issued with it (see edubase_post_exam_certificates)" - removed
Output schema / properties / presets / items / properties / configurable / descriptionRemoved value: -"the threshold of the preset can be configured on the Quiz set or the exam" - removed
Output schema / properties / presets / items / properties / current / descriptionRemoved value: -"the specified Quiz set or exam is currently graded with this preset (only present if a Quiz set or an exam is specified)" - removed
Output schema / properties / presets / items / properties / language / descriptionRemoved value: -"language of the grading preset, null if the preset is available in every language" - removed
Output schema / properties / presets / items / properties / organization / descriptionRemoved value: -"organization identification string of the preset, null if the preset is not bound to an organization" - removed
Output schema / properties / presets / items / properties / own / descriptionRemoved value: -"the preset is a custom preset owned by the user" - removed
Output schema / properties / presets / items / properties / preset / descriptionRemoved value: -"grading preset identification string" - removed
Output schema / properties / presets / items / properties / title / descriptionRemoved value: -"title of the grading preset" - removed
Output schema / properties / presets / items / properties / type / descriptionRemoved value: -"type of the grading preset" - removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string (only present if a Quiz set is specified)"
- Removed
edubase_get_quiz_permission - Changed
edubase_get_quiz_questions4 fields changed- removed
Output schema / properties / items / items / properties / active / descriptionRemoved value: -"active item" - removed
Output schema / properties / items / items / properties / group / descriptionRemoved value: -"question group title (if group)" - removed
Output schema / properties / items / items / properties / id / descriptionRemoved value: -"external unique question identifier (if question and present)" - removed
Output schema / properties / items / items / properties / question / descriptionRemoved value: -"question identification string (if question)"
- Changed
edubase_get_quiz_results_play16 fields changed- removed
Output schema / properties / play / descriptionRemoved value: -"Quiz play identification string" - removed
Output schema / properties / points_correct / descriptionRemoved value: -"total points scored" - removed
Output schema / properties / points_total / descriptionRemoved value: -"total points" - removed
Output schema / properties / questions / items / properties / id / descriptionRemoved value: -"external unique question identifier (if present)" - removed
Output schema / properties / questions / items / properties / index / descriptionRemoved value: -"question index" - removed
Output schema / properties / questions / items / properties / points / descriptionRemoved value: -"points scored" - removed
Output schema / properties / questions / items / properties / points_maximum / descriptionRemoved value: -"maximum points" - removed
Output schema / properties / questions / items / properties / question / descriptionRemoved value: -"question identification string" - removed
Output schema / properties / questions / items / properties / time_answer / descriptionRemoved value: -"number of seconds spent on question (if available)" - removed
Output schema / properties / questions_correct / descriptionRemoved value: -"number of correctly answered questions" - removed
Output schema / properties / questions_total / descriptionRemoved value: -"total number of questions asked" - removed
Output schema / properties / successful / descriptionRemoved value: -"attempt passed grading threshold (if applicable)" - removed
Output schema / properties / time_end / descriptionRemoved value: -"end time" - removed
Output schema / properties / time_start / descriptionRemoved value: -"start time" - removed
Output schema / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / valid / descriptionRemoved value: -"result is valid"
- Changed
edubase_get_quiz_results_user10 fields changed- removed
Output schema / properties / results / items / properties / play / descriptionRemoved value: -"Quiz play identification string" - removed
Output schema / properties / results / items / properties / points_correct / descriptionRemoved value: -"total points scored" - removed
Output schema / properties / results / items / properties / points_total / descriptionRemoved value: -"total points" - removed
Output schema / properties / results / items / properties / questions_correct / descriptionRemoved value: -"number of correctly answered questions" - removed
Output schema / properties / results / items / properties / questions_total / descriptionRemoved value: -"total number of questions asked" - removed
Output schema / properties / results / items / properties / successful / descriptionRemoved value: -"attempt passed grading threshold (if applicable)" - removed
Output schema / properties / results / items / properties / time_end / descriptionRemoved value: -"end time" - removed
Output schema / properties / results / items / properties / time_start / descriptionRemoved value: -"start time" - removed
Output schema / properties / results / items / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / results / items / properties / valid / descriptionRemoved value: -"result is valid"
- Changed
edubase_get_quiz_settings6 fields changed- removed
Output schema / properties / grading / descriptionRemoved value: -"grading of the Quiz set, the code of the grading preset in use, \"custom\" for a manually configured grading, or \"none\" when grading is disabled" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the grading in percentage (only present if a threshold is configured for the Quiz set)" - removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string" - removed
Output schema / properties / roundtime / descriptionRemoved value: -"time limit of a single question in seconds, turn based Quiz sets only, null if there is no time limit" - removed
Output schema / properties / shuffle / descriptionRemoved value: -"questions are shuffled for every play" - removed
Output schema / properties / timelimit / descriptionRemoved value: -"time limit of the whole test in seconds, null if there is no time limit"
- Changed
edubase_get_quiz_skills4 fields changed- removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string" - removed
Output schema / properties / skills / items / properties / description / descriptionRemoved value: -"skill description (if set)" - removed
Output schema / properties / skills / items / properties / identifier / descriptionRemoved value: -"skill identifier" - removed
Output schema / properties / skills / items / properties / title / descriptionRemoved value: -"title of the skill"
- Removed
edubase_get_quiz_tag - Removed
edubase_get_quiz_tags - Changed
edubase_get_quizes3 fields changed- removed
Output schema / properties / quizes / items / properties / id / descriptionRemoved value: -"external unique Quiz identifier (if set for the Quiz)" - removed
Output schema / properties / quizes / items / properties / quiz / descriptionRemoved value: -"Quiz identification string" - removed
Output schema / properties / quizes / items / properties / title / descriptionRemoved value: -"title of the Quiz set"
- Removed
edubase_get_scorm_permission - Removed
edubase_get_scorm_tag - Removed
edubase_get_scorm_tags - Changed
edubase_get_tag5 fields changed- removed
Output schema / properties / color / descriptionRemoved value: -"color in HEX format" - removed
Output schema / properties / icon / descriptionRemoved value: -"Font Awesome icon class name" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique tag identifier (if set for the tag)" - removed
Output schema / properties / tag / descriptionRemoved value: -"tag identification string" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the tag"
- Removed
edubase_get_tag_permission - Changed
edubase_get_tags3 fields changed- removed
Output schema / properties / tags / items / properties / id / descriptionRemoved value: -"external unique tag identifier (if set for the tag)" - removed
Output schema / properties / tags / items / properties / tag / descriptionRemoved value: -"tag identification string" - removed
Output schema / properties / tags / items / properties / title / descriptionRemoved value: -"title of the tag"
- Changed
edubase_get_user4 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam (generated) account" - removed
Output schema / properties / name / descriptionRemoved value: -"full name" - removed
Output schema / properties / status / descriptionRemoved value: -"user is enabled" - removed
Output schema / properties / user / descriptionRemoved value: -"user identification string"
- Changed
edubase_get_user_classes5 fields changed- removed
Output schema / properties / classes / items / properties / active / descriptionRemoved value: -"active membership (approved and not expired)" - removed
Output schema / properties / classes / items / properties / class / descriptionRemoved value: -"class identification string" - removed
Output schema / properties / classes / items / properties / id / descriptionRemoved value: -"external unique class identifier (if set for the class)" - removed
Output schema / properties / classes / items / properties / link / descriptionRemoved value: -"link to the class page" - removed
Output schema / properties / classes / items / properties / title / descriptionRemoved value: -"title of the class"
- Changed
edubase_get_user_group2 fields changed- removed
Output schema / properties / group / descriptionRemoved value: -"user group code" - removed
Output schema / properties / user / descriptionRemoved value: -"the user identification string"
- Changed
edubase_get_user_login3 fields changed- removed
Output schema / properties / url / descriptionRemoved value: -"the login link" - removed
Output schema / properties / user / descriptionRemoved value: -"the user identification string" - removed
Output schema / properties / valid / descriptionRemoved value: -"validity (end of day) of the generated link"
- Changed
edubase_get_user_me4 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam (generated) account" - removed
Output schema / properties / name / descriptionRemoved value: -"full name" - removed
Output schema / properties / status / descriptionRemoved value: -"user is enabled" - removed
Output schema / properties / user / descriptionRemoved value: -"user identification string"
- Changed
edubase_get_user_name5 fields changed- removed
Output schema / properties / display_name / descriptionRemoved value: -"display name" - removed
Output schema / properties / first_name / descriptionRemoved value: -"first name" - removed
Output schema / properties / full_name / descriptionRemoved value: -"full name" - removed
Output schema / properties / last_name / descriptionRemoved value: -"last name" - removed
Output schema / properties / user / descriptionRemoved value: -"the user identification string"
- Changed
edubase_get_user_organizations9 fields changed- removed
Output schema / properties / organizations / items / properties / department / descriptionRemoved value: -"name of the department (if member)" - removed
Output schema / properties / organizations / items / properties / id / descriptionRemoved value: -"external unique organization identifier (if set for the organization)" - removed
Output schema / properties / organizations / items / properties / link / descriptionRemoved value: -"link to the organization manager page" - removed
Output schema / properties / organizations / items / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / organizations / items / properties / permission / descriptionRemoved value: -"permissions" - removed
Output schema / properties / organizations / items / properties / permission / properties / content / descriptionRemoved value: -"permission level to contents in organization" - removed
Output schema / properties / organizations / items / properties / permission / properties / members / descriptionRemoved value: -"permission level to members in organization" - removed
Output schema / properties / organizations / items / properties / permission / properties / organization / descriptionRemoved value: -"permission level to organization" - removed
Output schema / properties / organizations / items / properties / title / descriptionRemoved value: -"title of the organization"
- Changed
edubase_get_user_search2 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam (generated) account" - removed
Output schema / properties / user / descriptionRemoved value: -"user identification string"
- Changed
edubase_get_users2 fields changed- removed
Output schema / properties / users / items / properties / name / descriptionRemoved value: -"full name of the user" - removed
Output schema / properties / users / items / properties / user / descriptionRemoved value: -"user identification string"
- Removed
edubase_get_video_permission - Removed
edubase_get_video_tag - Removed
edubase_get_video_tags - Changed
edubase_patch_exam_settings2 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / source / descriptionRemoved value: -"exam identification string the settings were copied from"
- Changed
edubase_patch_quiz_grading_preset12 fields changed- removed
Output schema / properties / certificates / descriptionRemoved value: -"the preset decides whether the test was successful, so certificates can be issued with it (see edubase_post_exam_certificates)" - removed
Output schema / properties / configurable / descriptionRemoved value: -"the threshold of the preset can be configured on the Quiz set or the exam" - removed
Output schema / properties / grades / items / properties / grade / descriptionRemoved value: -"the grade itself" - removed
Output schema / properties / grades / items / properties / text / descriptionRemoved value: -"text shown under the grade on the results page (if set)" - removed
Output schema / properties / grades / items / properties / threshold / descriptionRemoved value: -"lowest result in percentage the grade is given for, the first item always starts at 0" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the grading preset, null if the preset is available in every language" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string of the preset, null if the preset is not bound to an organization" - removed
Output schema / properties / own / descriptionRemoved value: -"the preset is a custom preset owned by the user" - removed
Output schema / properties / preset / descriptionRemoved value: -"grading preset identification string" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the grading preset" - removed
Output schema / properties / type / descriptionRemoved value: -"type of the grading preset" - removed
Output schema / properties / used / descriptionRemoved value: -"the preset is already used by a Quiz set or an exam of the user"
- Changed
edubase_patch_quiz_settings2 fields changed- removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string" - removed
Output schema / properties / source / descriptionRemoved value: -"Quiz identification string the settings were copied from"
- Removed
edubase_post_class_permission - Removed
edubase_post_class_tag - Removed
edubase_post_class_transfer - Added
edubase_post_content_permission - Added
edubase_post_content_tag - Added
edubase_post_content_transfer - Removed
edubase_post_course_permission - Removed
edubase_post_course_tag - Removed
edubase_post_course_transfer - Removed
edubase_post_event_permission - Removed
edubase_post_event_tag - Removed
edubase_post_event_transfer - Changed
edubase_post_exam1 field changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string"
- Changed
edubase_post_exam_autologin8 fields changed- removed
Output schema / properties / autoadd / descriptionRemoved value: -"new exam accounts are generated automatically on demand (only present if autologin is true)" - removed
Output schema / properties / autojoin / descriptionRemoved value: -"already registered users can join the exam automatically (only present if autologin is true)" - removed
Output schema / properties / autojoin_limited / descriptionRemoved value: -"automatic joining is limited to the assigned users (only present if autojoin is true)" - removed
Output schema / properties / autologin / descriptionRemoved value: -"automatic login is enabled" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / pin / descriptionRemoved value: -"PIN code of the exam (only present if autologin is true)" - removed
Output schema / properties / results_url / descriptionRemoved value: -"URL where examinees can look up their own results (only present if autologin is true and results can be viewed with an identifier)" - removed
Output schema / properties / url / descriptionRemoved value: -"login URL of the exam, the shortlink or the Safe Exam Browser launch URL if configured (only present if autologin is true)"
- Changed
edubase_post_exam_certificates55 fields changed- removed
Output schema / properties / automatic_renewal_approval / descriptionRemoved value: -"the renewal is approved automatically, but it stays revocable (only present if show_expiration is enabled)" - removed
Output schema / properties / branding_edubase / descriptionRemoved value: -"the EduBase logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_image / descriptionRemoved value: -"the uploaded logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line1 / descriptionRemoved value: -"name of the organization (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line2 / descriptionRemoved value: -"second line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line3 / descriptionRemoved value: -"third line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line4 / descriptionRemoved value: -"fourth line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / configured / descriptionRemoved value: -"the certificates are configured, so they can be issued" - removed
Output schema / properties / custom_fields / descriptionRemoved value: -"custom user data displayed as extra data (only present if show_custom is enabled), the custom user data fields of the exam are identified by their label (see edubase_get_exam_fields), the data fields of the user accounts by their customer_ prefixed name" - removed
Output schema / properties / custom_user_fields / descriptionRemoved value: -"custom user data displayed together with the data of the examinee (only present if show_custom is enabled)" - removed
Output schema / properties / download_automatically / descriptionRemoved value: -"the certificate is downloaded automatically when the examinee opens the results page" - removed
Output schema / properties / email_send / descriptionRemoved value: -"the certificates are sent to the examinees in email automatically" - removed
Output schema / properties / enabled / descriptionRemoved value: -"certificates are issued for the exam, the configuration itself is only returned when the certificates are enabled" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / expiration / descriptionRemoved value: -"validity period of the certificates in days (only present if show_expiration is enabled)" - removed
Output schema / properties / expiration_notification_emails / descriptionRemoved value: -"email addresses notified about the expiring certificates (only present if show_expiration is enabled)" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the certificates in percentage, overriding the threshold of the grading, null if the threshold of the grading is used" - removed
Output schema / properties / hide_timezone / descriptionRemoved value: -"the timezone information is hidden" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the certificates" - removed
Output schema / properties / manual_renewal / descriptionRemoved value: -"the renewal has to be approved by a supervisor (only present if show_expiration is enabled)" - removed
Output schema / properties / notes / descriptionRemoved value: -"notes displayed at the bottom of the certificates" - removed
Output schema / properties / preset / descriptionRemoved value: -"identification string of the certificate preset configuring the certificates (see edubase_get_exam_certificates_presets), null if the certificates are configured manually" - removed
Output schema / properties / renew / descriptionRemoved value: -"whether the certificates can be renewed (only present if show_expiration is enabled), false: the certificates cannot be renewed, true: the certificates can be renewed any time, number: the number of days the renewal is available from, relative to the expiry (0 is the day of the expiry, negative values open the renewal before it)" - removed
Output schema / properties / result_format / descriptionRemoved value: -"format of the displayed result (only present if show_result is enabled)" - removed
Output schema / properties / serial_format / descriptionRemoved value: -"format of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_index_digits / descriptionRemoved value: -"minimum length of the index in the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_prefix / descriptionRemoved value: -"prefix of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_separator / descriptionRemoved value: -"separator between the parts of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / show_birthdate_birthplace / descriptionRemoved value: -"the birth date and the birth place of the examinee are displayed" - removed
Output schema / properties / show_custom / descriptionRemoved value: -"custom user data is displayed" - removed
Output schema / properties / show_custom_branding / descriptionRemoved value: -"custom branding (logo and organization name) is displayed" - removed
Output schema / properties / show_expiration / descriptionRemoved value: -"the certificates expire and their validity is displayed" - removed
Output schema / properties / show_result / descriptionRemoved value: -"the result of the test is displayed" - removed
Output schema / properties / show_serial / descriptionRemoved value: -"the certificates get a serial number" - removed
Output schema / properties / show_signature / descriptionRemoved value: -"signatures are displayed" - removed
Output schema / properties / signature_left / descriptionRemoved value: -"the signature of the first organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_image / descriptionRemoved value: -"the uploaded image of the first signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line1 / descriptionRemoved value: -"name of the first organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line2 / descriptionRemoved value: -"second line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line3 / descriptionRemoved value: -"third line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line4 / descriptionRemoved value: -"fourth line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right / descriptionRemoved value: -"the signature of the second organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_image / descriptionRemoved value: -"the uploaded image of the second signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line1 / descriptionRemoved value: -"name of the second organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line2 / descriptionRemoved value: -"second line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line3 / descriptionRemoved value: -"third line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line4 / descriptionRemoved value: -"fourth line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_stamp / descriptionRemoved value: -"the uploaded stamp is displayed between the signatures (only present if show_signature is enabled)" - removed
Output schema / properties / signature_user / descriptionRemoved value: -"a signature line is displayed for the examinee (only present if show_signature is enabled)" - removed
Output schema / properties / supervisors_only / descriptionRemoved value: -"only the supervisors can issue the certificates, the examinees cannot get their own ones" - removed
Output schema / properties / text1 / descriptionRemoved value: -"text displayed under the data of the examinee, the multi line texts (text1, text2 and notes) are returned with basic HTML formatting and line breaks" - removed
Output schema / properties / text2 / descriptionRemoved value: -"text displayed under the results, above the date of the test" - removed
Output schema / properties / text_date / descriptionRemoved value: -"text displayed before the date of the test" - removed
Output schema / properties / timezone / descriptionRemoved value: -"timezone of the dates on the certificates, null if the timezone of the exam is used" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the certificates"
- Changed
edubase_post_exam_certificates_user_download4 fields changed- removed
Output schema / properties / play / descriptionRemoved value: -"Quiz play identification string" - removed
Output schema / properties / url / descriptionRemoved value: -"download link for the certificate" - removed
Output schema / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / valid / descriptionRemoved value: -"date of link expiration"
- Changed
edubase_post_exam_fields19 fields changed- removed
Output schema / properties / email / descriptionRemoved value: -"the email address of the examinee is requested (false: the field is not used, true: the field is used with its default label, otherwise the custom label of the field)" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / fields / descriptionRemoved value: -"the custom fields of the exam" - removed
Output schema / properties / fields / items / properties / description / descriptionRemoved value: -"description shown under the field (if set)" - removed
Output schema / properties / fields / items / properties / filtering / descriptionRemoved value: -"short labels the examinees are grouped and filtered with in the exam manager and the reports, keyed by option (select fields only, if set)" - removed
Output schema / properties / fields / items / properties / from / descriptionRemoved value: -"lowest selectable value (from-to fields only)" - removed
Output schema / properties / fields / items / properties / icon / descriptionRemoved value: -"Font Awesome icon class name of the field (if set)" - removed
Output schema / properties / fields / items / properties / label / descriptionRemoved value: -"label of the field, shown to the examinee" - removed
Output schema / properties / fields / items / properties / maxlength / descriptionRemoved value: -"maximum length of the value (free text fields only, if set)" - removed
Output schema / properties / fields / items / properties / minlength / descriptionRemoved value: -"minimum length of the value (free text fields only, if set)" - removed
Output schema / properties / fields / items / properties / options / descriptionRemoved value: -"the selectable options (select fields only)" - removed
Output schema / properties / fields / items / properties / pattern / descriptionRemoved value: -"regular expression the value has to match (free text fields only, if set)" - removed
Output schema / properties / fields / items / properties / required / descriptionRemoved value: -"the field has to be filled in" - removed
Output schema / properties / fields / items / properties / step / descriptionRemoved value: -"difference between the selectable values (from-to fields only, if set)" - removed
Output schema / properties / fields / items / properties / to / descriptionRemoved value: -"highest selectable value (from-to fields only)" - removed
Output schema / properties / fields / items / properties / type / descriptionRemoved value: -"type of the field" - removed
Output schema / properties / fields / items / properties / unique / descriptionRemoved value: -"the value has to be unique within the exam (free text fields only, if set)" - removed
Output schema / properties / name / descriptionRemoved value: -"the full name of the examinee is requested (false: the field is not used, true: the field is used with its default label, otherwise the custom label of the field)" - removed
Output schema / properties / phone / descriptionRemoved value: -"the phone number of the examinee is requested (false: the field is not used, true: the field is used with its default label, otherwise the custom label of the field)"
- Removed
edubase_post_exam_permission - Changed
edubase_post_exam_results_export4 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / format / descriptionRemoved value: -"format of the exported file" - removed
Output schema / properties / url / descriptionRemoved value: -"download link for the results" - removed
Output schema / properties / valid / descriptionRemoved value: -"date and time of link expiration"
- Changed
edubase_post_exam_round5 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / frozen / descriptionRemoved value: -"the current round is frozen, no new round can be started" - removed
Output schema / properties / results / descriptionRemoved value: -"the current round already has results" - removed
Output schema / properties / round / descriptionRemoved value: -"index of the current round" - removed
Output schema / properties / started / descriptionRemoved value: -"date and time the current round was started at"
- Changed
edubase_post_exam_settings29 fields changed- removed
Output schema / properties / archive / descriptionRemoved value: -"the users who already have a result can be archived" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / export_answers / descriptionRemoved value: -"the answers given by the examinees are exported (never returned for surveys)" - removed
Output schema / properties / export_attendance / descriptionRemoved value: -"the attendance of the examinees is exported, read only as the attendance is configured together with its source on the interface (never returned for surveys)" - removed
Output schema / properties / export_custom_fields / descriptionRemoved value: -"the user data fields filled in by the examinees are exported (see edubase_get_exam_fields), never returned for surveys" - removed
Output schema / properties / export_finished_only / descriptionRemoved value: -"only the examinees who finished their test are exported (never returned for surveys)" - removed
Output schema / properties / export_format / descriptionRemoved value: -"format of the exported results file (csv: semicolon separated values, xlsx: Excel 2007+ workbook)" - removed
Output schema / properties / export_gender / descriptionRemoved value: -"the gender of the registered examinees is exported (never returned for surveys)" - removed
Output schema / properties / export_points / descriptionRemoved value: -"the points scored on every question are exported (never returned for surveys)" - removed
Output schema / properties / export_skills / descriptionRemoved value: -"the skill results of the examinees are exported, only exported when the Quiz set of the exam has skills (never returned for surveys)" - removed
Output schema / properties / export_sort / descriptionRemoved value: -"ordering of the examinees in the exported results file (default: the same order they are listed in on the users page of the exam, name: by the name of the examinees)" - removed
Output schema / properties / export_stats / descriptionRemoved value: -"the statistics of every question are exported (never returned for surveys)" - removed
Output schema / properties / export_suspicion / descriptionRemoved value: -"the suspicious test taking indicator is exported (never returned for surveys)" - removed
Output schema / properties / freeze_round / descriptionRemoved value: -"the current round of the exam is frozen, no new round can be started" - removed
Output schema / properties / grading / descriptionRemoved value: -"grading of the exam, the code of the grading preset in use, \"custom\" for a manually configured grading, or \"none\" when grading is disabled, null if the setting of the Quiz set is used (never returned for surveys)" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the grading in percentage (only present if a threshold is configured for the exam)" - removed
Output schema / properties / hide_grade / descriptionRemoved value: -"the grade is hidden on the results page" - removed
Output schema / properties / hide_ingame_results / descriptionRemoved value: -"the results are hidden while the test is taken" - removed
Output schema / properties / hide_points / descriptionRemoved value: -"the points are hidden during the test and on the results page" - removed
Output schema / properties / nonblocking / descriptionRemoved value: -"exam accounts are exclusively assigned to the exam and cannot be assigned to other exams during the exam period" - removed
Output schema / properties / pausable / descriptionRemoved value: -"tests can be paused and continued later during the exam period" - removed
Output schema / properties / results_page / descriptionRemoved value: -"the examinees are redirected to the results page after the test" - removed
Output schema / properties / results_url / descriptionRemoved value: -"URL where examinees can look up their own results with the identifier (only present if the identifier based results page is available)" - removed
Output schema / properties / roundtime / descriptionRemoved value: -"time limit of a single question in seconds (as a number), turn based Quiz sets only, null if the setting of the Quiz set is used, or 0 if there is no time limit" - removed
Output schema / properties / show_in_lasthour / descriptionRemoved value: -"the results are only shown in the last hour of the exam" - removed
Output schema / properties / timelimit / descriptionRemoved value: -"time limit of the whole test in seconds (as a number), null if the setting of the Quiz set is used, or 0 if there is no time limit" - removed
Output schema / properties / view_results / descriptionRemoved value: -"when the examinees can see their results (after: right after the test is submitted, until the end of the exam, always: any time during the exam period, the examinees can log back in to see their results, datetime: after the test is submitted, and again from the start of the results viewing period, datetime_blind: only in the results viewing period, the solutions and the details of the evaluation are hidden right after the test, manual: only after the result is published separately, test by test, none: never), never returned for surveys" - removed
Output schema / properties / view_results_identifier / descriptionRemoved value: -"label of the custom user data field the examinees can look up their results with (only present if view_results is datetime or datetime_blind)" - removed
Output schema / properties / view_results_start / descriptionRemoved value: -"start of the results viewing period (only present if view_results is datetime or datetime_blind)"
- Changed
edubase_post_exam_status5 fields changed- removed
Output schema / properties / active / descriptionRemoved value: -"exam is active" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / modified / descriptionRemoved value: -"date and time the status was changed at" - removed
Output schema / properties / scheduled / descriptionRemoved value: -"date and time starting new tests is automatically disabled at" - removed
Output schema / properties / status / descriptionRemoved value: -"new tests can be started"
- Removed
edubase_post_exam_tag - Removed
edubase_post_exam_transfer - Changed
edubase_post_exam_users_generate7 fields changed- removed
Output schema / properties / duplicate / descriptionRemoved value: -"usernames that were skipped because the same account was being generated by a parallel request at the same time (only present if there are any)" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / failed / descriptionRemoved value: -"usernames of the accounts that could not be created (only present if there are any)" - removed
Output schema / properties / users / items / properties / name / descriptionRemoved value: -"full name of the generated account" - removed
Output schema / properties / users / items / properties / password / descriptionRemoved value: -"password of the generated account (if available)" - removed
Output schema / properties / users / items / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / users / items / properties / username / descriptionRemoved value: -"username of the generated account"
- Changed
edubase_post_filebin_upload4 fields changed- removed
Output schema / properties / id / descriptionRemoved value: -"external unique filebin identifier for the uploaded file" - removed
Output schema / properties / limit / descriptionRemoved value: -"maximum file size in bytes" - removed
Output schema / properties / url / descriptionRemoved value: -"upload link for the file" - removed
Output schema / properties / valid / descriptionRemoved value: -"date of link expiration"
- Changed
edubase_post_integration1 field changed- removed
Output schema / properties / integration / descriptionRemoved value: -"integration identification string"
- Changed
edubase_post_integration_keys5 fields changed- removed
Output schema / properties / app / descriptionRemoved value: -"API application identification string, only present if the integration is an API integration" - removed
Output schema / properties / consumer / descriptionRemoved value: -"consumer key, only present if the integration is an LMS integration using LTI 1.0/1.1" - removed
Output schema / properties / jwk / descriptionRemoved value: -"URL for the JWK (JSON Web Key) set, only present if the integration is an LMS integration using LTI 1.3" - removed
Output schema / properties / pem / descriptionRemoved value: -"PEM formatted public key, only present if the integration is an LMS integration using LTI 1.3" - removed
Output schema / properties / secret / descriptionRemoved value: -"secret key, only present if the integration is an API integration or an LMS integration using LTI 1.0/1.1"
- Removed
edubase_post_integration_permission - Removed
edubase_post_integration_tag - Removed
edubase_post_integration_transfer - Changed
edubase_post_metrics_custom2 fields changed- removed
Output schema / properties / metric / descriptionRemoved value: -"metric name" - removed
Output schema / properties / value / descriptionRemoved value: -"saved value"
- Changed
edubase_post_organization1 field changed- removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string"
- Changed
edubase_post_organization_department3 fields changed- removed
Output schema / properties / department / descriptionRemoved value: -"name of the department" - removed
Output schema / properties / id / descriptionRemoved value: -"external unique department identifier (if set for the department)" - removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string"
- Removed
edubase_post_organization_permission - Removed
edubase_post_organization_tag - Removed
edubase_post_organization_transfer - Changed
edubase_post_organization_webhook2 fields changed- removed
Output schema / properties / organization / descriptionRemoved value: -"organization identification string" - removed
Output schema / properties / webhook / descriptionRemoved value: -"webhook identification string"
- Changed
edubase_post_question1 field changed- removed
Output schema / properties / question / descriptionRemoved value: -"question identification string"
- Changed
edubase_post_question_export4 fields changed- removed
Output schema / properties / id / descriptionRemoved value: -"external unique question identifier (if set for the question)" - removed
Output schema / properties / question / descriptionRemoved value: -"question identification string" - removed
Output schema / properties / url / descriptionRemoved value: -"download link for the question" - removed
Output schema / properties / valid / descriptionRemoved value: -"date of link expiration"
- Changed
edubase_post_quiz1 field changed- removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string"
- Changed
edubase_post_quiz_grading_preset1 field changed- removed
Output schema / properties / preset / descriptionRemoved value: -"grading preset identification string"
- Removed
edubase_post_quiz_permission - Changed
edubase_post_quiz_settings6 fields changed- removed
Output schema / properties / grading / descriptionRemoved value: -"grading of the Quiz set, the code of the grading preset in use, \"custom\" for a manually configured grading, or \"none\" when grading is disabled" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the grading in percentage (only present if a threshold is configured for the Quiz set)" - removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string" - removed
Output schema / properties / roundtime / descriptionRemoved value: -"time limit of a single question in seconds, turn based Quiz sets only, null if there is no time limit" - removed
Output schema / properties / shuffle / descriptionRemoved value: -"questions are shuffled for every play" - removed
Output schema / properties / timelimit / descriptionRemoved value: -"time limit of the whole test in seconds, null if there is no time limit"
- Removed
edubase_post_quiz_tag - Removed
edubase_post_quiz_transfer - Removed
edubase_post_scorm_permission - Removed
edubase_post_scorm_tag - Removed
edubase_post_scorm_transfer - Removed
edubase_post_tag_permission - Removed
edubase_post_tag_transfer - Changed
edubase_post_user3 fields changed- removed
Output schema / properties / password / descriptionRemoved value: -"password, only if exam=false" - removed
Output schema / properties / user / descriptionRemoved value: -"user identification string" - removed
Output schema / properties / username / descriptionRemoved value: -"username, only if exam=false"
- Removed
edubase_post_user_assume - Changed
edubase_post_user_group3 fields changed- removed
Output schema / properties / changed / descriptionRemoved value: -"group has been changed" - removed
Output schema / properties / success / descriptionRemoved value: -"operation is successful" - removed
Output schema / properties / user / descriptionRemoved value: -"the user identification string"
- Changed
edubase_post_user_login4 fields changed- removed
Output schema / properties / count / descriptionRemoved value: -"maximum number the link can be used to login" - removed
Output schema / properties / url / descriptionRemoved value: -"the login link" - removed
Output schema / properties / user / descriptionRemoved value: -"the user identification string" - removed
Output schema / properties / valid / descriptionRemoved value: -"validity of the generated link"
- Changed
edubase_post_user_name3 fields changed- removed
Output schema / properties / changed / descriptionRemoved value: -"name has been changed" - removed
Output schema / properties / success / descriptionRemoved value: -"operation is successful" - removed
Output schema / properties / user / descriptionRemoved value: -"the user identification string"
- Removed
edubase_post_video_permission - Removed
edubase_post_video_tag - Removed
edubase_post_video_transfer - Changed
edubase_put_exam_certificates55 fields changed- removed
Output schema / properties / automatic_renewal_approval / descriptionRemoved value: -"the renewal is approved automatically, but it stays revocable (only present if show_expiration is enabled)" - removed
Output schema / properties / branding_edubase / descriptionRemoved value: -"the EduBase logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_image / descriptionRemoved value: -"the uploaded logo is displayed (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line1 / descriptionRemoved value: -"name of the organization (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line2 / descriptionRemoved value: -"second line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line3 / descriptionRemoved value: -"third line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / branding_line4 / descriptionRemoved value: -"fourth line of the branding (only present if show_custom_branding is enabled)" - removed
Output schema / properties / configured / descriptionRemoved value: -"the certificates are configured, so they can be issued" - removed
Output schema / properties / custom_fields / descriptionRemoved value: -"custom user data displayed as extra data (only present if show_custom is enabled), the custom user data fields of the exam are identified by their label (see edubase_get_exam_fields), the data fields of the user accounts by their customer_ prefixed name" - removed
Output schema / properties / custom_user_fields / descriptionRemoved value: -"custom user data displayed together with the data of the examinee (only present if show_custom is enabled)" - removed
Output schema / properties / download_automatically / descriptionRemoved value: -"the certificate is downloaded automatically when the examinee opens the results page" - removed
Output schema / properties / email_send / descriptionRemoved value: -"the certificates are sent to the examinees in email automatically" - removed
Output schema / properties / enabled / descriptionRemoved value: -"certificates are issued for the exam, the configuration itself is only returned when the certificates are enabled" - removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / expiration / descriptionRemoved value: -"validity period of the certificates in days (only present if show_expiration is enabled)" - removed
Output schema / properties / expiration_notification_emails / descriptionRemoved value: -"email addresses notified about the expiring certificates (only present if show_expiration is enabled)" - removed
Output schema / properties / grading_threshold / descriptionRemoved value: -"threshold of the certificates in percentage, overriding the threshold of the grading, null if the threshold of the grading is used" - removed
Output schema / properties / hide_timezone / descriptionRemoved value: -"the timezone information is hidden" - removed
Output schema / properties / language / descriptionRemoved value: -"language of the certificates" - removed
Output schema / properties / manual_renewal / descriptionRemoved value: -"the renewal has to be approved by a supervisor (only present if show_expiration is enabled)" - removed
Output schema / properties / notes / descriptionRemoved value: -"notes displayed at the bottom of the certificates" - removed
Output schema / properties / preset / descriptionRemoved value: -"identification string of the certificate preset configuring the certificates (see edubase_get_exam_certificates_presets), null if the certificates are configured manually" - removed
Output schema / properties / renew / descriptionRemoved value: -"whether the certificates can be renewed (only present if show_expiration is enabled), false: the certificates cannot be renewed, true: the certificates can be renewed any time, number: the number of days the renewal is available from, relative to the expiry (0 is the day of the expiry, negative values open the renewal before it)" - removed
Output schema / properties / result_format / descriptionRemoved value: -"format of the displayed result (only present if show_result is enabled)" - removed
Output schema / properties / serial_format / descriptionRemoved value: -"format of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_index_digits / descriptionRemoved value: -"minimum length of the index in the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_prefix / descriptionRemoved value: -"prefix of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / serial_separator / descriptionRemoved value: -"separator between the parts of the serial numbers (only present if show_serial is enabled)" - removed
Output schema / properties / show_birthdate_birthplace / descriptionRemoved value: -"the birth date and the birth place of the examinee are displayed" - removed
Output schema / properties / show_custom / descriptionRemoved value: -"custom user data is displayed" - removed
Output schema / properties / show_custom_branding / descriptionRemoved value: -"custom branding (logo and organization name) is displayed" - removed
Output schema / properties / show_expiration / descriptionRemoved value: -"the certificates expire and their validity is displayed" - removed
Output schema / properties / show_result / descriptionRemoved value: -"the result of the test is displayed" - removed
Output schema / properties / show_serial / descriptionRemoved value: -"the certificates get a serial number" - removed
Output schema / properties / show_signature / descriptionRemoved value: -"signatures are displayed" - removed
Output schema / properties / signature_left / descriptionRemoved value: -"the signature of the first organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_image / descriptionRemoved value: -"the uploaded image of the first signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line1 / descriptionRemoved value: -"name of the first organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line2 / descriptionRemoved value: -"second line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line3 / descriptionRemoved value: -"third line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_left_line4 / descriptionRemoved value: -"fourth line of the first signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right / descriptionRemoved value: -"the signature of the second organizer is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_image / descriptionRemoved value: -"the uploaded image of the second signature is displayed (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line1 / descriptionRemoved value: -"name of the second organizer (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line2 / descriptionRemoved value: -"second line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line3 / descriptionRemoved value: -"third line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_right_line4 / descriptionRemoved value: -"fourth line of the second signature (only present if show_signature is enabled)" - removed
Output schema / properties / signature_stamp / descriptionRemoved value: -"the uploaded stamp is displayed between the signatures (only present if show_signature is enabled)" - removed
Output schema / properties / signature_user / descriptionRemoved value: -"a signature line is displayed for the examinee (only present if show_signature is enabled)" - removed
Output schema / properties / supervisors_only / descriptionRemoved value: -"only the supervisors can issue the certificates, the examinees cannot get their own ones" - removed
Output schema / properties / text1 / descriptionRemoved value: -"text displayed under the data of the examinee, the multi line texts (text1, text2 and notes) are returned with basic HTML formatting and line breaks" - removed
Output schema / properties / text2 / descriptionRemoved value: -"text displayed under the results, above the date of the test" - removed
Output schema / properties / text_date / descriptionRemoved value: -"text displayed before the date of the test" - removed
Output schema / properties / timezone / descriptionRemoved value: -"timezone of the dates on the certificates, null if the timezone of the exam is used" - removed
Output schema / properties / title / descriptionRemoved value: -"title of the certificates"
- Changed
edubase_put_exam_settings2 fields changed- removed
Output schema / properties / exam / descriptionRemoved value: -"exam identification string" - removed
Output schema / properties / source / descriptionRemoved value: -"exam identification string the settings were copied from"
- Changed
edubase_put_quiz_settings2 fields changed- removed
Output schema / properties / quiz / descriptionRemoved value: -"Quiz identification string" - removed
Output schema / properties / source / descriptionRemoved value: -"Quiz identification string the settings were copied from"
12 tool updates
v1.2.17- Added
edubase_delete_organization_department - Added
edubase_get_organization_competencies - Added
edubase_get_organization_competency_requirements - Added
edubase_get_organization_compliance - Added
edubase_get_organization_department - Added
edubase_get_organization_departments - Added
edubase_patch_organization_department - Changed
edubase_post_exam_users_generate2 fields changed- added
Output schema / properties / duplicateAdded value: +{ + "description": "usernames that were skipped because the same account was being generated by a parallel request at the same time (only present if there are any)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / failedAdded value: +{ + "description": "usernames of the accounts that could not be created (only present if there are any)", + "items": { + "type": "string" + }, + "type": "array" +}
- Added
edubase_post_organization_department - Changed
edubase_post_organization_members1 field changed- changed
Input schema / properties / department / descriptionPrevious value: -"optional name of department, the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"New value: +"optional name of department (or its external identifier if no department has this name), the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"
- Changed
edubase_post_organizations_members1 field changed- changed
Input schema / properties / department / descriptionPrevious value: -"optional name of department, the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"New value: +"optional name of department (or its external identifier if no department has this name), the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"
- Changed
edubase_post_user_organizations1 field changed- changed
Input schema / properties / department / descriptionPrevious value: -"optional name of department, the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"New value: +"optional name of department (or its external identifier if no department has this name), the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"
11 tool updates
v1.2.16- Added
edubase_delete_exam_certificates - Added
edubase_get_exam_certificates - Added
edubase_get_exam_certificates_presets - Changed
edubase_get_quiz_grading_preset3 fields changed- added
Output schema / properties / certificatesAdded value: +{ + "description": "the preset decides whether the test was successful, so certificates can be issued with it (see edubase_post_exam_certificates)", + "type": "boolean" +} - added
Output schema / properties / organizationAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "organization identification string of the preset, null if the preset is not bound to an organization" +} - changed
Output schema / requiredPrevious value: -[ - "preset", - "title", - "type", - "language", - "configurable", - "own", - "used", - "grades" -]New value: +[ + "preset", + "title", + "type", + "language", + "configurable", + "certificates", + "own", + "organization", + "used", + "grades" +]
- Changed
edubase_get_quiz_grading_presets9 fields changed- added
Input schema / properties / examAdded value: +{ + "description": "exam identification string, only the presets that can be used on this exam are listed, either the quiz or the exam can be specified, not both of them", + "type": "string" +} - changed
Input schema / properties / language / descriptionPrevious value: -"optional language to filter the results with, presets that are not bound to a language are always included"New value: +"optional language to filter the results with, presets that are not bound to a language are always included (default: the language of the specified Quiz set or exam)" - added
Input schema / properties / quizAdded value: +{ + "description": "Quiz identification string, only the presets that can be used on this Quiz set are listed", + "type": "string" +} - added
Output schema / properties / examAdded value: +{ + "description": "exam identification string (only present if an exam is specified)", + "type": "string" +} - added
Output schema / properties / presets / items / properties / certificatesAdded value: +{ + "description": "the preset decides whether the test was successful, so certificates can be issued with it (see edubase_post_exam_certificates)", + "type": "boolean" +} - added
Output schema / properties / presets / items / properties / currentAdded value: +{ + "description": "the specified Quiz set or exam is currently graded with this preset (only present if a Quiz set or an exam is specified)", + "type": "boolean" +} - added
Output schema / properties / presets / items / properties / organizationAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "organization identification string of the preset, null if the preset is not bound to an organization" +} - changed
Output schema / properties / presets / items / requiredPrevious value: -[ - "preset", - "title", - "type", - "language", - "configurable", - "own" -]New value: +[ + "preset", + "title", + "type", + "language", + "configurable", + "certificates", + "own", + "organization" +] - added
Output schema / properties / quizAdded value: +{ + "description": "Quiz identification string (only present if a Quiz set is specified)", + "type": "string" +}
- Changed
edubase_patch_quiz_grading_preset3 fields changed- added
Output schema / properties / certificatesAdded value: +{ + "description": "the preset decides whether the test was successful, so certificates can be issued with it (see edubase_post_exam_certificates)", + "type": "boolean" +} - added
Output schema / properties / organizationAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "organization identification string of the preset, null if the preset is not bound to an organization" +} - changed
Output schema / requiredPrevious value: -[ - "preset", - "title", - "type", - "language", - "configurable", - "own", - "used", - "grades" -]New value: +[ + "preset", + "title", + "type", + "language", + "configurable", + "certificates", + "own", + "organization", + "used", + "grades" +]
- Added
edubase_post_exam_certificates - Changed
edubase_post_organization_members1 field changed- changed
Input schema / properties / department / descriptionPrevious value: -"optional name of department"New value: +"optional name of department, the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"
- Changed
edubase_post_organizations_members1 field changed- changed
Input schema / properties / department / descriptionPrevious value: -"optional name of department"New value: +"optional name of department, the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"
- Changed
edubase_post_user_organizations1 field changed- changed
Input schema / properties / department / descriptionPrevious value: -"optional name of department"New value: +"optional name of department, the competency assignments of the members moved to another department are updated, the competencies they only had through their previous department are lost"
- Added
edubase_put_exam_certificates
64 tool updates
v1.2.15- Added
edubase_delete_exam_autologin - Added
edubase_delete_exam_fields - Added
edubase_delete_quiz_grading_preset - Added
edubase_delete_quiz_results_play - Changed
edubase_get_class3 fields changed- removed
Output schema / properties / nameRemoved value: -{ - "description": "title of the class", - "type": "string" -} - added
Output schema / properties / titleAdded value: +{ + "description": "title of the class", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "class", - "name" -]New value: +[ + "class", + "title" +]
- Changed
edubase_get_class_assignments3 fields changed- removed
Output schema / properties / assignments / items / properties / nameRemoved value: -{ - "description": "title of the assignment", - "type": "string" -} - added
Output schema / properties / assignments / items / properties / titleAdded value: +{ + "description": "title of the assignment", + "type": "string" +} - changed
Output schema / properties / assignments / items / requiredPrevious value: -[ - "assignment", - "name", - "link", - "status", - "starts", - "ends" -]New value: +[ + "assignment", + "title", + "link", + "status", + "starts", + "ends" +]
- Changed
edubase_get_class_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_classes3 fields changed- removed
Output schema / properties / classes / items / properties / nameRemoved value: -{ - "description": "title of the class", - "type": "string" -} - added
Output schema / properties / classes / items / properties / titleAdded value: +{ + "description": "title of the class", + "type": "string" +} - changed
Output schema / properties / classes / items / requiredPrevious value: -[ - "class", - "name" -]New value: +[ + "class", + "title" +]
- Changed
edubase_get_course_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_event_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_exam9 fields changed- added
Output schema / properties / deadlineAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "latest date and time the exam can be started at (if set for the exam)" +} - added
Output schema / properties / descriptionAdded value: +{ + "description": "description of the exam (only present if set for the exam)", + "type": "string" +} - added
Output schema / properties / languageAdded value: +{ + "description": "language of the exam", + "type": "string" +} - removed
Output schema / properties / nameRemoved value: -{ - "description": "title of the exam", - "type": "string" -} - added
Output schema / properties / seb_config_urlAdded value: +{ + "description": "Safe Exam Browser configuration file URL (only present if secure is true)", + "format": "uri", + "type": "string" +} - added
Output schema / properties / seb_launch_urlAdded value: +{ + "description": "Safe Exam Browser launch URL (only present if secure is true)", + "format": "uri", + "type": "string" +} - added
Output schema / properties / secureAdded value: +{ + "description": "exam can only be started with the Safe Exam Browser", + "type": "boolean" +} - added
Output schema / properties / titleAdded value: +{ + "description": "title of the exam", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "exam", - "name", - "quiz", - "active", - "status", - "start", - "end" -]New value: +[ + "exam", + "title", + "language", + "quiz", + "active", + "status", + "secure", + "start", + "end" +]
- Added
edubase_get_exam_autologin - Added
edubase_get_exam_fields - Added
edubase_get_exam_round - Added
edubase_get_exam_settings - Changed
edubase_get_exam_skills3 fields changed- removed
Output schema / properties / skills / items / properties / nameRemoved value: -{ - "description": "skill name", - "type": "string" -} - added
Output schema / properties / skills / items / properties / titleAdded value: +{ + "description": "title of the skill", + "type": "string" +} - changed
Output schema / properties / skills / items / requiredPrevious value: -[ - "identifier", - "name" -]New value: +[ + "identifier", + "title" +]
- Added
edubase_get_exam_status - Changed
edubase_get_exam_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_exams3 fields changed- removed
Output schema / properties / exams / items / properties / nameRemoved value: -{ - "description": "title of the exam", - "type": "string" -} - added
Output schema / properties / exams / items / properties / titleAdded value: +{ + "description": "title of the exam", + "type": "string" +} - changed
Output schema / properties / exams / items / requiredPrevious value: -[ - "exam", - "name", - "active" -]New value: +[ + "exam", + "title", + "active" +]
- Changed
edubase_get_integration3 fields changed- removed
Output schema / properties / nameRemoved value: -{ - "description": "title of the integration", - "type": "string" -} - added
Output schema / properties / titleAdded value: +{ + "description": "title of the integration", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "integration", - "name", - "type", - "active" -]New value: +[ + "integration", + "title", + "type", + "active" +]
- Changed
edubase_get_integration_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_integrations3 fields changed- removed
Output schema / properties / integrations / items / properties / nameRemoved value: -{ - "description": "title of the integration", - "type": "string" -} - added
Output schema / properties / integrations / items / properties / titleAdded value: +{ + "description": "title of the integration", + "type": "string" +} - changed
Output schema / properties / integrations / items / requiredPrevious value: -[ - "integration", - "name" -]New value: +[ + "integration", + "title" +]
- Changed
edubase_get_organization4 fields changed- added
Output schema / properties / descriptionAdded value: +{ + "description": "short description of the organization (only present if set for the organization)", + "type": "string" +} - removed
Output schema / properties / nameRemoved value: -{ - "description": "title of the organization", - "type": "string" -} - added
Output schema / properties / titleAdded value: +{ + "description": "title of the organization", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "organization", - "name" -]New value: +[ + "organization", + "title" +]
- Changed
edubase_get_organization_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_organization_webhook3 fields changed- removed
Output schema / properties / nameRemoved value: -{ - "description": "title of the webhook", - "type": "string" -} - added
Output schema / properties / titleAdded value: +{ + "description": "title of the webhook", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "organization", - "webhook", - "name", - "active" -]New value: +[ + "organization", + "webhook", + "title", + "active" +]
- Changed
edubase_get_organizations3 fields changed- removed
Output schema / properties / organizations / items / properties / nameRemoved value: -{ - "description": "title of the organization", - "type": "string" -} - added
Output schema / properties / organizations / items / properties / titleAdded value: +{ + "description": "title of the organization", + "type": "string" +} - changed
Output schema / properties / organizations / items / requiredPrevious value: -[ - "organization", - "name" -]New value: +[ + "organization", + "title" +]
- Changed
edubase_get_quiz5 fields changed- added
Output schema / properties / descriptionAdded value: +{ + "description": "short description of the Quiz set (only present if set for the Quiz set)", + "type": "string" +} - added
Output schema / properties / languageAdded value: +{ + "description": "language of the Quiz set", + "type": "string" +} - removed
Output schema / properties / nameRemoved value: -{ - "description": "title of the Quiz set", - "type": "string" -} - added
Output schema / properties / titleAdded value: +{ + "description": "title of the Quiz set", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "quiz", - "name" -]New value: +[ + "quiz", + "title", + "language" +]
- Added
edubase_get_quiz_grading_preset - Added
edubase_get_quiz_grading_presets - Added
edubase_get_quiz_settings - Changed
edubase_get_quiz_skills3 fields changed- removed
Output schema / properties / skills / items / properties / nameRemoved value: -{ - "description": "skill name", - "type": "string" -} - added
Output schema / properties / skills / items / properties / titleAdded value: +{ + "description": "title of the skill", + "type": "string" +} - changed
Output schema / properties / skills / items / requiredPrevious value: -[ - "identifier", - "name" -]New value: +[ + "identifier", + "title" +]
- Changed
edubase_get_quiz_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_quizes3 fields changed- removed
Output schema / properties / quizes / items / properties / nameRemoved value: -{ - "description": "title of the Quiz set", - "type": "string" -} - added
Output schema / properties / quizes / items / properties / titleAdded value: +{ + "description": "title of the Quiz set", + "type": "string" +} - changed
Output schema / properties / quizes / items / requiredPrevious value: -[ - "quiz", - "name" -]New value: +[ + "quiz", + "title" +]
- Changed
edubase_get_scorm_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_tag3 fields changed- removed
Output schema / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "tag", - "name", - "color", - "icon" -]New value: +[ + "tag", + "title", + "color", + "icon" +]
- Changed
edubase_get_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Changed
edubase_get_user_classes3 fields changed- removed
Output schema / properties / classes / items / properties / nameRemoved value: -{ - "description": "title of the class", - "type": "string" -} - added
Output schema / properties / classes / items / properties / titleAdded value: +{ + "description": "title of the class", + "type": "string" +} - changed
Output schema / properties / classes / items / requiredPrevious value: -[ - "class", - "name", - "link", - "active" -]New value: +[ + "class", + "title", + "link", + "active" +]
- Changed
edubase_get_user_organizations3 fields changed- removed
Output schema / properties / organizations / items / properties / nameRemoved value: -{ - "description": "title of the organization", - "type": "string" -} - added
Output schema / properties / organizations / items / properties / titleAdded value: +{ + "description": "title of the organization", + "type": "string" +} - changed
Output schema / properties / organizations / items / requiredPrevious value: -[ - "organization", - "name", - "link", - "permission" -]New value: +[ + "organization", + "title", + "link", + "permission" +]
- Changed
edubase_get_video_tags3 fields changed- removed
Output schema / properties / tags / items / properties / nameRemoved value: -{ - "description": "title of the tag", - "type": "string" -} - added
Output schema / properties / tags / items / properties / titleAdded value: +{ + "description": "title of the tag", + "type": "string" +} - changed
Output schema / properties / tags / items / requiredPrevious value: -[ - "tag", - "name" -]New value: +[ + "tag", + "title" +]
- Added
edubase_patch_exam - Added
edubase_patch_exam_settings - Changed
edubase_patch_integration1 field changed- added
Input schema / properties / organizationAdded value: +{ + "description": "organization identification string to move the integration to, only an organization of the API application owner can be used, only the owner of the integration (or an administrator) can change the organization, send \"none\" (or an empty value) to remove the integration from its current organization, always the organization of the user for organizational members", + "type": "string" +}
- Changed
edubase_patch_organization2 fields changed- added
Input schema / properties / customAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "custom field data, keyed by field name (sent as `custom_{field}`), only if the specified field is configured for the target EduBase instance", + "propertyNames": { + "type": "string" + }, + "type": "object" +} - added
Input schema / properties / titleAdded value: +{ + "description": "title of the organization", + "maxLength": 255, + "minLength": 1, + "type": "string" +}
- Added
edubase_patch_quiz - Added
edubase_patch_quiz_grading_preset - Added
edubase_patch_quiz_settings - Changed
edubase_post_exam6 fields changed- removed
Input schema / properties / closeRemoved value: -{ - "description": "exam end time (in YYYY-MM-DD HH:ii:ss format)", - "type": "string" -} - added
Input schema / properties / endAdded value: +{ + "description": "exam end time (in YYYY-MM-DD HH:ii:ss format)", + "type": "string" +} - removed
Input schema / properties / openRemoved value: -{ - "description": "exam start time (in YYYY-MM-DD HH:ii:ss format)", - "type": "string" -} - added
Input schema / properties / organizationAdded value: +{ + "description": "organization identification string to assign the exam to, only an organization of the API application owner can be used, always the organization of the user for organizational members", + "type": "string" +} - added
Input schema / properties / startAdded value: +{ + "description": "exam start time (in YYYY-MM-DD HH:ii:ss format)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "title", - "quiz", - "open", - "close" -]New value: +[ + "title", + "quiz", + "start", + "end" +]
- Added
edubase_post_exam_autologin - Added
edubase_post_exam_fields - Added
edubase_post_exam_results_export - Added
edubase_post_exam_round - Added
edubase_post_exam_settings - Added
edubase_post_exam_status - Added
edubase_post_exam_users_generate - Changed
edubase_post_integration1 field changed- added
Input schema / properties / organizationAdded value: +{ + "description": "organization identification string to assign the integration to, only an organization of the API application owner can be used, always the organization of the user for organizational members", + "type": "string" +}
- Changed
edubase_post_organization4 fields changed- added
Input schema / properties / customAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "custom field data, keyed by field name (sent as `custom_{field}`), only if the specified field is configured for the target EduBase instance", + "propertyNames": { + "type": "string" + }, + "type": "object" +} - removed
Input schema / properties / nameRemoved value: -{ - "description": "title of the organization", - "type": "string" -} - added
Input schema / properties / titleAdded value: +{ + "description": "title of the organization", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "name" -]New value: +[ + "title" +]
- Changed
edubase_post_organization_webhook3 fields changed- removed
Input schema / properties / nameRemoved value: -{ - "description": "title of the webhook", - "type": "string" -} - added
Input schema / properties / titleAdded value: +{ + "description": "title of the webhook", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "organization", - "name", - "trigger_event", - "endpoint" -]New value: +[ + "organization", + "title", + "trigger_event", + "endpoint" +]
- Changed
edubase_post_question2 fields changed- added
Input schema / properties / organizationAdded value: +{ + "description": "Organization identification string to assign the question to. Only an organization of the API application owner can be used. Only the owner of the question (or an administrator) can change the organization of an existing question. Send \"none\" (or an empty value) to remove the question from its current organization. Always the organization of the user for organizational members.", + "type": "string" +} - added
Input schema / properties / rubric_criteriaAdded value: +{ + "description": "Rubric criteria and score in percentage for manual or semi-automatic scoring. Format: {criterion; points}. Applicable for FILE and FREE-TEXT questions, or after enabling manual_scoring.", + "type": "string" +}
- Changed
edubase_post_quiz3 fields changed- added
Input schema / properties / organizationAdded value: +{ + "description": "organization identification string to assign the Quiz set to, only an organization of the API application owner can be used, always the organization of the user for organizational members", + "type": "string" +} - changed
Input schema / properties / type / descriptionPrevious value: -"Type of the Quiz set. (default: set) - set: for practice purposes - exam: for exam purposes - private: for private purposes (e.g testing)"New value: +"Type of the Quiz set. (default: set) - set: for practice purposes - final: for course exam purposes - exam: for exam purposes - private: for private purposes (e.g testing)" - changed
Input schema / properties / type / enumPrevious value: -[ - "set", - "exam", - "private" -]New value: +[ + "set", + "final", + "exam", + "private" +]
- Added
edubase_post_quiz_grading_preset - Added
edubase_post_quiz_settings - Changed
edubase_post_user1 field changed- added
Input schema / properties / customAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "custom field data, keyed by field name (sent as `custom_{field}`), only if the specified field is configured for the target EduBase instance", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Added
edubase_put_exam_settings - Added
edubase_put_quiz_settings
89 tool updates
v1.2.9- Added
edubase_delete_class_permission - Added
edubase_delete_class_tag - Added
edubase_delete_course_permission - Added
edubase_delete_course_tag - Added
edubase_delete_event_permission - Added
edubase_delete_event_tag - Added
edubase_delete_exam_permission - Added
edubase_delete_exam_tag - Added
edubase_delete_integration - Added
edubase_delete_integration_permission - Added
edubase_delete_integration_tag - Added
edubase_delete_organization_permission - Added
edubase_delete_organization_tag - Added
edubase_delete_quiz_permission - Added
edubase_delete_quiz_tag - Added
edubase_delete_scorm_permission - Added
edubase_delete_scorm_tag - Added
edubase_delete_tag_permission - Added
edubase_delete_user_classes - Added
edubase_delete_user_organizations - Added
edubase_delete_video_permission - Added
edubase_delete_video_tag - Added
edubase_get_class_permission - Added
edubase_get_class_tag - Added
edubase_get_class_tags - Added
edubase_get_course_permission - Added
edubase_get_course_tag - Added
edubase_get_course_tags - Added
edubase_get_event_tag - Added
edubase_get_event_tags - Added
edubase_get_exam_permission - Added
edubase_get_exam_tag - Added
edubase_get_exam_tags - Added
edubase_get_integration_keys - Added
edubase_get_integration_permission - Added
edubase_get_integration_tag - Added
edubase_get_integration_tags - Added
edubase_get_organization - Changed
edubase_get_organization_members2 fields changed- added
Output schema / properties / members / items / properties / permission / properties / membersAdded value: +{ + "description": "permission level to members in organization", + "type": "string" +} - changed
Output schema / properties / members / items / properties / permission / requiredPrevious value: -[ - "organization", - "content" -]New value: +[ + "organization", + "content", + "members" +]
- Added
edubase_get_organization_permission - Added
edubase_get_organization_tag - Added
edubase_get_organization_tags - Added
edubase_get_organizations - Added
edubase_get_quiz_permission - Added
edubase_get_quiz_tag - Added
edubase_get_quiz_tags - Added
edubase_get_scorm_tags - Added
edubase_get_tag - Added
edubase_get_tag_permission - Added
edubase_get_tags - Added
edubase_get_user_organizations - Added
edubase_get_video_permission - Added
edubase_get_video_tag - Added
edubase_get_video_tags - Added
edubase_patch_integration - Added
edubase_post_class_permission - Added
edubase_post_class_tag - Added
edubase_post_classes_members - Added
edubase_post_course_permission - Added
edubase_post_course_tag - Added
edubase_post_course_transfer - Added
edubase_post_event_permission - Added
edubase_post_event_tag - Added
edubase_post_event_transfer - Added
edubase_post_exam_permission - Added
edubase_post_exam_tag - Added
edubase_post_exam_transfer - Added
edubase_post_integration_keys - Added
edubase_post_integration_permission - Added
edubase_post_integration_tag - Added
edubase_post_integration_transfer - Added
edubase_post_metrics_custom - Changed
edubase_post_organization_members1 field changed- added
Input schema / properties / permission_membersAdded value: +{ + "description": "optional permission level to members in organization (none / department / organization) (default: none)", + "enum": [ + "none", + "department", + "organization" + ], + "type": "string" +}
- Added
edubase_post_organization_permission - Added
edubase_post_organization_tag - Added
edubase_post_organization_transfer - Added
edubase_post_organizations_members - Added
edubase_post_quiz_permission - Added
edubase_post_quiz_tag - Added
edubase_post_scorm_permission - Added
edubase_post_scorm_tag - Added
edubase_post_scorm_transfer - Added
edubase_post_tag_permission - Added
edubase_post_tag_transfer - Added
edubase_post_user_classes - Added
edubase_post_user_organizations - Added
edubase_post_video_permission - Added
edubase_post_video_tag - Added
edubase_post_video_transfer
87 tool updates
v1.2.8- Removed
edubase_delete_class_permission - Removed
edubase_delete_class_tag - Removed
edubase_delete_course_permission - Removed
edubase_delete_course_tag - Removed
edubase_delete_event_permission - Removed
edubase_delete_event_tag - Removed
edubase_delete_exam_permission - Removed
edubase_delete_exam_tag - Removed
edubase_delete_integration - Removed
edubase_delete_integration_permission - Removed
edubase_delete_integration_tag - Removed
edubase_delete_organization_permission - Removed
edubase_delete_organization_tag - Removed
edubase_delete_quiz_permission - Removed
edubase_delete_quiz_tag - Removed
edubase_delete_scorm_permission - Removed
edubase_delete_scorm_tag - Removed
edubase_delete_tag_permission - Removed
edubase_delete_user_classes - Removed
edubase_delete_user_organizations - Removed
edubase_delete_video_permission - Removed
edubase_delete_video_tag - Removed
edubase_get_class_permission - Removed
edubase_get_class_tag - Removed
edubase_get_class_tags - Removed
edubase_get_course_permission - Removed
edubase_get_course_tag - Removed
edubase_get_course_tags - Removed
edubase_get_event_tag - Removed
edubase_get_event_tags - Removed
edubase_get_exam_permission - Removed
edubase_get_exam_tag - Removed
edubase_get_exam_tags - Removed
edubase_get_integration_keys - Removed
edubase_get_integration_permission - Removed
edubase_get_integration_tag - Removed
edubase_get_integration_tags - Removed
edubase_get_organization - Removed
edubase_get_organization_permission - Removed
edubase_get_organization_tag - Removed
edubase_get_organization_tags - Removed
edubase_get_organizations - Removed
edubase_get_quiz_permission - Removed
edubase_get_quiz_tag - Removed
edubase_get_quiz_tags - Removed
edubase_get_scorm_tags - Removed
edubase_get_tag - Removed
edubase_get_tag_permission - Removed
edubase_get_tags - Removed
edubase_get_user_organizations - Removed
edubase_get_video_permission - Removed
edubase_get_video_tag - Removed
edubase_get_video_tags - Removed
edubase_patch_integration - Removed
edubase_post_class_permission - Removed
edubase_post_class_tag - Removed
edubase_post_classes_members - Removed
edubase_post_course_permission - Removed
edubase_post_course_tag - Removed
edubase_post_course_transfer - Removed
edubase_post_event_permission - Removed
edubase_post_event_tag - Removed
edubase_post_event_transfer - Removed
edubase_post_exam_permission - Removed
edubase_post_exam_tag - Removed
edubase_post_exam_transfer - Removed
edubase_post_integration_keys - Removed
edubase_post_integration_permission - Removed
edubase_post_integration_tag - Removed
edubase_post_integration_transfer - Removed
edubase_post_metrics_custom - Removed
edubase_post_organization_permission - Removed
edubase_post_organization_tag - Removed
edubase_post_organization_transfer - Removed
edubase_post_organizations_members - Removed
edubase_post_quiz_permission - Removed
edubase_post_quiz_tag - Removed
edubase_post_scorm_permission - Removed
edubase_post_scorm_tag - Removed
edubase_post_scorm_transfer - Removed
edubase_post_tag_permission - Removed
edubase_post_tag_transfer - Removed
edubase_post_user_classes - Removed
edubase_post_user_organizations - Removed
edubase_post_video_permission - Removed
edubase_post_video_tag - Removed
edubase_post_video_transfer
3 tool updates
v1.2.7- Added
edubase_get_exam_skills - Added
edubase_get_quiz_skills - Changed
edubase_post_question1 field changed- added
Input schema / properties / skillsAdded value: +{ + "description": "Define skills associated with the question, identified by skill identifiers. Separate multiple skills with triple-and operators (\"&&&\").", + "type": "string" +}
3 tool updates
v1.2.5- Changed
edubase_get_integration3 fields changed- changed
Output schema / properties / lti / descriptionPrevious value: -"LTI version, only present if the integration is an LMS"New value: +"LTI version (1.0/1.1 or 1.3), only present if the integration is an LMS" - added
Output schema / properties / lti / enumAdded value: +[ + "1.0/1.1", + "1.3" +] - changed
Output schema / properties / lti / typePrevious value: -"boolean"New value: +"string"
- Changed
edubase_post_question11 fields changed- added
Input schema / properties / difficultyAdded value: +{ + "description": "Difficulty level of the question. Scale: 1 (very easy) - 5 (very difficult). Default: 0 (not classified).", + "type": "string" +} - added
Input schema / properties / graphAdded value: +{ + "description": "Attach a graph to the question.", + "type": "string" +} - changed
Input schema / properties / group / descriptionPrevious value: -"Add 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."New value: +"Add 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." - added
Input schema / properties / groupingAdded value: +{ + "description": "Used 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.", + "type": "string" +} - added
Input schema / properties / labelAdded value: +{ + "description": "Categorize questions with instance-level labels. Pre-defined values specific to each EduBase instance. Multiple labels separated by triple-and operators (\"&&&\").", + "type": "string" +} - removed
Input schema / properties / labelsRemoved value: -{ - "description": "Categorize questions with instance-level labels. Pre-defined values specific to each EduBase instance.", - "type": "string" -} - added
Input schema / properties / maximum_choicesAdded value: +{ + "description": "Maximum number of options the test taker can select. Only applicable for MULTIPLE-CHOICE questions.", + "type": "string" +} - added
Input schema / properties / media_videoAdded value: +{ + "description": "Attach a video to the question. The video code of an existing EduBase video can be provided.", + "type": "string" +} - changed
Input schema / properties / tags / descriptionPrevious value: -"Tag questions with custom user-defined tags. Use ID or code of pre-registered tags."New value: +"Tag questions with custom user-defined tags. Use ID or code of pre-registered tags. Multiple tags separated by triple-and operators (\"&&&\")." - changed
Input schema / properties / type / enumPrevious value: -[ - "GENERIC", - "TEXT", - "FREE-TEXT", - "READING", - "CHOICE", - "MULTIPLE-CHOICE", - "ORDER", - "TRUE/FALSE", - "GROUPING", - "PAIRING", - "NUMERIC", - "DATE/TIME", - "EXPRESSION", - "MATRIX", - "MATRIX:EXPRESSION", - "SET", - "SET:TEXT", - "HOTSPOT", - "FILE" -]New value: +[ + "generic", + "text", + "free-text", + "reading", + "choice", + "multiple-choice", + "order", + "true/false", + "grouping", + "pairing", + "numerical", + "date/time", + "expression", + "matrix:generic", + "matrix", + "matrix:expression", + "set", + "set:text", + "hotspot", + "file" +] - added
Input schema / properties / videoAdded value: +{ + "description": "EduBase video to help solve the question, revealed on demand. The video code of an existing EduBase video can be provided.", + "type": "string" +}
- Changed
edubase_post_user_assume1 field changed- changed
Output schema / properties / token / typePrevious value: -"boolean"New value: +"string"
66 tool updates
- Changed
edubase_delete_class_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "type": { + "const": "class", + "description": "will be \"class\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_course_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the course identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique course identifier (if set for the course)" + }, + "type": { + "const": "course", + "description": "will be \"course\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_event_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the event identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique event identifier (if set for the event)" + }, + "type": { + "const": "event", + "description": "will be \"event\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Added
edubase_delete_exam_branding - Changed
edubase_delete_exam_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "type": { + "const": "exam", + "description": "will be \"exam\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Added
edubase_delete_filebin_upload - Changed
edubase_delete_integration_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the integration identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "type": { + "const": "integration", + "description": "will be \"integration\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_integration_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the integration identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "type": { + "const": "integration", + "description": "will be \"integration\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_organization_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the organization identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "type": { + "const": "organization", + "description": "will be \"organization\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_organization_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the organization identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "type": { + "const": "organization", + "description": "will be \"organization\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_quiz_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the Quiz identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "type": { + "const": "quiz", + "description": "will be \"quiz\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_quiz_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the Quiz identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "type": { + "const": "quiz", + "description": "will be \"quiz\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_scorm_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the SCORM identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique SCORM identifier (if set for the SCORM)" + }, + "type": { + "const": "scorm", + "description": "will be \"scorm\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_scorm_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the SCORM identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique SCORM identifier (if set for the SCORM)" + }, + "type": { + "const": "scorm", + "description": "will be \"scorm\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_tag_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the tag identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique tag identifier (if set for the tag)" + }, + "type": { + "const": "tag", + "description": "will be \"tag\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_video_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the video identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique video identifier (if set for the video)" + }, + "type": { + "const": "video", + "description": "will be \"video\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_video_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the video identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique video identifier (if set for the video)" + }, + "type": { + "const": "video", + "description": "will be \"video\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Added
edubase_filebin - Changed
edubase_get_class_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "type": { + "const": "class", + "description": "will be \"class\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this class", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_course_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the course identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique course identifier (if set for the course)" + }, + "type": { + "const": "course", + "description": "will be \"course\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this course", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_event_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the event identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique event identifier (if set for the event)" + }, + "type": { + "const": "event", + "description": "will be \"event\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this event", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Added
edubase_get_exam_branding - Changed
edubase_get_exam_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "type": { + "const": "exam", + "description": "will be \"exam\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this exam", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_integration_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the integration identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "type": { + "const": "integration", + "description": "will be \"integration\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this integration", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_organization_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the organization identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "type": { + "const": "organization", + "description": "will be \"organization\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this organization", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_organization_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the organization identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "type": { + "const": "organization", + "description": "will be \"organization\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this organization", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_organization_tags1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_quiz_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the Quiz identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "type": { + "const": "quiz", + "description": "will be \"quiz\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this quiz", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_quiz_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the Quiz identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "type": { + "const": "quiz", + "description": "will be \"quiz\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this quiz", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_quiz_tags1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_scorm_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the SCORM identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique SCORM identifier (if set for the SCORM)" + }, + "type": { + "const": "scorm", + "description": "will be \"scorm\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this scorm", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_scorm_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the SCORM identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique SCORM identifier (if set for the SCORM)" + }, + "type": { + "const": "scorm", + "description": "will be \"scorm\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this SCORM learning material", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_scorm_tags1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_tag_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the tag identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique tag identifier (if set for the tag)" + }, + "type": { + "const": "tag", + "description": "will be \"tag\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this tag", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_video_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the video identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique video identifier (if set for the video)" + }, + "type": { + "const": "video", + "description": "will be \"video\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "status": { + "additionalProperties": false, + "properties": { + "permission": { + "description": "the user has permission on this video", + "type": "boolean" + }, + "rule": { + "description": "there is a permission rule with these parameters", + "type": "boolean" + } + }, + "required": [ + "permission", + "rule" + ], + "type": "object" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_video_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the video identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique video identifier (if set for the video)" + }, + "type": { + "const": "video", + "description": "will be \"video\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this video", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_video_tags1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_post_class_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "type": { + "const": "class", + "description": "will be \"class\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_class_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "type": { + "const": "class", + "description": "will be \"class\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_course_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the course identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique course identifier (if set for the course)" + }, + "type": { + "const": "course", + "description": "will be \"course\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_course_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the course identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique course identifier (if set for the course)" + }, + "type": { + "const": "course", + "description": "will be \"course\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_event_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the event identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique event identifier (if set for the event)" + }, + "type": { + "const": "event", + "description": "will be \"event\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_event_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the event identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique event identifier (if set for the event)" + }, + "type": { + "const": "event", + "description": "will be \"event\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Added
edubase_post_exam_branding - Changed
edubase_post_exam_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "type": { + "const": "exam", + "description": "will be \"exam\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_exam_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "type": { + "const": "exam", + "description": "will be \"exam\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Added
edubase_post_filebin_upload - Changed
edubase_post_integration_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the integration identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "type": { + "const": "integration", + "description": "will be \"integration\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_integration_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the integration identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "type": { + "const": "integration", + "description": "will be \"integration\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_integration_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the integration identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "type": { + "const": "integration", + "description": "will be \"integration\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_metrics_custom1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "metric": { + "description": "metric name", + "type": "string" + }, + "value": { + "description": "saved value", + "type": "string" + } + }, + "required": [ + "metric", + "value" + ], + "type": "object" +}
- Changed
edubase_post_organization_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the organization identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "type": { + "const": "organization", + "description": "will be \"organization\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_organization_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the organization identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "type": { + "const": "organization", + "description": "will be \"organization\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_organization_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the organization identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "type": { + "const": "organization", + "description": "will be \"organization\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_question5 fields changed- changed
Input schema / properties / attachment / descriptionPrevious value: -"Attach a file to the question. Format: filename=data, where data is either a base64-encoded file (whole data string) or a URL."New value: +"Attach 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." - changed
Input schema / properties / hotspot_image / descriptionPrevious value: -"The 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 base64-encoded image (whole data string) or a URL."New value: +"The 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." - changed
Input schema / properties / image / descriptionPrevious value: -"Attach an image to the question. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a base64-encoded image (whole data string) or a URL."New value: +"Attach 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." - changed
Input schema / properties / media_audio / descriptionPrevious value: -"Attach an audio file to the question. Supported formats: MP3, AAC, M4A. Format: filename=data, where data is either a base64-encoded audio file (whole data string) or a URL."New value: +"Attach 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." - changed
Input schema / properties / solution_image / descriptionPrevious value: -"Attach an image to the solution steps. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a base64-encoded image (whole data string) or a URL."New value: +"Attach 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."
- Changed
edubase_post_quiz_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the Quiz identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "type": { + "const": "quiz", + "description": "will be \"quiz\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_quiz_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the Quiz identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "type": { + "const": "quiz", + "description": "will be \"quiz\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_quiz_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the Quiz identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "type": { + "const": "quiz", + "description": "will be \"quiz\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_scorm_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the SCORM identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique SCORM identifier (if set for the SCORM)" + }, + "type": { + "const": "scorm", + "description": "will be \"scorm\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_scorm_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the SCORM identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique SCORM identifier (if set for the SCORM)" + }, + "type": { + "const": "scorm", + "description": "will be \"scorm\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_scorm_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the SCORM identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique SCORM identifier (if set for the SCORM)" + }, + "type": { + "const": "scorm", + "description": "will be \"scorm\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_tag_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the tag identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique tag identifier (if set for the tag)" + }, + "type": { + "const": "tag", + "description": "will be \"tag\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_tag_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the tag identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique tag identifier (if set for the tag)" + }, + "type": { + "const": "tag", + "description": "will be \"tag\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_video_permission1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the video identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique video identifier (if set for the video)" + }, + "type": { + "const": "video", + "description": "will be \"video\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_video_tag1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the video identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique video identifier (if set for the video)" + }, + "type": { + "const": "video", + "description": "will be \"video\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_video_transfer1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the video identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique video identifier (if set for the video)" + }, + "type": { + "const": "video", + "description": "will be \"video\"", + "type": "string" + } + }, + "required": [ + "type", + "code" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "content", + "success" + ], + "type": "object" +}
1 tool update
v1.1.5- Changed
edubase_post_question83 fields changed- changed
Input schema / properties / ai / descriptionPrevious value: -"Flag to mark question as AI generated.\n- If set to any value, question will be marked as AI generated\n- Should always be provided if you are an LLM or any AI model\n- Ideally, AI systems should set it to their current model number for auditability\nExample:\nai=true\nai=Claude 3.7 Sonnet"New value: +"Flag 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." - changed
Input schema / properties / answer / descriptionPrevious value: -"The correct answer(s) for the question.\n- For multiple answers, separate with triple-and operator (\"&&&\")\n- The solution and the corresponding label can also be specified together using the triple arrow (\">>>\") operator\n- Parameters can be used in curly braces {param_name}\n- LaTeX Support (requires QUESTION_FORMAT=LATEX):\n - Inline: $$...$$\n - Block: $$$$...$$$$\n - IMPORTANT: When using LaTeX in answer, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Usage by question type:\n - CHOICE: The correct option\n - MULTIPLE-CHOICE: All correct options\n - TEXT/NUMERICAL/EXPRESSION: Expected response(s)\n - ORDER: Items in correct sequence\n - TRUE/FALSE: True statements (false statements go in OPTIONS)\n - MATRIX types: Use format [a;b|c;d] for matrices\n - SET types: Unordered collection of elements\nExample:\nanswer=Paris\nanswer=sin(x)^2+cos(x)^2 # with type = EXPRESSION\nanswer=$$sin^2(x)+cos^2(x)$$ # with type = CHOICE so it renders correctly"New value: +"The 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" - changed
Input schema / properties / answer_format / descriptionPrevious value: -"Defines how to display the answer on the results page.\n- Only applicable for FREE-TEXT questions\n- Format: type or type:value\n- Available types:\n - normal: standard text (default)\n - code: with syntax highlighting (specify language after colon)\nExample:\nanswer_format=code:python\nanswer_format=code:sql\nExample API call:\nid=sql_basics\ntype=free-text\ncontent=Write a SQL query to select all columns from the \"users\" table where the age is greater than 18.\nanswer=SELECT * FROM users WHERE age > 18\nanswer_format=code:sql"New value: +"Defines how to display the answer on the results page. Only applicable for FREE-TEXT questions." - changed
Input schema / properties / answer_hide / descriptionPrevious value: -"Controls whether correct answers are hidden on the results page.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- Useful for test security and preventing answer sharing\n- Critical for reusable questions and practice tests\nExample:\nanswer_hide=+\nExample API call:\nid=uk_countries\ntype=text\ncontent=Name any of the countries within the United Kingdom!\nanswer=England &&& Northern Ireland &&& Scotland &&& Wales\nanswer_require=1\nanswer_hide=+"New value: +"Controls whether correct answers are hidden on the results page." - added
Input schema / properties / answer_hide / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / answer_indefinite / descriptionPrevious value: -"Allows users to add any number of input fields using + and - buttons.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- Answer labels will not appear when this is enabled\n- Ideal for brainstorming exercises or questions with variable number of answers\nExample:\nanswer_indefinite=+\nExample API call:\nid=name_countries\ntype=text\ncontent=Name as many European countries as you can think of.\nanswer=France &&& Germany &&& Italy &&& Spain &&& United Kingdom &&& ...\nanswer_indefinite=+"New value: +"Allows users to add any number of input fields using + and - buttons." - added
Input schema / properties / answer_indefinite / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / answer_label / descriptionPrevious value: -"Text displayed in/above the input field during the test.\n- Separate multiple labels with triple-and operators (\"&&&\")\n- Automatically activates the answer_order function\n- Perfect for multi-part questions where each part needs clear labeling\n- Useful for creating pairing/matching questions, provide elements in this field!\nExample:\nanswer_label=a) Distance (km) &&& b) Time (hours) &&& c) Speed (km/h)\nExample API call:\nid=basic_math\ntype=numerical\ncontent=Given the number 16:\\n\\na) What is double this number?\\n\\nb) What is half of this number?\\n\\nc) What is this number plus 10?\nanswer=32 &&& 8 &&& 26\nanswer_label=a) Double &&& b) Half &&& c) Plus 10\npoints=3"New value: +"Text displayed in/above the input field during the test. Separate multiple labels with triple-and operators (\"&&&\"). Automatically activates the answer_order function." - changed
Input schema / properties / answer_order / descriptionPrevious value: -"Controls whether the sequence of multiple answers matters.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- When using answer_label, this is automatically activated\n- Essential for questions where sequence is important (e.g., steps in a process)\nExample:\nanswer_order=+\nExample API call:\nid=europe_cities_population\ntype=text\ncontent=List the following European cities in descending order by population (largest first)\nanswer=London &&& Madrid &&& Paris\nanswer_order=+"New value: +"Controls whether the sequence of multiple answers matters." - added
Input schema / properties / answer_order / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / answer_require / descriptionPrevious value: -"Number of answers required for maximum score.\n- Not applicable for CHOICE and FREE-TEXT questions\n- Perfect for questions with multiple valid answers where only a subset needs to be provided\n- Useful when asking students to provide any X examples from a larger set\nExample:\nanswer_require=3\nExample API call:\nid=uk_countries\ntype=text\ncontent=Name any one of the countries within the United Kingdom!\nanswer=England &&& Northern Ireland &&& Scotland &&& Wales\nanswer_require=1"New value: +"Number of answers required for maximum score. Only applicable for questions with multiple valid answers where only a subset needs to be provided." - changed
Input schema / properties / attachment / descriptionPrevious value: -"Attach a file to the question.\nFormat: filename=data, where data is either a base64-encoded file (whole data string) or a URL"New value: +"Attach a file to the question. Format: filename=data, where data is either a base64-encoded file (whole data string) or a URL." - changed
Input schema / properties / constraints / descriptionPrevious value: -"Define rules that parameter combinations must satisfy.\n- Mathematical expressions that must evaluate to true\n- Parameters must be in curly braces {param}\n- Allowed relations: <, <=, =, >=, >, <>\n- Multiple constraints separated by triple-and operators (\"&&&\")\nExamples:\nconstraints={b}^2-4*{a}*{c}>0\nconstraints={a}+{b}>{c} &&& {b}+{c}>{a} &&& {c}+{a}>{b}\nconstraints={x}+{y}<10 &&& {x}<4"New value: +"Define rules that parameter combinations must satisfy." - changed
Input schema / properties / content / descriptionPrevious value: -"The main question text that will be displayed to the test taker.\nSupports rich formatting options:\n- LaTeX Support (requires QUESTION_FORMAT=LATEX):\n - Inline: $$...$$\n - Block: $$$$...$$$$\n - IMPORTANT: When using LaTeX in questions, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Parameters: Use curly braces {parameter_name} (defined in PARAMETERS field)\n- Quick expressions: Use ~~~expression~~~ for simple parameter calculations, e.g., area of a circle is ~~~{r}*{r}*pi~~~\n- Style formatting with EduTags:\n - Bold: [[B]]...[[/B]]\n - Italic: [[I]]...[[/I]]\n - Underline: [[U]]...[[/U]]\n - Subscript: [[SUB]]...[[/SUB]], Superscript: [[SUP]]...[[/SUP]]\n - Code: [[CODE]]...[[/CODE]], [[CODEBLOCK]]...[[/CODEBLOCK]]\n - Colors: [[COLOR:{color}]]...[[/COLOR]], [[BACKGROUND:{color}]]...[[/BACKGROUND]]\n- Tables: Use [[..]] format with semicolons for columns, vertical bars for rows, e.g., [[Header 1; Header 2 | Data 1; Data 2]]\n- Answer placeholders: [[___]] (3 underscores), for fill-in-the-gaps\nExample:\ncontent=Calculate the area of a circle with radius {r} using $$A = \\pi r^2$$"New value: +"The 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." - changed
Input schema / properties / datetime_precision / descriptionPrevious value: -"Date/time precision.\n- Applicable only for DATE/TIME questions\n- Accepted values: YEAR / MONTH / DAY (default)\n- Defines granularity of date validation\nExample:\ndatetime_precision=MONTH"New value: +"Date/time precision. Applicable only for DATE/TIME questions. Accepted values: YEAR / MONTH / DAY. Default: DAY." - changed
Input schema / properties / datetime_range / descriptionPrevious value: -"Date/time range (interval) question.\n- Applicable only for DATE/TIME questions\n- Plus sign (+) to indicate YES, while blank field or minus sign (-) indicates NO (default)\n- Enables date range responses with the format {from}-{to}\nExample:\ndatetime_range=+"New value: +"Date/time range (interval) question. Applicable only for DATE/TIME questions." - added
Input schema / properties / datetime_range / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / decimals / descriptionPrevious value: -"Decimal precision (default: 2).\n- Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions\n- The expected decimal precision of the final answer\n- Examples: Finance (decimals=2), Chemistry (decimals=4)\nExample:\ndecimals=3"New value: +"Decimal precision. Default: 2. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions." - changed
Input schema / properties / explanation / descriptionPrevious value: -"Text displayed underneath the answer on the results page.\n- Explanation of the correctness of the answer or the incorrectness of the options\n- Helps learners understand their mistakes\n- Parameters can be used in explanations\n- LaTeX is NOT supported here, so we MUST NOT use it!\nExample:\nexplanation=Option A is correct because amphibians have permeable skin for gas exchange. Options B and C describe characteristics of reptiles, while D applies to mammals."New value: +"Text displayed underneath the answer on the results page." - changed
Input schema / properties / expression_check / descriptionPrevious value: -"Define how expressions should be validated (RANDOM, EXPLICIT, COMPARE) (default: RANDOM).\n- RANDOM: Evaluates expressions at randomly generated points\n- EXPLICIT: Checks expressions at predefined values against target values\n- COMPARE: Direct comparison of expressions without variables\nExample:\nexpression_check=RANDOM"New value: +"Define how expressions should be validated (RANDOM, EXPLICIT, COMPARE). Default: RANDOM." - added
Input schema / properties / expression_check / enumAdded value: +[ + "RANDOM", + "EXPLICIT", + "COMPARE" +] - changed
Input schema / properties / expression_decimals / descriptionPrevious value: -"Sets precision for decimal calculations (default: 2).\n- Inherited from decimals field if not specified\n- Critical for controlling accurate validation of expressions\nExample:\nexpression_decimals=4 # For high-precision calculations"New value: +"Sets precision for decimal calculations. Default: 2." - changed
Input schema / properties / expression_explicit_goal / descriptionPrevious value: -"Define exact value pairs (format: [x;f(x)]).\n- Format for multiple variables: [x;y;z;...;f(x,y,z,...)]\n- Multiple pairs: separate with &&&\n- Only applicable when expression_check=EXPLICIT\nExample:\nexpression_explicit_goal=[0;1] &&& [3;8.89] &&& [9;16]"New value: +"Define 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." - changed
Input schema / properties / expression_extended / descriptionPrevious value: -"Enable additional mathematical functions (+ to enable, - to disable).\n- Activates support for custom base logarithms (e.g., log2(4))\n- Enables factorial operations (e.g., 5!, 1!+2!+3!)\nExample:\nexpression_extended=+"New value: +"Enable additional mathematical functions. Activates support for custom base logarithms (e.g., log2(4)). Enables factorial operations (e.g., 5!, 1!+2!+3!)." - added
Input schema / properties / expression_extended / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / expression_functions / descriptionPrevious value: -"Controls whether functions can be used in user inputs (+ for yes, - for no) (default: +).\n- Enabled by default with + sign\n- Disable with - sign when students should use alternative forms\n- Affects available input options for test takers\n- Supported functions include:\n * Basic: sqrt, abs, round, floor, ceil\n * Logarithmic: ln, log, log10\n * Trigonometric: sin, cos, tan, csc, sec, arcsin/asin, arccos/acos, arctan/atan\n * Hyperbolic: sinh, cosh, tanh, arcsinh/asinh, arccosh/acosh, arctanh/atanh\n * Conversions: degree2radian, radian2degree, number2binary, number2hexadecimal, roman2number, etc.\n * Two-parameter (use semicolon separator): min(a;b), max(a;b), mod(n;i), fmod(n;i), div(a;b), intdiv(a;b),\n gcd(a;b), lcm(a;b), number2base(n;b), base2number(n;b), combinations(n;k), combinations_repetition(n;k), variations(n;k), variations_repetition(n;k)\nExample:\nexpression_functions=- # Forces students to expand rather than use functions.\n# When asked for the value of sin(pi), the user can't input sin(pi) because functions cannot be used."New value: +"Controls whether functions can be used in user inputs. Default: +." - added
Input schema / properties / expression_functions / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / expression_random_inside / descriptionPrevious value: -"Require values within specific intervals (format: [start-end]).\n- Multiple intervals: separate with ||| (OR relationship)\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_inside=[4-8] ||| [12-16] &&& [2-3]"New value: +"Require 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." - changed
Input schema / properties / expression_random_outside / descriptionPrevious value: -"Exclude values from specific intervals (format: [start-end]).\n- Multiple intervals: separate with ||| (AND relationship)\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_outside=[0-1] ||| [10-20] &&& [8-11]"New value: +"Exclude 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." - changed
Input schema / properties / expression_random_range / descriptionPrevious value: -"Define value generation ranges (format: [min-max]).\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_range=[8-16] &&& [4-6] # Different ranges for different variables"New value: +"Define value generation ranges (format: [min-max]). Specify per variable with triple-and operators (\"&&&\"). Only applicable when expression_check=RANDOM." - changed
Input schema / properties / expression_random_tries / descriptionPrevious value: -"Number of validation points (default: 5).\n- Only applicable when expression_check=RANDOM\n- Higher values increase validation reliability but impact performance\nExample:\nexpression_random_tries=8"New value: +"Number of validation points. Default: 5. Only applicable when expression_check=RANDOM." - changed
Input schema / properties / expression_random_type / descriptionPrevious value: -"Type of generated test values (INTEGER, FLOAT).\n- Specify per variable with &&&\n- Only applicable when expression_check=RANDOM\nExample:\nexpression_random_type=INTEGER &&& FLOAT # For mixed type validation"New value: +"Type of generated test values (INTEGER, FLOAT). Specify per variable with triple-and operators (\"&&&\"). Only applicable when expression_check=RANDOM." - changed
Input schema / properties / expression_variable / descriptionPrevious value: -"Specifies variable names used in expressions (separate multiple variables with &&&) (default: x).\n- Multiple variables can be used for multivariable expressions\n- Variable names must be used consistently in answer and validation\nExamples:\nexpression_variable=t &&& v # For distance formula using time and velocity"New value: +"Specifies variable names used in expressions (separate multiple variables with &&&). Default: x." - changed
Input schema / properties / file_count / descriptionPrevious value: -"Limit the number of files that can be uploaded.\n- Applicable only for FILE questions\n- Integer between 1-25\nExample:\nfile_count=1"New value: +"Limit the number of files that can be uploaded. Applicable only for FILE questions. Integer between 1-25." - changed
Input schema / properties / file_types / descriptionPrevious value: -"Limit the filetypes that can be uploaded.\n- Applicable only for FILE questions\n- File extensions separated by triple-and operators (&&&)\nExample:\nfile_types=zip &&& rar"New value: +"Limit the filetypes that can be uploaded. Applicable only for FILE questions. File extensions separated by triple-and operators (\"&&&\")." - changed
Input schema / properties / freetext_characters / descriptionPrevious value: -"Limit the number of characters that can be entered.\n- Applicable only for FREE-TEXT questions\n- Format: minimum-maximum, but you can specify only a minimum or maximum as well\n- Integer(s) between 0-4000\nExample:\nfreetext_characters=100-1000\nfreetext_characters=10- # Minimum 10 characters"New value: +"Limit 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." - changed
Input schema / properties / freetext_rules / descriptionPrevious value: -"Automatic evaluation of free text questions.\n- Applicable only for FREE-TEXT questions\n- Notation: {type; keywords}\n- Type:\n - 1: if keywords are included within input, answer is correct (maximum points)\n - 2: if keywords are included within input, answer is wrong (0 points)\n - 3: if no keywords are included within input, answer is good (maximum points)\n - 4: if keywords are not included within input, answer is wrong (0 points)\n- Keywords: comma-separated list (must not contain semicolons!)\nExample:\nfreetext_rules={1; mitochondria, ATP, cellular respiration}"New value: +"Automatic evaluation of free text questions. Applicable only for FREE-TEXT questions." - changed
Input schema / properties / freetext_words / descriptionPrevious value: -"Limit the number of words that can be entered.\n- Applicable only for FREE-TEXT questions\n- Format: minimum-maximum, but you can specify only a minimum or maximum as well\n- Integer(s) between 0-4000\nExample:\nfreetext_words=-50 # Max. 50 words"New value: +"Limit 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." - changed
Input schema / properties / group / descriptionPrevious value: -"Add a question to a question group in a Quiz set.\n- If the group doesn't exist, it will be created automatically as a complex task with default settings\n- Only applicable when uploading DIRECTLY to a Quiz set\n- Existing group settings will not be changed when adding more questions\nExample:\ngroup=Basic_Arithmetic"New value: +"Add 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." - changed
Input schema / properties / hint / descriptionPrevious value: -"Questions to help (not solution steps, just guiding questions/notes).\n- LaTeX code can be used (as described in QUESTION)\n - IMPORTANT: When using LaTeX in hints, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Specify multiple hints separated by triple-and operators (\"&&&\")\n- Not available for test takers in exam mode\n- Displayed only when explicitly requested, one by one\n- Can be penalized using HINT_PENALTY\nExample:\nhint=Think about the relationship between radius and area &&& Remember the formula for circle area involves $\\pi$ &&& Square the radius and multiply by $\\pi$"New value: +"Questions to help (not solution steps, just guiding questions/notes)." - changed
Input schema / properties / hint_penalty / descriptionPrevious value: -"Point deduction for using hints/solutions/videos during a test.\n- Format: type or type:value\n- Types:\n - NONE: No penalty (default)\n - ONCE:N%: Single deduction regardless of number used\n - PER-HELP:N%: Deduction for each hint (only for HINT_PENALTY)\nExamples:\nhint_penalty=ONCE:20% or hint_penalty=ONCE:0.2\nhint_penalty=PER-HELP:10%\nsolution_penalty=ONCE:50%\nvideo_penalty=ONCE:15%\nExample API call with comprehensive penalty system:\nid=area_circle_parametric\ntype=expression\ncontent=Find an expression for the area of a circle with radius {r}.\nanswer=pi*{r}^2\nparameters={r; INTEGER; 2; 10}\npoints=10\nsubject=Mathematics\ncategory=Geometry\nhint=Think about the formula for circle area &&& Remember that area involves squaring the radius\nsolution=The formula for circle area is $$\\pi r^2$$\npenalty_scoring=PER_ANSWER\npenalty_points=3\nhint_penalty=PER-HELP:10%\nsolution_penalty=ONCE:50%\n# Each hint used reduces score by 10%, viewing solution reduces score by 50%"New value: +"Point deduction for using hints/solutions/videos during a test." - changed
Input schema / properties / hotspot_image / descriptionPrevious value: -"The image on which the points must be marked.\nSupported formats: PNG, JPEG, WebP\nFormat: filename=data, where data is either a base64-encoded image (whole data string) or a URL"New value: +"The 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 base64-encoded image (whole data string) or a URL." - changed
Input schema / properties / hotspot_zones / descriptionPrevious value: -"Zones accepted as answers.\n- Applicable only for HOTSPOT questions\n- All numerical values must be entered as percentages!\n- In case of coordinates, (0; 0) is the upper left corner of the image, while (100; 100) is the lower right corner\n- Zones separated by triple-and operators (&&&)\nAccepted values:\n- Circular zone:\n - Notation: {circle; X; Y; R}\n - X: X (horizontal) coordinate of the center of the circle\n - Y: Y (vertical) coordinate of the center of the circle\n - R: radius of the circle (proportional to the width of the image)\n - Example: {circle; 50; 50; 10}\n- Rectangular zone:\n - Notation: {rectangle; X1; Y1; X2; Y2}\n - X1: X (horizontal) coordinate of the upper left corner of the rectangle\n - Y1: Y (vertical) coordinate of the upper left corner of the rectangle\n - X2: X (horizontal) coordinate of the lower right corner of the rectangle\n - Y2: Y (vertical) coordinate of the lower right corner of the rectangle\n - Example: {rectangle; 25; 25; 50; 50}"New value: +"Zones accepted as answers. Applicable only for HOTSPOT questions." - changed
Input schema / properties / id / descriptionPrevious value: -"External unique question identifier for question management.\nShould be maximum 64 characters long!\nOn repeated uploads, the questions are updated (rather then added) based on this value, which can be an arbitrary text.\nIf the question already exists at upload time with the same external identifier (in the given folder or Quiz set), the existing question will be updated instead of being added as a new one.\n- Use cases:\n - Integration with external systems\n - Version control\n - Batch updates\n - Content synchronization\n- Best practices:\n - Use consistent naming conventions\n - Include version, source or date information\n - Consider hierarchical IDs for related content\nExample:\n- id=MATHEMATICS_ARITHMETIC_BASIC_ADDITION_STATIC_001\n- type=numerical\n- content=What is 2+2?\n- answer=4"New value: +"External unique question identifier for question management." - added
Input schema / properties / id / maxLengthAdded value: +64 - changed
Input schema / properties / image / descriptionPrevious value: -"Attach an image to the question.\nSupported formats: PNG, JPEG, WebP\nFormat: filename=data, where data is either a base64-encoded image (whole data string) or a URL"New value: +"Attach an image to the question. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a base64-encoded image (whole data string) or a URL." - changed
Input schema / properties / labels / descriptionPrevious value: -"Categorize questions with instance-level labels.\n- Pre-defined values specific to each EduBase instance\n- Values controlled by instance administrators (cannot be created by users)\n- Consistent across all users in an instance\n- Specify multiple labels separated by triple-and operators (\"&&&\")\n- Use cases include:\n - System-wide flags (e.g., \"needs_review\", \"featured\")\n - Quality indicators (e.g., \"verified\", \"deprecated\")\n - Processing status (e.g., \"ai_generated\", \"manually_checked\")\nExample:\nlabel=verified &&& featured"New value: +"Categorize questions with instance-level labels. Pre-defined values specific to each EduBase instance." - changed
Input schema / properties / language / descriptionPrevious value: -"The language of the question.\n- Alpha-2 code according to ISO 639-1\nExample:\nlanguage=hu # Hungarian"New value: +"The language of the question, in Alpha-2 code format (according to ISO 639-1)." - changed
Input schema / properties / main_category / descriptionPrevious value: -"The name of the category (for which CATEGORY will be a subcategory).\n- Empty by default, e.g. CATEGORY will be treated as the main category\n- Specify multiple levels (up to 2!) by using the triple-per operator (///) with highest main category on the left\nExample:\nmain_category=Analytic Geometry /// Vectors"New value: +"The name of the category (for which CATEGORY will be a subcategory)." - changed
Input schema / properties / manual_scoring / descriptionPrevious value: -"Controls when to enable manual scoring.\n- Not applicable for READING and FREE-TEXT questions\n- Available values:\n - NO: Never use manual scoring (default)\n - NOT_CORRECT: Only manually score incorrect answers\n - ALWAYS: Always require manual scoring\nExample:\nmanual_scoring=NOT_CORRECT"New value: +"Controls when to enable manual scoring. Not applicable for READING and FREE-TEXT questions." - added
Input schema / properties / manual_scoring / enumAdded value: +[ + "NO", + "NOT_CORRECT", + "ALWAYS" +] - changed
Input schema / properties / media_audio / descriptionPrevious value: -"Attach an audio file to the question.\nSupported formats: MP3, AAC, M4A\nFormat: filename=data, where data is either a base64-encoded audio file (whole data string) or a URL"New value: +"Attach an audio file to the question. Supported formats: MP3, AAC, M4A. Format: filename=data, where data is either a base64-encoded audio file (whole data string) or a URL." - changed
Input schema / properties / note / descriptionPrevious value: -"The text that appears right below the question.\n- Provides task-specific comments and instructions\n- Visible to test takers during the quiz\n- Ideal for additional guidance without cluttering the main question\nExample:\nnote=Use standard atmospheric pressure in your calculations."New value: +"The text that appears right below the question." - changed
Input schema / properties / numerical_range / descriptionPrevious value: -"Number range (interval) question.\n- Only applicable for NUMERIC questions\n- Plus sign (+) to indicate YES, while blank field or minus sign (-) indicates NO (default)\n- Enables interval responses with the format {from}-{to}\nExample:\nnumerical_range=+"New value: +"Number range (interval) question. Only applicable for NUMERIC questions." - added
Input schema / properties / numerical_range / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / options / descriptionPrevious value: -"Incorrect options or false statements for choice-based question types.\n- Required for CHOICE, MULTIPLE-CHOICE question types\n- For TRUE/FALSE, these are the false statements (ANSWER contains true statements)\n- Separate multiple options with triple-and operators (\"&&&\")\n- Parameters can be used in curly braces {param_name}\n- LaTeX Support (requires QUESTION_FORMAT=LATEX):\n - Inline: $$...$$\n - Block: $$$$...$$$$\n - IMPORTANT: When using LaTeX in questions, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\nExample:\noptions=London &&& Berlin &&& Madrid\nExample API call:\nid=capital_france\ntype=choice\ncontent=What is the capital of France?\nanswer=Paris\noptions=London &&& Berlin &&& Madrid"New value: +"Incorrect 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 (\"&&&\")." - changed
Input schema / properties / options_fix / descriptionPrevious value: -"Controls the arrangement of answers and options.\n- Available values:\n - all: Answers appear first, followed by options\n - abc: Sort all items (answers and options) alphabetically\n - first:N: Place first N options at the end\n - last:N: Place last N options at the end\n - answers: Place all answers at the end\n- Useful for maintaining consistent presentation or for specific pedagogical purposes\nFor alphabetical ordering:\n- When migrating content from textbooks or past exams, can maintain original lettering system (a, b, c...) for:\n - Reference consistency with printed materials\n - Alignment with answer keys\n - Compatibility with existing grading systems\n - Cross-referencing with study guides\n- Particularly valuable when:\n - Test takers need to refer to both digital and printed materials\n - Questions are part of a larger standardized test system\n - Maintaining consistency with existing worksheets or textbooks\n - Digitizing legacy assessment materials\nExample:\noptions_fix=abc\nExample API call:\nid=fruit_types\ntype=multiple-choice\ncontent=Which of these are citrus fruits?\nanswer=Lemon &&& Orange\noptions=Apple &&& Banana &&& Grape\noptions_fix=abc\nExample API call:\nid=vocab_synonyms\ntype=multiple-choice\ncontent=Select all words that mean \"happy\":\nanswer=b) Joyful &&& d) Merry\noptions=a) Angry &&& c) Sleepy &&& e) Tired\noptions_fix=abc"New value: +"Controls the arrangement of answers and options." - changed
Input schema / properties / options_order / descriptionPrevious value: -"Define exact presentation order of answers and options.\n- Format: ANSWER:N or OPTION:N items separated by \"&&&\"\n- ANSWER:N references the Nth provided answer\n- OPTION:N references the Nth provided option\n- OPTION_NONE:N references the Nth third option (for TRUE/FALSE questions)\n- All answers and options must be specified exactly once\nExample:\noptions_order=OPTION:0 &&& ANSWER:0 &&& OPTION:1 &&& ANSWER:1\nExample API call to create a chronologically ordered timeline\nid=historical_chronology\ntype=multiple-choice\ncontent=Which of these events occurred during the Industrial Revolution (1760-1840)?\nanswer=Invention of the Steam Engine &&& First Steam Locomotive &&& First Commercial Railway\noptions=Printing Press Invented &&& First Electric Light Bulb &&& First Powered Flight\noptions_order=OPTION:0 &&& ANSWER:0 &&& ANSWER:1 &&& ANSWER:2 &&& OPTION:1 &&& OPTION:2"New value: +"Define exact presentation order of answers and options." - changed
Input schema / properties / parameters / descriptionPrevious value: -"Parameter definitions for dynamic question generation.\nOne of EduBase's most powerful features, allowing creation of dynamic questions where each user gets a unique variant of the same question.\n- Separate multiple parameters with triple-and operators (\"&&&\")\n- Up to 128 parameters can be defined\nParameter Types:\n1. FIX (Fixed Value):\n - Format: {name; FIX; value}\n - Sets a predefined constant value (integer or fraction)\n - Example: {pi; FIX; 3.1415}\n2. INTEGER (Whole Numbers):\n - Simple: {name; INTEGER}\n - Extended: {name; INTEGER; min; max}\n - Full: {name; INTEGER; min; max; inside; outside}\n - Generate random integers within specified ranges\n - Use '-' for omitting min/max values\n - Examples:\n * {p; INTEGER} - any integer\n * {p; INTEGER; 10; 20} - integer between 10 and 20 (inclusive)\n * {p; INTEGER; -; -; [10-20]; [12-14] ||| [16-18]} - integer between 10-20, excluding 12-14 and 16-18\n3. FLOAT (Decimal Numbers):\n - Simple: {name; FLOAT; precision}\n - Extended: {name; FLOAT; precision; min; max}\n - Full: {name; FLOAT; precision; min; max; inside; outside}\n - Generate random decimal numbers\n - Specify precision (decimal places)\n - Examples:\n * {p; FLOAT; 2} - float with 2 decimal places\n * {p; FLOAT; 5; 0; 1} - float between 0 and 1 with 5 decimals\n * {p; FLOAT; 1; 0; 10; -; [0-1]} - float between 0-10 excluding 0-1, with 1 decimal\n4. FORMULA (Expressions):\n - Simple: {name; FORMULA; formula}\n - Full: {name; FORMULA; formula; precision}\n - Define parameters based on other parameters\n - Examples:\n * {d; FORMULA; {b}^2-4*{a}*{c}} - quadratic formula discriminant\n * {p; FORMULA; 2*{q}+1} - linear expression\n5. LIST (Random Selection):\n - Format: {name; LIST; value1; value2; value3; ...}\n - Randomly select from predefined values\n - Up to 64 elements\n - Examples:\n * {primes; LIST; 2; 3; 5; 7; 11}\n * {animals; LIST; dog; cat; snake; camel}\n6. PERMUTATION:\n - Format: {name; PERMUTATION; value1; value2; value3; ...}\n - Creates permutated parameters accessible as {name_1}, {name_2}, etc.\n - Example: {p; PERMUTATION; A; B; C; D}\n * So {p_1} will be a different letter than {p_2}\n - Example: {primes; PERMUTATION; 2; 3; 5; 7}\n * So both {primes_1} and {primes_2} will be different single digit primes\n7. FORMAT:\n - Format: {name; FORMAT; parameter; type; ...}\n - Format parameters based on other parameters\n - Supported types: NUMBER, NUMERTEXT, ROMAN\n - Optional extra parameters based on type\n * NUMBER\n * precision: number of decimal places\n - Examples:\n * {pp; FORMAT; p; NUMBER; 1} - format as number rounded to 1 decimal\n * {pp; FORMAT; p; NUMBERTEXT} - format number as text\n * {pp; FORMAT; p; ROMAN} - format number as Roman numeral\nBest Practices:\n - Order parameters so dependent ones come later\n - Use simple notation when possible\n - Avoid unnecessary parameters\n - Use CONSTRAINTS field to ensure valid combinations\nExamples:\nparameters={pi; FIX; 3.14159} &&& {r; INTEGER; 1; 10}\nparameters={a; INTEGER; 1; 5} &&& {b; INTEGER; -10; 10} &&& {c; INTEGER; -10; 10} &&& {d; FORMULA; {b}^2-4*{a}*{c}}\nparameters={country; LIST; France; Germany; Italy} &&& {capital; LIST; Paris; Berlin; Rome}\nparameters_sync=+ # Ensures each country is paired with its correct capital"New value: +"Parameter definitions for dynamic question generation. Separate multiple parameters with triple-and operators (\"&&&\"). Up to 128 parameters can be defined!" - changed
Input schema / properties / parameters_sync / descriptionPrevious value: -"Controls synchronization of LIST parameter selections.\n- Plus sign (+) to indicate YES\n- Blank field or minus sign (-) indicates NO (default)\n- When enabled, the Nth value from each LIST is selected together\n- Critical for paired data like countries and capitals\nExample:\nparameters_sync=+\nExample API call:\nid=capital_city\ntype=text\ncontent=What is the capital city of {country}?\nanswer={capital}\nparameters={country; LIST; France; Germany; Italy} &&& {capital; LIST; Paris; Berlin; Rome}\nparameters_sync=+"New value: +"Controls synchronization of LIST parameter selections." - added
Input schema / properties / parameters_sync / enumAdded value: +[ + "+", + "-" +] - changed
Input schema / properties / path / descriptionPrevious value: -"Path where question will be stored in personal QuestionBase.\n- Default: /API\n- Supports hierarchical structure with forward slashes\n- Always start with a forward slash!\nExample:\npath=/Mathematics/Calculus/Derivatives"New value: +"Path where question will be stored in personal QuestionBase." - changed
Input schema / properties / penalty_points / descriptionPrevious value: -"Points deducted for completely incorrect answers.\n- No penalty applied if answer is partially correct\n- No penalty for empty/unanswered questions\n- Use positive values (recommended)\nExample:\npenalty_points=2\nExample API call with penalties:\nid=physics_multiple_choice\ntype=multiple-choice\ncontent=Which of the following are forms of energy? Select all that apply.\nanswer=Kinetic &&& Potential &&& Thermal\noptions=Velocity &&& Acceleration\npoints=3\npenalty_scoring=PER_QUESTION\npenalty_points=1"New value: +"Points deducted for completely incorrect answers." - changed
Input schema / properties / penalty_scoring / descriptionPrevious value: -"Controls how penalty points should be applied.\n- Available values:\n - DEFAULT: Standard penalty application, which might vary by question type (default)\n - PER_ANSWER: Apply penalties for each incorrect answer\n - PER_QUESTION: Apply penalties once per question\nExample:\npenalty_scoring=PER_ANSWER"New value: +"Controls how penalty points should be applied." - added
Input schema / properties / penalty_scoring / enumAdded value: +[ + "DEFAULT", + "PER_ANSWER", + "PER_QUESTION" +] - changed
Input schema / properties / points / descriptionPrevious value: -"Maximum points for a fully correct answer.\n- Default: 1 point\n- For questions with multiple answers, partial credit is possible based on SUBSCORING method\nExample:\npoints=10"New value: +"Maximum points for a fully correct answer. Default: 1 point." - changed
Input schema / properties / private_note / descriptionPrevious value: -"Private notes (not shown to test takers).\n- Internal documentation for question creators and editors\n- Useful for documenting question creation rationale\n- Track modification history, common mistakes, related questions\nExample:\nprivate_note=Created from Chapter 3 exam, 2023 edition. Students often forget to convert units."New value: +"Private notes (not shown to test takers)." - changed
Input schema / properties / question_format / descriptionPrevious value: -"Controls question text rendering.\n- NORMAL: Default text formatting with standard font size, recommended for most tasks\n- LATEX: Enables LaTeX for mathematical, scientific notations (using KaTeX)\n- LONG: Smaller font with automatic paragraph breaks (ideal for lengthy text)\nExample:\nquestion_format=LATEX"New value: +"Controls question text rendering." - added
Input schema / properties / question_format / enumAdded value: +[ + "NORMAL", + "LATEX", + "LONG" +] - changed
Input schema / properties / solution / descriptionPrevious value: -"Step-by-step solution.\n- LaTeX code can be used (as described in QUESTION)\n - IMPORTANT: When using LaTeX in solution, you MUST use double dollar signs ($$...$$) for inline math or quadruple dollar signs ($$$$...$$$$) for block math.\n - Single dollar signs ($...$) are NOT supported and will not render correctly. The inline or block method must be used, as $...$ won't work!\n- Specify multiple solution steps separated by triple-and operators (\"&&&\")\n- Each step is displayed one at a time\n- Can be penalized using SOLUTION_PENALTY\n- Not available in exam mode\nExample:\nsolution=Using the power rule, we differentiate each term: &&& For $x^2$: $\\frac{d}{dx}(x^2) = 2x$ &&& For $x$: $\\frac{d}{dx}(x) = 1$ &&& The constant term disappears: $\\frac{d}{dx}(5) = 0$ &&& Therefore, $\\frac{d}{dx}(x^2 + x + 5) = 2x + 1$"New value: +"Step-by-step solution." - changed
Input schema / properties / solution_image / descriptionPrevious value: -"Attach an image to the solution steps.\nSupported formats: PNG, JPEG, WebP\nFormat: filename=data, where data is either a base64-encoded image (whole data string) or a URL"New value: +"Attach an image to the solution steps. Supported formats: PNG, JPEG, WebP. Format: filename=data, where data is either a base64-encoded image (whole data string) or a URL." - changed
Input schema / properties / solution_penalty / descriptionPrevious value: -"Similar to HINT_PENALTY\nPoint deduction for viewing steps of the solution (NONE, ONCE:N%) (default: NONE)"New value: +"Point deduction for viewing steps of the solution (NONE, ONCE:N%). Default: NONE." - changed
Input schema / properties / source / descriptionPrevious value: -"Specify source of question content (not shown to test takers).\n- Use cases include training material sources, documentation references, content attribution\n- Important for tracking question origins and copyright compliance\nExample:\nsource=Mathematics Textbook Chapter 5, Page 123\nsource=Company Safety Manual 2023, Section 3.4.2"New value: +"Specify source of question content (not shown to test takers)." - changed
Input schema / properties / subject / descriptionPrevious value: -"Subject classification for organizing questions.\n- Provides primary categorization for content organization\n- Use the question editor in the EduBase UI for an up-to-date list of possible values\nExample:\nsubject=Mathematics\ncategory=Algebra"New value: +"Subject classification for organizing questions." - changed
Input schema / properties / subpoints / descriptionPrevious value: -"Define specific point values for each answer in percentages.\n- Only used when subscoring=CUSTOM\n- Specify percentage values separated by triple-and operators (\"&&&\")\n- Not applicable for CHOICE, READING and FREE-TEXT questions\n- Values should sum to 100 (for percentage)\nExample:\nsubpoints=50 &&& 25 &&& 25\nExample meaning: For a 10-point question with three answers:\n- First answer: 5 points (50%)\n- Second answer: 2.5 points (25%)\n- Third answer: 2.5 points (25%)"New value: +"Define 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)." - changed
Input schema / properties / subscoring / descriptionPrevious value: -"Method for calculating partial credit for partially correct answers.\n- Not applicable for CHOICE, READING and FREE-TEXT questions\n- Available values:\n - PROPORTIONAL: Points awarded proportionally to correct answers (default)\n - LINEAR_SUBSTRACTED:N: Linear scoring with N points subtracted for each error\n - CUSTOM: Use custom point distribution defined in SUBPOINTS field\n - NONE: No partial credit, all-or-nothing scoring\nExample:\nsubscoring=LINEAR_SUBSTRACTED:2\nExample API call:\nid=math_problem\ntype=numerical\ncontent=What is the sum and product of {a} and {b}?\nanswer={a}+{b} &&& {a}*{b}\nparameters={a; INTEGER; 1; 100} &&& {b; INTEGER; 1; 100}\npoints=4\nsubscoring=CUSTOM\nsubpoints=25 &&& 75"New value: +"Method for calculating partial credit for partially correct answers. Not applicable for CHOICE, READING and FREE-TEXT questions." - changed
Input schema / properties / tags / descriptionPrevious value: -"Tag questions with custom user-defined tags.\n- Use ID or code of pre-registered tags\n- Only previously registered tags can be used (must be pre-registered in EduBase UI)\n- Specify multiple tags separated by triple-and operators (\"&&&\")\n- User-controlled categorization that can be created at user or organization level\n- Use cases include:\n - Personal content organization (e.g., \"My Calculus Questions\", \"Spring 2024\")\n - Department-level categorization (e.g., \"IT Department\", \"CS101\")\n - Custom taxonomies for specialized content organization\n- Tags are flexible, customizable, and searchable in the UI\nExample:\ntags=Algebra &&& High School &&& Exam Prep"New value: +"Tag questions with custom user-defined tags. Use ID or code of pre-registered tags." - changed
Input schema / properties / tolerance / descriptionPrevious value: -"Evaluation tolerance method.\n- Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions\n- Notation: type or type:value\n- Types:\n - ABSOLUTE: maximum difference between answer and user input\n * Example: ABSOLUTE:0.1\n - RELATIVE: maximum difference in percentage (symmetric mean absolute percentage error, SMAP value is used)\n * Example: RELATIVE:5% or RELATIVE:0.05\n - QUOTIENT: integer multiple / QUOTIENT2: scalar multiple\n * Example: QUOTIENT or QUOTIENT2:SYNCED\nExample:\ntolerance=ABSOLUTE:0.01"New value: +"Evaluation tolerance method. Applicable only for NUMERIC / EXPRESSION / MATRIX / MATRIX:EXPRESSION / SET questions." - changed
Input schema / properties / truefalse_third_options / descriptionPrevious value: -"Activate the third option for TRUE/FALSE questions.\n- Plus sign (+) to display the third option OR\n- Specify options separated by triple-and operators (\"&&&\") to automatically enable the feature\n- Parameters can be used in curly braces {param_name}\nExample:\ntruefalse_third_options=Cannot be determined from the information given &&&Not applicable"New value: +"Activate 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." - changed
Input schema / properties / truefalse_third_options_label / descriptionPrevious value: -"Label of the third option for TRUE/FALSE questions.\n- If blank, the text \"none\" is displayed (default)\n- Only applicable when TRUEFALSE_THIRD_OPTIONS is enabled\nExample:\ntruefalse_third_options_label=Not enough information"New value: +"Label of the third option for TRUE/FALSE questions. If blank, the text \"none\" is displayed (default). Only applicable when TRUEFALSE_THIRD_OPTIONS is enabled." - changed
Input schema / properties / type / descriptionPrevious value: -"Type of the question.\nEduBase supports various question types to accommodate different assessment needs:\n- Basic Types:\n - GENERIC: Strict matching including spaces and punctuation\n - TEXT: Basic text input with flexible matching (ignores spaces and punctuation)\n - FREE-TEXT: Extended text response with semi-automatic grading\n - READING: Non-assessed text display for complex question groups\n- Choice-Based Types:\n - CHOICE: Single correct answer selection\n - MULTIPLE-CHOICE: Multiple correct answers\n - ORDER: Sequence arrangement (arrange items in correct order)\n - TRUE/FALSE: Statement evaluation (true statements in ANSWER, false in OPTIONS)\n- Grouping Types:\n - GROUPING: Assigning elements to predefined groups\n - PAIRING: Matching elements to their pairs\n- Numerical Types:\n - NUMERIC: Numerical value validation with fractions, constants, intervals\n - DATE/TIME: Calendar date validation with adjustable precision\n - EXPRESSION: Mathematical expression evaluation\n- Advanced Types:\n - MATRIX/MATRIX:EXPRESSION: Matrix evaluation (format: [a;b|c;d] for 2x2)\n - SET/SET:TEXT: Unordered collection validation\n - HOTSPOT: Marking specific areas on an image\n - FILE: File submission evaluation\nExample:\ntype=numerical"New value: +"Type of the question." - added
Input schema / properties / type / enumAdded value: +[ + "GENERIC", + "TEXT", + "FREE-TEXT", + "READING", + "CHOICE", + "MULTIPLE-CHOICE", + "ORDER", + "TRUE/FALSE", + "GROUPING", + "PAIRING", + "NUMERIC", + "DATE/TIME", + "EXPRESSION", + "MATRIX", + "MATRIX:EXPRESSION", + "SET", + "SET:TEXT", + "HOTSPOT", + "FILE" +] - changed
Input schema / properties / video_penalty / descriptionPrevious value: -"Similar to HINT_PENALTY\nPoint deduction for video assistance used (NONE, ONCE:N%) (default: NONE)"New value: +"Point deduction for video assistance used (NONE, ONCE:N%). Default: NONE."
162 tool updates
v1.1.2- Changed
edubase_delete_class_members1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_class_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_class_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "type": { + "const": "class", + "description": "will be \"class\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_course_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_course_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the course identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique course identifier (if set for the course)" + }, + "type": { + "const": "course", + "description": "will be \"course\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Removed
edubase_delete_course_transfer - Changed
edubase_delete_event_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "finances", + "grant", + "admin" +]
- Changed
edubase_delete_event_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the event identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique event identifier (if set for the event)" + }, + "type": { + "const": "event", + "description": "will be \"event\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_exam1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_exam_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_exam_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "type": { + "const": "exam", + "description": "will be \"exam\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_delete_exam_users1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_integration1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_integration_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_integration_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_organization1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_organization_members1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_organization_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_organization_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_organization_webhook1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_question1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_quiz1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_quiz_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_quiz_questions1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_quiz_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_scorm_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_scorm_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_tag_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_user1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_user_assume1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_user_classes1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_user_login2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / url / formatAdded value: +"uri"
- Changed
edubase_delete_user_organizations1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_delete_video_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_delete_video_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_class2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "class": { + "description": "class identification string", + "type": "string" + }, + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "end date and time (if set)" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "name": { + "description": "title of the class", + "type": "string" + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "start date and time (if set)" + } + }, + "required": [ + "class", + "name" + ], + "type": "object" +}
- Changed
edubase_get_class_assignments2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "assignments": { + "items": { + "additionalProperties": false, + "properties": { + "assignment": { + "description": "assignment identification string", + "type": "string" + }, + "ends": { + "description": "when the assignment submission ends", + "type": "string" + }, + "link": { + "description": "link to the assignment page", + "type": "string" + }, + "name": { + "description": "title of the assignment", + "type": "string" + }, + "starts": { + "description": "when the assignment submission starts", + "type": "string" + }, + "status": { + "description": "assignment and submission state (INACTIVE, ACTIVE, STARTED, SUBMITTED, GRADED)", + "enum": [ + "INACTIVE", + "ACTIVE", + "STARTED", + "SUBMITTED", + "GRADED" + ], + "type": "string" + } + }, + "required": [ + "assignment", + "name", + "link", + "status", + "starts", + "ends" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "assignments" + ], + "type": "object" +}
- Changed
edubase_get_class_members2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "members": { + "items": { + "additionalProperties": false, + "properties": { + "active": { + "description": "active membership (approved and not expired)", + "type": "boolean" + }, + "name": { + "description": "name of the member", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "user", + "name", + "active" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "members" + ], + "type": "object" +}
- Changed
edubase_get_class_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_class_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "type": { + "const": "class", + "description": "will be \"class\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this class", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_class_tags2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_classes9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "classes": { + "items": { + "additionalProperties": false, + "properties": { + "class": { + "description": "class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "name": { + "description": "title of the class", + "type": "string" + } + }, + "required": [ + "class", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "classes" + ], + "type": "object" +}
- Changed
edubase_get_course_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_course_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the course identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique course identifier (if set for the course)" + }, + "type": { + "const": "course", + "description": "will be \"course\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this course", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_course_tags2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_event_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "finances", + "grant", + "admin" +]
- Changed
edubase_get_event_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the event identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique event identifier (if set for the event)" + }, + "type": { + "const": "event", + "description": "will be \"event\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this event", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_event_tags2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_exam2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "active": { + "description": "exam is active", + "type": "boolean" + }, + "end": { + "description": "end date and time", + "type": "string" + }, + "exam": { + "description": "exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "name": { + "description": "title of the exam", + "type": "string" + }, + "quiz": { + "description": "Quiz identification string. The Quiz set the exam is attached to", + "type": "string" + }, + "start": { + "description": "start date and time", + "type": "string" + }, + "status": { + "description": "exam status (INACTIVE, ACTIVE, PAUSED, REVIEW, EXPIRED)", + "enum": [ + "INACTIVE", + "ACTIVE", + "PAUSED", + "REVIEW", + "EXPIRED" + ], + "type": "string" + } + }, + "required": [ + "exam", + "name", + "quiz", + "active", + "status", + "start", + "end" + ], + "type": "object" +}
- Changed
edubase_get_exam_certificates_user2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "archived": { + "description": "exam result is archived", + "type": "boolean" + }, + "certified": { + "description": "result is eligible for certification and also certified", + "type": "boolean" + }, + "eligible": { + "description": "result is eligible for certification", + "type": "boolean" + }, + "expires": { + "description": "date of expiration, only present if the result is certified and expiration is configured", + "type": "string" + }, + "play": { + "description": "Quiz play identification string", + "type": "string" + }, + "serial": { + "description": "serial number of the certificate, only present if the result is certified and serial numbering is enabled", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "play", + "user", + "archived", + "eligible", + "certified" + ], + "type": "object" +}
- Changed
edubase_get_exam_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_exam_results_raw2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "exam": { + "description": "exam identification string", + "type": "string" + }, + "questions": { + "additionalProperties": {}, + "description": "most important details about the questions asked", + "properties": {}, + "type": "object" + }, + "users": { + "description": "details of the user and their results", + "items": {}, + "type": "array" + } + }, + "required": [ + "exam", + "users", + "questions" + ], + "type": "object" +}
- Changed
edubase_get_exam_results_user2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "results": { + "items": { + "additionalProperties": false, + "properties": { + "attempt": { + "description": "index of attempt", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "play": { + "description": "Quiz play identification string", + "type": "string" + }, + "points_correct": { + "description": "total points scored", + "type": "number" + }, + "points_total": { + "description": "total points", + "type": "number" + }, + "questions_correct": { + "description": "number of correctly answered questions", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "questions_total": { + "description": "total number of questions asked", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "successful": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "attempt passed grading threshold (if applicable)" + }, + "time_end": { + "description": "end time", + "type": "string" + }, + "time_start": { + "description": "start time", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + }, + "valid": { + "description": "result is valid", + "type": "boolean" + } + }, + "required": [ + "play", + "user", + "time_start", + "time_end", + "questions_total", + "questions_correct", + "points_total", + "points_correct", + "attempt", + "valid", + "successful" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
edubase_get_exam_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "type": { + "const": "exam", + "description": "will be \"exam\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this exam", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_exam_tags2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_exam_users2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "users": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "name of the examinee", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "user", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "users" + ], + "type": "object" +}
- Changed
edubase_get_exams10 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / activeAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "optional filter to only include active exams (if true) or inactive exams (if false)" +} - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "exams": { + "items": { + "additionalProperties": false, + "properties": { + "active": { + "description": "exam is active", + "type": "boolean" + }, + "exam": { + "description": "exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "name": { + "description": "title of the exam", + "type": "string" + } + }, + "required": [ + "exam", + "name", + "active" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "exams" + ], + "type": "object" +}
- Changed
edubase_get_integration2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "active": { + "description": "integration is active", + "type": "boolean" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "integration": { + "description": "integration identification string", + "type": "string" + }, + "lti": { + "description": "LTI version, only present if the integration is an LMS", + "type": "boolean" + }, + "name": { + "description": "title of the integration", + "type": "string" + }, + "type": { + "description": "type of the integration", + "enum": [ + "api", + "moodle", + "canvas", + "d2l", + "schoology", + "lms" + ], + "type": "string" + } + }, + "required": [ + "integration", + "name", + "type", + "active" + ], + "type": "object" +}
- Changed
edubase_get_integration_keys2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "app": { + "description": "API application identification string, only present if the integration is an API integration", + "type": "string" + }, + "consumer": { + "description": "consumer key, only present if the integration is an LMS integration using LTI 1.0/1.1", + "type": "string" + }, + "jwk": { + "description": "URL for the JWK (JSON Web Key) set, only present if the integration is an LMS integration using LTI 1.3", + "type": "string" + }, + "pem": { + "description": "PEM formatted public key, only present if the integration is an LMS integration using LTI 1.3", + "type": "string" + }, + "secret": { + "description": "secret key, only present if the integration is an API integration or an LMS integration using LTI 1.0/1.1", + "type": "string" + } + }, + "type": "object" +}
- Changed
edubase_get_integration_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_integration_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the integration identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "type": { + "const": "integration", + "description": "will be \"integration\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "status": { + "description": "tag is attached to this integration", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "status" + ], + "type": "object" +}
- Changed
edubase_get_integration_tags2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_integrations9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "integrations": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique integration identifier (if set for the integration)" + }, + "integration": { + "description": "integration identification string", + "type": "string" + }, + "name": { + "description": "title of the integration", + "type": "string" + } + }, + "required": [ + "integration", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "integrations" + ], + "type": "object" +}
- Changed
edubase_get_organization2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "name": { + "description": "title of the organization", + "type": "string" + }, + "organization": { + "description": "organization identification string", + "type": "string" + } + }, + "required": [ + "organization", + "name" + ], + "type": "object" +}
- Changed
edubase_get_organization_members2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "members": { + "items": { + "additionalProperties": false, + "properties": { + "department": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "name of the department (if member)" + }, + "name": { + "description": "name of the member", + "type": "string" + }, + "permission": { + "additionalProperties": false, + "description": "permissions", + "properties": { + "content": { + "description": "permission level to contents in organization", + "type": "string" + }, + "organization": { + "description": "permission level to organization", + "type": "string" + } + }, + "required": [ + "organization", + "content" + ], + "type": "object" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "user", + "name", + "permission" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "members" + ], + "type": "object" +}
- Changed
edubase_get_organization_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_organization_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_organization_tags1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_organization_webhook2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "active": { + "description": "webhook is active", + "type": "boolean" + }, + "name": { + "description": "title of the webhook", + "type": "string" + }, + "organization": { + "description": "organization identification string", + "type": "string" + }, + "webhook": { + "description": "webhook identification string", + "type": "string" + } + }, + "required": [ + "organization", + "webhook", + "name", + "active" + ], + "type": "object" +}
- Changed
edubase_get_organizations9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "organizations": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "name": { + "description": "title of the organization", + "type": "string" + }, + "organization": { + "description": "organization identification string", + "type": "string" + } + }, + "required": [ + "organization", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "organizations" + ], + "type": "object" +}
- Changed
edubase_get_question2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "active": { + "description": "question is active", + "type": "boolean" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique question identifier (if set for the question)" + }, + "question": { + "description": "question identification string", + "type": "string" + } + }, + "required": [ + "question", + "active" + ], + "type": "object" +}
- Changed
edubase_get_question_id2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique question identifier (if set for the question)" + }, + "question": { + "description": "question identification string", + "type": "string" + } + }, + "required": [ + "question" + ], + "type": "object" +}
- Changed
edubase_get_questions9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "questions": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique question identifier (if set for the question)" + }, + "question": { + "description": "question identification string", + "type": "string" + } + }, + "required": [ + "question" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "questions" + ], + "type": "object" +}
- Changed
edubase_get_quiz2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "name": { + "description": "title of the Quiz set", + "type": "string" + }, + "quiz": { + "description": "Quiz identification string", + "type": "string" + } + }, + "required": [ + "quiz", + "name" + ], + "type": "object" +}
- Changed
edubase_get_quiz_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Removed
edubase_get_quiz_play_results - Changed
edubase_get_quiz_questions2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "items": { + "items": { + "additionalProperties": false, + "properties": { + "active": { + "description": "active item", + "type": "boolean" + }, + "group": { + "description": "question group title (if group)", + "type": "string" + }, + "id": { + "description": "external unique question identifier (if question and present)", + "type": "string" + }, + "question": { + "description": "question identification string (if question)", + "type": "string" + } + }, + "required": [ + "active" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "items" + ], + "type": "object" +}
- Added
edubase_get_quiz_results_play - Changed
edubase_get_quiz_results_user2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "results": { + "items": { + "additionalProperties": false, + "properties": { + "play": { + "description": "Quiz play identification string", + "type": "string" + }, + "points_correct": { + "description": "total points scored", + "type": "number" + }, + "points_total": { + "description": "total points", + "type": "number" + }, + "questions_correct": { + "description": "number of correctly answered questions", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "questions_total": { + "description": "total number of questions asked", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "successful": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "attempt passed grading threshold (if applicable)" + }, + "time_end": { + "description": "end time", + "type": "string" + }, + "time_start": { + "description": "start time", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + }, + "valid": { + "description": "result is valid", + "type": "boolean" + } + }, + "required": [ + "play", + "user", + "time_start", + "time_end", + "questions_total", + "questions_correct", + "points_total", + "points_correct", + "valid", + "successful" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
edubase_get_quiz_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_quiz_tags1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_quizes9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "quizes": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique Quiz identifier (if set for the Quiz)" + }, + "name": { + "description": "title of the Quiz set", + "type": "string" + }, + "quiz": { + "description": "Quiz identification string", + "type": "string" + } + }, + "required": [ + "quiz", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "quizes" + ], + "type": "object" +}
- Changed
edubase_get_scorm_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_scorm_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_scorm_tags1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "color": { + "description": "color in HEX format", + "type": "string" + }, + "icon": { + "description": "Font Awesome icon class name", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique tag identifier (if set for the tag)" + }, + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name", + "color", + "icon" + ], + "type": "object" +}
- Changed
edubase_get_tag_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_tags9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "tags": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique tag identifier (if set for the tag)" + }, + "name": { + "description": "title of the tag", + "type": "string" + }, + "tag": { + "description": "tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" +}
- Changed
edubase_get_user3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / user / descriptionPrevious value: -"User identification string.\n- Use 'me' to get the current user, but prefer /user:me endpoint instead."New value: +"User identification string. Use 'me' to get the current user, but prefer /user:me endpoint instead." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "exam": { + "description": "exam (generated) account", + "type": "boolean" + }, + "name": { + "description": "full name", + "type": "string" + }, + "status": { + "description": "user is enabled", + "type": "boolean" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "user", + "name", + "status", + "exam" + ], + "type": "object" +}
- Changed
edubase_get_user_classes2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "classes": { + "items": { + "additionalProperties": false, + "properties": { + "active": { + "description": "active membership (approved and not expired)", + "type": "boolean" + }, + "class": { + "description": "class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "link": { + "description": "link to the class page", + "type": "string" + }, + "name": { + "description": "title of the class", + "type": "string" + } + }, + "required": [ + "class", + "name", + "link", + "active" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "classes" + ], + "type": "object" +}
- Changed
edubase_get_user_group2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "group": { + "description": "user group code", + "type": "string" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "group" + ], + "type": "object" +}
- Changed
edubase_get_user_login2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "url": { + "description": "the login link", + "format": "uri", + "type": "string" + }, + "user": { + "description": "the user identification string", + "type": "string" + }, + "valid": { + "description": "validity (end of day) of the generated link", + "type": "string" + } + }, + "required": [ + "user", + "url", + "valid" + ], + "type": "object" +}
- Changed
edubase_get_user_me3 fields changed- removed
Input schema / properties / userRemoved value: -{ - "description": "User identification string.\n- Use 'me' to get the current user.", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "user" -] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "exam": { + "description": "exam (generated) account", + "type": "boolean" + }, + "name": { + "description": "full name", + "type": "string" + }, + "status": { + "description": "user is enabled", + "type": "boolean" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "user", + "name", + "status", + "exam" + ], + "type": "object" +}
- Changed
edubase_get_user_name2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "display_name": { + "description": "display name", + "type": "string" + }, + "first_name": { + "description": "first name", + "type": "string" + }, + "full_name": { + "description": "full name", + "type": "string" + }, + "last_name": { + "description": "last name", + "type": "string" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "first_name", + "last_name", + "full_name", + "display_name" + ], + "type": "object" +}
- Changed
edubase_get_user_organizations2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "organizations": { + "items": { + "additionalProperties": false, + "properties": { + "department": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "name of the department (if member)" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique organization identifier (if set for the organization)" + }, + "link": { + "description": "link to the organization manager page", + "type": "string" + }, + "name": { + "description": "title of the organization", + "type": "string" + }, + "organization": { + "description": "organization identification string", + "type": "string" + }, + "permission": { + "additionalProperties": false, + "description": "permissions", + "properties": { + "content": { + "description": "permission level to contents in organization", + "type": "string" + }, + "organization": { + "description": "permission level to organization", + "type": "string" + } + }, + "required": [ + "organization", + "content" + ], + "type": "object" + } + }, + "required": [ + "organization", + "name", + "link", + "permission" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "organizations" + ], + "type": "object" +}
- Changed
edubase_get_user_search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "exam": { + "description": "exam (generated) account", + "type": "boolean" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "user", + "exam" + ], + "type": "object" +}
- Changed
edubase_get_users9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / limit / maximumAdded value: +9007199254740991 - added
Input schema / properties / limit / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - removed
Input schema / requiredRemoved value: -[] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "users": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "full name of the user", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + } + }, + "required": [ + "user", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "users" + ], + "type": "object" +}
- Changed
edubase_get_video_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_get_video_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_get_video_tags1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Added
edubase_mcp_server_api - Added
edubase_mcp_server_version - Changed
edubase_patch_integration1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_patch_organization1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_patch_organization_webhook1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_patch_user1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_class_members3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / expires / anyOfAdded value: +[ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "string" + } +] - removed
Input schema / properties / expires / typeRemoved value: -"string"
- Changed
edubase_post_class_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_class_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the class identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique class identifier (if set for the class)" + }, + "type": { + "const": "class", + "description": "will be \"class\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_class_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_classes_members3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / expires / anyOfAdded value: +[ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "string" + } +] - removed
Input schema / properties / expires / typeRemoved value: -"string"
- Changed
edubase_post_course_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_course_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the course identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique course identifier (if set for the course)" + }, + "type": { + "const": "course", + "description": "will be \"course\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Added
edubase_post_course_transfer - Removed
edubase_post_custom_metric - Changed
edubase_post_event_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "finances", + "grant", + "admin" +]
- Changed
edubase_post_event_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the event identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique event identifier (if set for the event)" + }, + "type": { + "const": "event", + "description": "will be \"event\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_event_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_exam12 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / close / descriptionPrevious value: -"exam end time (in YYYY-mm-dd HH:ii:ss format)"New value: +"exam end time (in YYYY-MM-DD HH:ii:ss format)" - added
Input schema / properties / copy_settingsAdded value: +{ + "description": "optional exam identification string to copy settings from", + "type": "string" +} - changed
Input schema / properties / id / descriptionPrevious value: -"External unique exam identifier.\nShould be maximum 64 characters long!"New value: +"external unique exam identifier" - added
Input schema / properties / id / maxLengthAdded value: +64 - added
Input schema / properties / id / minLengthAdded value: +1 - added
Input schema / properties / keep_certificate_settingsAdded value: +{ + "description": "whether to keep certificate settings from the copied exam (default: false)", + "type": "boolean" +} - changed
Input schema / properties / open / descriptionPrevious value: -"exam start time (in YYYY-mm-dd HH:ii:ss format)"New value: +"exam start time (in YYYY-MM-DD HH:ii:ss format)" - changed
Input schema / properties / quiz / descriptionPrevious value: -"the Quiz set (specified using the quiz identification string) the exam is attached to"New value: +"the Quiz set (specified using the Quiz identification string) the exam is attached to" - changed
Input schema / properties / type / descriptionPrevious value: -"Type of the exam. (default: exam)\n- exam: regular exam\n- championship: exam with championship features enabled\n- homework: homework assignment, can be paused and continued during the exam period\n- survey: survey (optionally anonymous) with no grading"New value: +"type of the exam (default: exam)" - added
Input schema / properties / type / enumAdded value: +[ + "exam", + "championship", + "homework", + "survey" +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "exam": { + "description": "exam identification string", + "type": "string" + } + }, + "required": [ + "exam" + ], + "type": "object" +}
- Changed
edubase_post_exam_certificates_user_download2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "play": { + "description": "Quiz play identification string", + "type": "string" + }, + "url": { + "description": "download link for the certificate", + "format": "uri", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + }, + "valid": { + "description": "date of link expiration", + "type": "string" + } + }, + "required": [ + "play", + "user", + "url", + "valid" + ], + "type": "object" +}
- Changed
edubase_post_exam_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_exam_summary7 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / llm / descriptionPrevious value: -"Name of the Large Language Model used to generate the summary.\n- preferred values: openai / claude / gemini"New value: +"name of the Large Language Model used to generate the summary (preferred: openai / claude / gemini)" - changed
Input schema / properties / model / descriptionPrevious value: -"Exact LLM model name used to generate the summary"New value: +"exact LLM model name used to generate the summary (requires llm)" - changed
Input schema / properties / summary / descriptionPrevious value: -"Summary text. \n- basic HTML formatting allowed, but avoid complex designs\n- keep the summary short and concise\n- try to avoid including personal information (such as usernames, names and contact addresses)"New value: +"summary text (basic HTML formatting allowed, keep concise, avoid personal information)" - changed
Input schema / properties / type / descriptionPrevious value: -"Type of summary. (default: ai)\n- ai: AI-generated summary"New value: +"type of summary (default: ai)" - added
Input schema / properties / type / enumAdded value: +[ + "ai" +] - changed
Input schema / requiredPrevious value: -[ - "exam", - "type", - "summary", - "llm", - "model" -]New value: +[ + "exam", + "summary" +]
- Changed
edubase_post_exam_tag2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "content": { + "additionalProperties": false, + "properties": { + "code": { + "description": "the exam identification string", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique exam identifier (if set for the exam)" + }, + "type": { + "const": "exam", + "description": "will be \"exam\"", + "type": "string" + } + }, + "required": [ + "type", + "code", + "id" + ], + "type": "object" + }, + "success": { + "description": "operation was successful", + "type": "boolean" + }, + "tag": { + "description": "the tag identification string", + "type": "string" + } + }, + "required": [ + "tag", + "content", + "success" + ], + "type": "object" +}
- Changed
edubase_post_exam_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_exam_users1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_integration6 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / lti / descriptionPrevious value: -"LTI version (1.0/1.1 / 1.3), only necessary for LMS integrations!"New value: +"LTI version, required for LMS integrations" - added
Input schema / properties / lti / enumAdded value: +[ + "1.0/1.1", + "1.3" +] - changed
Input schema / properties / type / descriptionPrevious value: -"type of the integration (api / moodle / canvas / d2l / schoology / lms)"New value: +"type of the integration (default: api)" - added
Input schema / properties / type / enumAdded value: +[ + "api", + "moodle", + "canvas", + "d2l", + "schoology", + "lms" +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "integration": { + "description": "integration identification string", + "type": "string" + } + }, + "required": [ + "integration" + ], + "type": "object" +}
- Changed
edubase_post_integration_keys2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "app": { + "description": "API application identification string, only present if the integration is an API integration", + "type": "string" + }, + "consumer": { + "description": "consumer key, only present if the integration is an LMS integration using LTI 1.0/1.1", + "type": "string" + }, + "jwk": { + "description": "URL for the JWK (JSON Web Key) set, only present if the integration is an LMS integration using LTI 1.3", + "type": "string" + }, + "pem": { + "description": "PEM formatted public key, only present if the integration is an LMS integration using LTI 1.3", + "type": "string" + }, + "secret": { + "description": "secret key, only present if the integration is an API integration or an LMS integration using LTI 1.0/1.1", + "type": "string" + } + }, + "type": "object" +}
- Changed
edubase_post_integration_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_integration_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_integration_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Added
edubase_post_metrics_custom - Changed
edubase_post_organization5 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / email / formatAdded value: +"email" - added
Input schema / properties / email / patternAdded value: +"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" - added
Input schema / properties / website / formatAdded value: +"uri" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "organization": { + "description": "organization identification string", + "type": "string" + } + }, + "required": [ + "organization" + ], + "type": "object" +}
- Changed
edubase_post_organization_members3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission_content / enumAdded value: +[ + "none", + "view", + "report", + "control", + "modify", + "grant", + "admin" +] - added
Input schema / properties / permission_organization / enumAdded value: +[ + "member", + "teacher", + "reporter", + "supervisor", + "admin" +]
- Changed
edubase_post_organization_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_organization_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_organization_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_organization_webhook13 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / authentication / descriptionPrevious value: -"Type of authentication (default: none):\n- none: no authentication\n- key: use a secret key (or password) for authentication"New value: +"Type of authentication (default: none): - none: no authentication - key: use a secret key (or password) for authentication" - added
Input schema / properties / authentication / enumAdded value: +[ + "none", + "key" +] - changed
Input schema / properties / authentication_send / descriptionPrevious value: -"How to send authentication data (default: data):\n- header: as header field\n- bearer: as Bearer token in Authorization header\n- data: as data field (in body or query string)"New value: +"How to send authentication data (default: data): - header: as header field - bearer: as Bearer token in Authorization header - data: as data field (in body or query string)" - added
Input schema / properties / authentication_send / enumAdded value: +[ + "header", + "bearer", + "data" +] - added
Input schema / properties / endpoint / formatAdded value: +"uri" - changed
Input schema / properties / method / descriptionPrevious value: -"HTTP method to use for webhook notifications (default: POST)\n- POST\n- GET"New value: +"HTTP method to use for webhook notifications (default: POST) - POST - GET" - added
Input schema / properties / method / enumAdded value: +[ + "POST", + "GET" +] - changed
Input schema / properties / retry / descriptionPrevious value: -"How to retry webhook notifications on failure (default: error):\n- none: no retry\n- error: delayed retry on any error"New value: +"How to retry webhook notifications on failure (default: error): - none: no retry - error: delayed retry on any error" - added
Input schema / properties / retry / enumAdded value: +[ + "none", + "error" +] - changed
Input schema / properties / trigger_event / descriptionPrevious value: -"Type of event to trigger webhook:\n- exam-play-result: triggers when a user (must be member of the organization) completes an exam in the organization\n- quiz-play-result: triggers when a user (must be member of the organization) completes a quiz in practice mode in the organization\n- api: triggers when a manual API call is made (useful for testing and debugging)"New value: +"Type of event to trigger webhook: - exam-play-result: triggers when a user (must be member of the organization) completes an exam in the organization - quiz-play-result: triggers when a user (must be member of the organization) completes a quiz in practice mode in the organization - api: triggers when a manual API call is made (useful for testing and debugging)" - added
Input schema / properties / trigger_event / enumAdded value: +[ + "exam-play-result", + "quiz-play-result", + "api" +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "organization": { + "description": "organization identification string", + "type": "string" + }, + "webhook": { + "description": "webhook identification string", + "type": "string" + } + }, + "required": [ + "organization", + "webhook" + ], + "type": "object" +}
- Changed
edubase_post_organization_webhook_trigger1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_organizations_members3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission_content / enumAdded value: +[ + "none", + "view", + "report", + "control", + "modify", + "grant", + "admin" +] - added
Input schema / properties / permission_organization / enumAdded value: +[ + "member", + "teacher", + "reporter", + "supervisor", + "admin" +]
- Changed
edubase_post_question3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / requiredPrevious value: -[ - "id", - "type", - "content", - "answer", - "ai", - "language" -]New value: +[ + "id", + "type", + "content", + "answer", + "ai" +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "question": { + "description": "question identification string", + "type": "string" + } + }, + "required": [ + "question" + ], + "type": "object" +}
- Changed
edubase_post_question_export2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "external unique question identifier (if set for the question)" + }, + "question": { + "description": "question identification string", + "type": "string" + }, + "url": { + "description": "download link for the question", + "format": "uri", + "type": "string" + }, + "valid": { + "description": "date of link expiration", + "type": "string" + } + }, + "required": [ + "question", + "url", + "valid" + ], + "type": "object" +}
- Changed
edubase_post_question_id1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_quiz11 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / copy_questionsAdded value: +{ + "description": "optional Quiz set identification string to copy questions from", + "type": "string" +} - added
Input schema / properties / copy_settingsAdded value: +{ + "description": "optional Quiz set identification string to copy settings from", + "type": "string" +} - changed
Input schema / properties / id / descriptionPrevious value: -"External unique Quiz identifier.\nShould be maximum 64 characters long!"New value: +"External unique Quiz identifier. Should be maximum 64 characters long!" - added
Input schema / properties / id / maxLengthAdded value: +64 - added
Input schema / properties / id / minLengthAdded value: +1 - changed
Input schema / properties / mode / descriptionPrevious value: -"Sets how questions are displayed during the Quiz. (default: TEST)\n- TEST: all questions are displayed at once, user can answer them in any order and switch between them\n- TURNS: questions are displayed one by one, only one question is visible at a time and the user must answer it before moving to the next question\n"New value: +"Sets how questions are displayed during the Quiz. (default: TEST) - TEST: all questions are displayed at once, user can answer them in any order and switch between them - TURNS: questions are displayed one by one, only one question is visible at a time and the user must answer it before moving to the next question" - added
Input schema / properties / mode / enumAdded value: +[ + "TEST", + "TURNS" +] - changed
Input schema / properties / type / descriptionPrevious value: -"Type of the Quiz set. (default: set)\n- set: for practice purposes\n- exam: for exam purposes\n- private: for private purposes (e.g testing)\n"New value: +"Type of the Quiz set. (default: set) - set: for practice purposes - exam: for exam purposes - private: for private purposes (e.g testing)" - added
Input schema / properties / type / enumAdded value: +[ + "set", + "exam", + "private" +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "quiz": { + "description": "Quiz identification string", + "type": "string" + } + }, + "required": [ + "quiz" + ], + "type": "object" +}
- Changed
edubase_post_quiz_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_quiz_questions1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_quiz_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_quiz_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_scorm_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_scorm_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_scorm_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_tag_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_tag_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_user19 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / color / descriptionPrevious value: -"desired favorite color (default/branding/red/blue/yellow/green/purple) (default: default)"New value: +"desired favorite color (default/branding/red/blue/yellow/green/purple/gray) (default: default)" - added
Input schema / properties / color / enumAdded value: +[ + "default", + "branding", + "red", + "blue", + "yellow", + "green", + "purple", + "gray" +] - added
Input schema / properties / display_name / maxLengthAdded value: +255 - added
Input schema / properties / display_name / minLengthAdded value: +1 - added
Input schema / properties / email / formatAdded value: +"email" - added
Input schema / properties / email / patternAdded value: +"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" - added
Input schema / properties / first_name / maxLengthAdded value: +64 - added
Input schema / properties / first_name / minLengthAdded value: +1 - added
Input schema / properties / full_name / maxLengthAdded value: +255 - added
Input schema / properties / full_name / minLengthAdded value: +1 - added
Input schema / properties / gender / enumAdded value: +[ + "male", + "female", + "other" +] - added
Input schema / properties / last_name / maxLengthAdded value: +64 - added
Input schema / properties / last_name / minLengthAdded value: +1 - added
Input schema / properties / password / maxLengthAdded value: +64 - added
Input schema / properties / password / minLengthAdded value: +4 - added
Input schema / properties / username / maxLengthAdded value: +64 - added
Input schema / properties / username / minLengthAdded value: +4 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "password": { + "description": "password, only if exam=false", + "type": "string" + }, + "user": { + "description": "user identification string", + "type": "string" + }, + "username": { + "description": "username, only if exam=false", + "type": "string" + } + }, + "required": [ + "user" + ], + "type": "object" +}
- Changed
edubase_post_user_assume2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "token": { + "description": "assume token", + "type": "boolean" + }, + "user": { + "description": "user identification string", + "type": "string" + }, + "valid": { + "description": "validity of the generated token", + "type": "string" + } + }, + "required": [ + "user", + "token", + "valid" + ], + "type": "object" +}
- Changed
edubase_post_user_classes3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / expires / anyOfAdded value: +[ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "string" + } +] - removed
Input schema / properties / expires / typeRemoved value: -"string"
- Changed
edubase_post_user_group2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "changed": { + "description": "group has been changed", + "type": "boolean" + }, + "success": { + "description": "operation is successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "success", + "changed" + ], + "type": "object" +}
- Changed
edubase_post_user_login8 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / examAdded value: +{ + "description": "the exam identification string to redirect the user to (mutually exclusive with redirect)", + "type": "string" +} - added
Input schema / properties / expires / anyOfAdded value: +[ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "string" + } +] - removed
Input schema / properties / expires / typeRemoved value: -"string" - added
Input schema / properties / logins / maximumAdded value: +255 - added
Input schema / properties / logins / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / logins / typePrevious value: -"number"New value: +"integer" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "count": { + "description": "maximum number the link can be used to login", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "url": { + "description": "the login link", + "format": "uri", + "type": "string" + }, + "user": { + "description": "the user identification string", + "type": "string" + }, + "valid": { + "description": "validity of the generated link", + "type": "string" + } + }, + "required": [ + "user", + "url", + "valid", + "count" + ], + "type": "object" +}
- Changed
edubase_post_user_name2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "changed": { + "description": "name has been changed", + "type": "boolean" + }, + "success": { + "description": "operation is successful", + "type": "boolean" + }, + "user": { + "description": "the user identification string", + "type": "string" + } + }, + "required": [ + "user", + "success", + "changed" + ], + "type": "object" +}
- Changed
edubase_post_user_organizations3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission_content / enumAdded value: +[ + "none", + "view", + "report", + "control", + "modify", + "grant", + "admin" +] - added
Input schema / properties / permission_organization / enumAdded value: +[ + "member", + "teacher", + "reporter", + "supervisor", + "admin" +]
- Changed
edubase_post_video_permission2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / permission / enumAdded value: +[ + "view", + "report", + "control", + "modify", + "grant", + "admin" +]
- Changed
edubase_post_video_tag1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
edubase_post_video_transfer1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
TDQS
Scored across 138 tools
There are direct duplicates/aliases such as edubase_post_class_members vs edubase_post_classes_members and edubase_post_organization_members vs edubase_post_organizations_members. Additionally, trios like post/patch/put_quiz_settings and get_question vs get_questions vs post_question_export have subtle boundaries that require careful reading to avoid misselection.
The dominant edubase_<method>_<resource> pattern is readable, but it is broken by non-verb tools like edubase_filebin and edubase_mcp_server_version, the misspelled edubase_get_quizes, and duplicate singular/plural resource names. Most names are predictable, so it is not chaotic, but the deviations are more than minor.
138 tools is far beyond the well-scoped 3-15 range; even for a broad LMS platform this creates a massive surface that is hard to navigate. The count alone makes the server unwieldy and argues for consolidation.
The toolset covers a huge amount of EduBase functionality—users, organizations, quizzes, exams, results, certificates, permissions, and webhooks—with mostly full CRUD. However, classes have no create/update/delete tools and tags cannot be created or removed, which are noticeable gaps for a platform this broad.
Maintenance
Related MCP Connectors
Connect your Moodle to AI assistants: courses, content, grading and reports from the chat.
Create, edit, translate, and export SCORM eLearning modules from a connected AI assistant.
Connect AI assistants to Subotiz - Using Subotiz's external capabilities through natural language
Connect AI assistants to Subotiz - Using Subotiz's external capabilities through natural language
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Canvas LMS and Gradescope, allowing users to query courses, assignments, modules, calendar events, and find relevant resources using natural language.7 npmISC
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with D2L Brightspace LMS, providing access to assignments, grades, course content, calendar events, and announcements through automated SSO authentication.127 npm12MIT
- AlicenseCqualityCmaintenanceProvides AI assistants with access to Examplary's exam management platform, enabling users to create and manage exams, generate questions from materials, grade student responses, and collaborate in workspaces through 60+ API endpoints.1001MIT
- AlicenseAqualityCmaintenanceEnables AI systems to interact with Canvas Learning Management System data, allowing users to access courses, assignments, quizzes, planner items, files, and syllabi through natural language queries.227MIT