EduBase MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EDUBASE_API_APP | Yes | The App ID of your integration app on EduBase, the app on the EduBase API. Find this in the integration details window on EduBase. | |
| EDUBASE_API_KEY | Yes | The Secret key of your integration app on EduBase, the secret on the EduBase API. Find this along the App ID in the integration details window on EduBase. | |
| EDUBASE_API_URL | No | The base URL of the EduBase API, most probably https://subdomain.edubase.net/api. | https://www.edubase.net/api |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| edubase_mcp_server_versionA | Get the MCP server version (only use for debugging). |
| edubase_mcp_server_apiA | Get the MCP server API URL (only use for debugging). |
| edubase_filebinA | 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. |
| edubase_post_filebin_uploadA | 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. |
| edubase_delete_filebin_uploadA | Delete an uploaded temporary file and/or its upload link, identified by the filebin identifier returned by edubase_post_filebin_upload. |
| edubase_get_questionsA | 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. |
| edubase_get_questionB | 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! |
| edubase_post_questionA | 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! |
| edubase_delete_questionA | Permanently delete a Quiz question, identified by its external unique question identifier. This cannot be undone, confirm with the user first. |
| edubase_post_question_exportA | Generate download link for exporting the question (in JSON format). If a previous valid link exists, it will be returned instead. |
| edubase_get_question_idB | Get external unique question identifier by question identification string. |
| edubase_post_question_idC | Set external unique question identifier for question identified by a question identification string. |
| edubase_get_quizesB | List owned and managed Quiz sets. Quiz sets are named collections of questions that sit at the middle level of the EduBase Quiz hierarchy. |
| edubase_get_quizC | Get/check Quiz set. Containing questions and powering Exams. |
| edubase_post_quizC | Create a new Quiz set. Quiz sets are collections of questions that can be used for practice or to power multiple Exams. |
| edubase_patch_quizA | 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. |
| edubase_get_quiz_settingsA | Get the settings of a Quiz set: question shuffling, time limits and grading. Change them with edubase_post_quiz_settings. |
| edubase_post_quiz_settingsA | 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. |
| edubase_put_quiz_settingsA | 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. |
| edubase_patch_quiz_settingsA | Copy only those settings from another Quiz set that are not configured yet in the target Quiz set. |
| edubase_delete_quizA | Delete a Quiz set, or archive it when the user is not allowed to delete it. Confirm with the user first. |
| edubase_get_quiz_grading_presetsA | 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. |
| edubase_get_quiz_grading_presetA | 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. |
| edubase_post_quiz_grading_presetA | Create a new custom grading preset. Needs the custom grading feature to be enabled. |
| edubase_patch_quiz_grading_presetA | Update an existing custom grading preset. The global presets and the presets of the organizations cannot be modified. |
| edubase_delete_quiz_grading_presetA | 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. |
| edubase_get_quiz_skillsB | Get the skills defined in a Quiz set, with the identifier, title and description of each skill. |
| edubase_get_quiz_questionsA | List all questions and question groups in a Quiz set. Quiz sets contain questions (lowest level) and can be used by exams (highest level). |
| edubase_post_quiz_questionsA | Assign question(s) to a Quiz set, or one of its question group. Questions can exist independently from Quiz sets. |
| edubase_delete_quiz_questionsA | Remove question(s) from a Quiz set, or one of its question group. |
| edubase_get_examsA | List owned and managed exams. Exams are the highest level in the EduBase Quiz hierarchy, built from Quiz sets. |
| edubase_get_examA | 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. |
| edubase_post_examA | 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. |
| edubase_patch_examA | 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. |
| edubase_delete_examA | Delete an exam, or archive it when the user is not allowed to delete it. Confirm with the user first. |
| edubase_get_exam_settingsA | 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. |
| edubase_post_exam_settingsA | 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. |
| edubase_put_exam_settingsA | 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. |
| edubase_patch_exam_settingsA | Copy only those settings from another exam that are not configured yet in the target exam. |
| edubase_get_exam_autologinA | 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. |
| edubase_post_exam_autologinA | 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. |
| edubase_delete_exam_autologinA | Disable automatic login for an exam. The PIN code and the shortlink of the exam are removed as well. |
| edubase_post_exam_users_generateA | 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. |
| edubase_get_exam_fieldsA | 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. |
| edubase_post_exam_fieldsA | 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. |
| edubase_delete_exam_fieldsA | 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. |
| edubase_get_exam_statusA | Get the status of an exam, showing whether new tests can be started. |
| edubase_post_exam_statusA | 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. |
| edubase_get_exam_roundA | 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. |
| edubase_post_exam_roundA | 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). |
| edubase_get_exam_certificatesA | 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. |
| edubase_post_exam_certificatesA | 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. |
| edubase_put_exam_certificatesA | 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. |
| edubase_delete_exam_certificatesA | 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. |
| edubase_get_exam_certificates_presetsA | 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. |
| edubase_get_exam_skillsA | Get the skills defined in the Quiz set used by an exam, with the identifier, title and description of each skill. |
| edubase_get_exam_brandingA | Get the branding of an exam: whether it is enabled, the type of the branding image (logo or cover) and the branding color. |
| edubase_post_exam_brandingA | 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. |
| edubase_delete_exam_brandingA | Remove the branding image and color from an exam. |
| edubase_get_exam_usersA | List the users assigned to an exam, with their names. Assign users with edubase_post_exam_users. |
| edubase_post_exam_usersA | Assign existing users to an exam by their user identification strings. Use edubase_post_exam_users_generate to create new exam accounts instead. |
| edubase_delete_exam_usersA | Remove users from an exam by their user identification strings. |
| edubase_post_exam_summaryA | 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). |
| edubase_get_quiz_results_playA | 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. |
| edubase_delete_quiz_results_playA | 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. |
| edubase_get_quiz_results_userA | 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. |
| edubase_get_exam_results_userA | 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. |
| edubase_get_exam_results_rawA | 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! |
| edubase_post_exam_results_exportA | 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. |
| edubase_get_exam_certificates_userA | Get (the latest) certificate details for a specific exam and user. |
| edubase_post_exam_certificates_user_downloadA | Generate download link for the latest user exam certificate. If a previous valid link exists, it will be returned instead. |
| edubase_get_usersA | 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. |
| edubase_get_user_meA | 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. |
| edubase_get_userA | 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. |
| edubase_post_userA | 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. |
| edubase_patch_userB | Enable or disable a user account, identified by its user identification string. |
| edubase_delete_userA | 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. |
| edubase_get_user_nameA | Get the first, last, full and display name of a user. |
| edubase_post_user_nameA | Update the name of a user: first and last name, optionally the full and display name. Returns whether the name was changed. |
| edubase_get_user_groupA | Get the code of the user group a user belongs to. |
| edubase_post_user_groupA | Move a user to another user group, identified by its code. Returns whether the group was changed. |
| edubase_get_user_loginA | Get the latest valid login link of a user and its validity. Generate a new link with edubase_post_user_login. |
| edubase_post_user_loginA | Generate login link. If a valid link with the same settings exists, it will be returned instead of creating a new one. |
| edubase_delete_user_loginB | Invalidate a login link previously generated for a user. |
| edubase_get_user_searchA | 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. |
| edubase_get_classesA | List owned and managed classes. Returns class identification strings, external identifiers and titles. |
| edubase_get_classA | Get the details of a class: title, external identifier, and start and end dates. |
| edubase_get_class_assignmentsA | List the assignments of a class, with their titles, links, status (INACTIVE, ACTIVE, STARTED, SUBMITTED, GRADED) and submission period. |
| edubase_get_class_membersA | List the members of a class, with their names and whether their membership is active (approved and not expired). |
| edubase_post_class_membersA | Assign user(s) to a class. Updates memberships if already member of the class. |
| edubase_delete_class_membersA | Remove users from a class by their user identification strings. |
| edubase_post_classes_membersA | Assign user(s) to class(es). Updates memberships if already member of a class. |
| edubase_get_user_classesA | List the classes a user is member of, with their titles, links and whether the membership is active. |
| edubase_post_user_classesA | Assign user to class(es). Updates membership if already member of a class. |
| edubase_delete_user_classesB | Remove a user from classes by their class identification strings. |
| edubase_get_organizationsA | List owned and managed organizations. Returns organization identification strings, external identifiers and titles. |
| edubase_get_organizationB | Get the details of an organization: title, external identifier and description. |
| edubase_post_organizationA | Create an organization with a title and optional description, website, contact details and custom fields. Returns the organization identification string. |
| edubase_patch_organizationA | Update the title or custom fields of an organization. |
| edubase_delete_organizationA | Remove an organization. Confirm with the user first. |
| edubase_get_organization_membersA | List the members of an organization, with their names, departments and permission levels (to the organization, its contents and its members). |
| edubase_post_organization_membersB | Assign user(s) to an organization. Updates memberships if already member of the organization. |
| edubase_delete_organization_membersA | Remove users from an organization by their user identification strings. |
| edubase_post_organizations_membersB | Assign user(s) to organization(s). Updates memberships if already member of an organization. |
| edubase_get_organization_departmentsA | List all departments in an organization, ordered by their hierarchy. |
| edubase_get_organization_departmentA | 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. |
| edubase_post_organization_departmentA | Create a department in an organization. Members of a department can see the members of the departments below it, but permissions are not inherited. |
| edubase_patch_organization_departmentA | Update department of an organization. Changed permissions are applied to every member of the department. |
| edubase_delete_organization_departmentA | 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. |
| edubase_get_organization_competenciesA | List all competencies of an organization. Library and competencies must be enabled for the organization. |
| edubase_get_organization_competency_requirementsA | List the requirements of a competency, ordered by their priority. Library and competencies must be enabled for the organization of the competency. |
| edubase_get_organization_complianceA | 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. |
| edubase_get_user_organizationsA | List the organizations a user is member of, with their titles, links, the department of the user and the permission levels. |
| edubase_post_user_organizationsB | Assign user to organization(s). Updates membership if already member of an organization. |
| edubase_delete_user_organizationsB | Remove a user from organizations by their organization identification strings. |
| edubase_get_organization_webhookA | Get a webhook of an organization: its title and whether it is active. |
| edubase_post_organization_webhookA | 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. |
| edubase_patch_organization_webhookB | Enable or disable a webhook of an organization. |
| edubase_delete_organization_webhookA | Remove a webhook from an organization, no more notifications are sent to its endpoint. Use edubase_patch_organization_webhook to only disable it. |
| edubase_post_organization_webhook_triggerA | Trigger an organizational webhook call with optional custom payload. Only triggers webhooks with trigger_event set to |
| edubase_get_integrationsA | List owned and managed integrations. Returns integration identification strings, external identifiers and titles. |
| edubase_get_integrationA | Get the details of an integration: title, type (api, moodle, canvas, d2l, schoology, lms), whether it is active and its LTI version. |
| edubase_post_integrationA | 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. |
| edubase_patch_integrationA | Enable or disable an integration, or move it to another organization. |
| edubase_delete_integrationA | Remove an integration. Confirm with the user first. |
| edubase_get_integration_keysA | 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. |
| edubase_post_integration_keysA | Rotate the keys and secrets of an integration and return the new ones, the previous keys stop working. Confirm with the user first. |
| edubase_get_tagsA | List owned and managed tags. Returns tag identification strings, external identifiers and titles. Attach tags to contents with edubase_post_content_tag. |
| edubase_get_tagA | Get the details of a tag: title, external identifier, color and icon. |
| edubase_get_content_tagsB | List the tags attached to a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video). |
| edubase_get_content_tagA | Check if a tag is attached to a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video). |
| edubase_post_content_tagA | 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. |
| edubase_delete_content_tagA | Remove a tag from a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video). The tag itself is kept. |
| edubase_get_content_permissionA | 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. |
| edubase_post_content_permissionA | Give a user a permission level on a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material, tag or video). |
| edubase_delete_content_permissionB | Remove a permission level of a user from a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material, tag or video). |
| edubase_post_content_transferA | 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. |
| edubase_post_metrics_customA | Set a custom metric to a value, or increment it with a + prefixed value (e.g. +1). Returns the saved value. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| edubase_prompt_create_question | Create a new question with the given subject and content. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.