Skip to main content
Glama

EduBase MCP server

pre-commit.ci status Publish

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.

EduBase MCP demo GIF: Claude uploads math questions

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: Examplary 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

files

Temporary file uploads (always enabled)

questions

Questions

quizzes

Quiz sets, their questions, settings and grading presets

exams

Exams, their settings, users, certificates, branding and journeys

results

Quiz and exam results, certificate downloads

users

Users, their names, groups and login links

classes

Classes and class memberships

organizations

Organizations, members, departments, job roles, competencies and webhooks

integrations

Integrations and their keys

tags

Tags and tag attachments of contents

permissions

User permissions on contents and ownership transfers

metrics

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.

Prompts

Prompts are ready-made workflows you can start from your MCP client (e.g. from the + or / menu). Clients supporting completions suggest values for the arguments as you type: question types, and your own exams, Quiz sets and classes.

Prompt

What it does

Arguments

Create a question (edubase_prompt_create_question)

Writes a new question and publishes it to your QuestionBase

type, subject, optional difficulty and language

Create questions from a document (edubase_prompt_questions_from_document)

Turns an attached document (or a file path or URL) into questions, after you approve the plan, optionally adding them to a Quiz set

document, optional questions (count), types, quiz and language

Create an exam (edubase_prompt_create_exam)

Generates questions about a topic, collects them into a new Quiz set and creates an exam from it

topic, questions (count), optional types (comma-separated), language and schedule

Create an exam with a journey (edubase_prompt_create_exam_journey)

Creates an exam like above, then builds and publishes a small exam journey from it, reusing related exams of your account and creating a practice Quiz set and a follow-up exam if needed

the same as Create an exam

Copy an exam (edubase_prompt_copy_exam)

Creates a new exam from the same Quiz set and settings for a new time window

exam, schedule, optional title

Assign a class to an exam (edubase_prompt_assign_class_to_exam)

Assigns the active members of a class to an exam

exam, class

Summarize exam results (edubase_prompt_summarize_exam_results)

Analyzes the results of an exam and optionally saves the summary to the exam

exam, optional focus and save (ask, yes or no)

Check an exam journey (edubase_prompt_exam_journey_status)

Shows the progress of the users on an exam journey, and who is stuck

exam

Prompts are only offered when their toolsets are enabled, and in read-only mode only the last two are offered.

When the question types of an exam are left empty, clients supporting elicitation ask for them with checkboxes. These clients also ask you to confirm the changes that cannot be undone (deleting exams, Quiz sets, questions, users, organizations and integrations, transferring ownership, starting a new exam round and rotating integration keys) before they are made. Set EDUBASE_ELICITATION=false to turn these questions off.

Resources

Reference documents are available as resources, and through the edubase_mcp_reference tool for models that cannot read resources: edubase://reference/questions (the question fields and types) and edubase://reference/exam-journeys (the portable exam journey format). They cover what the EduBase skills explain, for clients without the skills. Exams and Quiz sets can be attached as resources too (edubase://exam/{exam} and edubase://quiz/{quiz}), with your contents listed and suggested. Turn these off with EDUBASE_CONTENT_RESOURCES=false, or for a session with the EduBase-Mcp-Content-Resources: false header, the content_resources=false query parameter, or the edubaseContentResources Smithery setting.

Tools creating or changing exams, Quiz sets and journeys link to their pages in EduBase.

Configuration

The MCP server can be configured using environment variables. The following variables are available:

Variable

Description

Required

Default value

EDUBASE_API_URL

The base URL of the EduBase API, most probably https://subdomain.edubase.net/api.

Yes

https://www.edubase.net/api

EDUBASE_API_APP

The App ID of your integration app on EduBase, the app on the EduBase API. Find this in the integration details window on EduBase.

Not if HTTP transport is used with authentication, otherwise Yes

-

EDUBASE_API_KEY

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.

Not if HTTP transport is used with authentication, otherwise Yes

-

EDUBASE_SSE_MODE

Start MCP server in HTTP mode with SSE transport. Value must be true.

No

false

EDUBASE_STREAMABLE_HTTP_MODE

Start MCP server in HTTP mode with streamable HTTP transport. Value must be true.

No

false

EDUBASE_TOOLSETS

Comma-separated list of the enabled toolsets, or all.

No

all

EDUBASE_READONLY

Only expose the tools that read data. Value must be true.

No

false

EDUBASE_OUTPUT_SCHEMAS

Output schemas of the tools and structured tool results: off lists the tools without output schemas and returns the results as JSON text only, on includes the complete output schemas, fields includes the output schemas without the field descriptions (keeping the structured results, but saving most of the tokens of the schemas).

No

fields

EDUBASE_CONFIG_PROVIDERS

Comma-separated list of the hosting providers allowed to supply session configuration in the requests when an HTTP transport is used. Currently only smithery is supported (the base64-encoded config query parameter).

No

-

EDUBASE_CONTENT_RESOURCES

List the exams and Quiz sets of the account as resources. Set to false to turn them off, e.g. when the server is inspected without credentials. The reference documents stay available.

No

true

EDUBASE_DYNAMIC_TOOLSETS

Start sessions with only the file upload tools and let the model enable toolsets on demand. Value must be true.

No

false

EDUBASE_ELICITATION

Ask the user through the client to confirm the changes that cannot be undone and to pick the question types of the prompts, if the client supports elicitation. Set to false to turn it off.

No

true

EDUBASE_HTTP_PORT

HTTP server will listen on this port if SSE or streamable HTTP transport mode is used.

No

3000

EDUBASE_OAUTH

Enables OAuth 2.1 protected-resource behaviour: unauthenticated requests are rejected with 401 + WWW-Authenticate pointing at /.well-known/oauth-protected-resource/mcp, and bearer tokens are forwarded to the EduBase API.

No

false

EDUBASE_OAUTH_AUTHORIZATION_SERVER

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 EDUBASE_API_URL

EDUBASE_OAUTH_RESOURCE_URL

Public base URL of this MCP server (the OAuth resource indicator). Used in the WWW-Authenticate header and resource metadata.

No

derived from EDUBASE_API_URL

EDUBASE_ALLOW_PRIVATE_NETWORK

When an HTTP transport is used, the edubase_filebin tool blocks outbound requests to private, loopback, link-local and reserved addresses (SSRF protection) and refuses local file paths. Set to true to allow them, e.g. a self-hosted deployment on a trusted private network. Has no effect in stdio mode, where the local user is the only caller.

No

false

EDUBASE_FILEBIN_ALLOWED_HOSTS

Optional comma-separated allow-list of hostnames permitted as edubase_filebin upload targets (exact host or any subdomain, e.g. edubase.net). When empty, any public host is allowed (still subject to the address filtering above).

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_APP and EDUBASE_API_KEY as 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! The image is available for linux/amd64 and linux/arm64 on Docker Hub as edubase/mcp and on GitHub Packages as ghcr.io/edubase/mcp.

{
  "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 claude

Development

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.

The reference documents in src/references are generated from the EduBase developer documentation, regenerate them with node scripts/sync-references.mjs <path to the developer documentation repository> when the question fields or the exam journey format change.

Merging a pull request labelled major, minor or patch commits the next version to main and starts the Publish workflow, which publishes the package to npm and the MCP Registry and the container image to Docker Hub and GitHub Packages, and tags the commit and creates a GitHub release once all of them succeeded. Without one of these labels nothing is released. A version set by hand in the pull request is released as it is. The commit, the tag and the release come from a dedicated release app, whose credentials are in the release environment. The Publish workflow runs the tests first, checks the built image before pushing it, and signs in to Docker Hub with OIDC, using the DOCKERHUB_OIDC_CONNECTIONID and DOCKERHUB_OIDC_USERNAME variables. It pushes to GitHub Packages with the job's GITHUB_TOKEN, as GitHub refuses GitHub App tokens there. Run it by hand with a version to retry or rebuild a release: whatever is already on npm and the MCP Registry is skipped, and latest only moves for the newest release.

Documentation sync point: tools, prompts and references last synced 2026-11-06 against the Developer documentation synced to EduBase release 8.6.6 (the documentation pull request for 8.6.6), checked against the EduBase at commit a29c6af51. To bring the server forward, run git log --oneline <commit>..HEAD and git diff <commit>..HEAD -- docs/api/endpoints in the developer documentation repository, from the commit of the documentation pull request for 8.6.6, update the affected tools in src/tools (and their prompts and toolset guides), regenerate the reference documents, and move this marker to the new HEAD commits. Where the two differ, the EduBase repository wins.

Contact

Website: www.edubase.net
Developer Documentation: developer.edubase.net
Email: info@edubase.net

Available Tools

153 tools
edubase_delete_class_membersA
DestructiveIdempotent
Inspect

Remove users from a class by their user identification strings.

Inputs: class (required), users (required).

edubase_delete_content_permissionB
DestructiveIdempotent
Inspect

Remove a permission level of a user from a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material, tag or video).

Inputs: type (required), user (required), content (required), permission (required). Returns: user, content, success

edubase_delete_content_tagA
DestructiveIdempotent
Inspect

Remove a tag from a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video). The tag itself is kept.

Inputs: tag (required), type (required), content (required). Returns: tag, content, success

edubase_delete_examA
DestructiveIdempotent
Inspect

Delete an exam, or archive it when the user is not allowed to delete it. Confirm with the user first.

Inputs: exam (required).

edubase_delete_exam_autologinA
DestructiveIdempotent
Inspect

Disable automatic login for an exam. The PIN code and the shortlink of the exam are removed as well.

Inputs: exam (required).

edubase_delete_exam_brandingA
DestructiveIdempotent
Inspect

Remove the branding image and color from an exam.

Inputs: exam (required).

edubase_delete_exam_certificatesA
DestructiveIdempotent
Inspect

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.

Inputs: exam (required). Returns: exam, notes, renew, text1, +51 more

edubase_delete_exam_fieldsA
DestructiveIdempotent
Inspect

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.

Inputs: exam (required).

edubase_delete_exam_usersA
DestructiveIdempotent
Inspect

Remove users from an exam by their user identification strings.

Inputs: exam (required), users (required).

edubase_delete_filebin_uploadA
DestructiveIdempotent
Inspect

Delete an uploaded temporary file and/or its upload link, identified by the filebin identifier returned by edubase_post_filebin_upload.

Inputs: id (required).

edubase_delete_integrationA
DestructiveIdempotent
Inspect

Remove an integration. Confirm with the user first.

Inputs: integration (required).

edubase_delete_organizationA
DestructiveIdempotent
Inspect

Remove an organization. Confirm with the user first.

Inputs: organization (required).

edubase_delete_organization_departmentA
DestructiveIdempotent
Inspect

Remove department from an organization. Members of the department are left without a department and lose the permissions (except for the custom ones, which are kept) and competencies given by it, departments below it are moved one level up.

Inputs: department (required), organization (required).

edubase_delete_organization_jobA
DestructiveIdempotent
Inspect

Remove job role from an organization. Members with the job role are left without a job role and lose the competencies given by it.

Inputs: job (required), organization (required).

edubase_delete_organization_membersA
DestructiveIdempotent
Inspect

Remove users from an organization by their user identification strings.

Inputs: users (required), organization (required).

edubase_delete_organization_webhookA
DestructiveIdempotent
Inspect

Remove a webhook from an organization, no more notifications are sent to its endpoint. Use edubase_patch_organization_webhook to only disable it.

Inputs: webhook (required), organization (required).

edubase_delete_questionA
DestructiveIdempotent
Inspect

Permanently delete a Quiz question, identified by its external unique question identifier. This cannot be undone, confirm with the user first.

Inputs: id (required).

edubase_delete_quizA
DestructiveIdempotent
Inspect

Delete a Quiz set, or archive it when the user is not allowed to delete it. Confirm with the user first.

Inputs: quiz (required).

edubase_delete_quiz_grading_presetA
DestructiveIdempotent
Inspect

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.

Inputs: preset (required).

edubase_delete_quiz_questionsA
DestructiveIdempotent
Inspect

Remove question(s) from a Quiz set, or one of its question group.

Inputs: quiz (required), questions (required), group.

edubase_delete_quiz_results_playA
DestructiveIdempotent
Inspect

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.

Inputs: play (required).

edubase_delete_userA
DestructiveIdempotent
Inspect

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.

Inputs: user (required).

edubase_delete_user_classesB
DestructiveIdempotent
Inspect

Remove a user from classes by their class identification strings.

Inputs: user (required), classes (required).

edubase_delete_user_loginB
DestructiveIdempotent
Inspect

Invalidate a login link previously generated for a user.

Inputs: url (required), user (required).

edubase_delete_user_organizationsB
DestructiveIdempotent
Inspect

Remove a user from organizations by their organization identification strings.

Inputs: user (required), organizations (required).

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.

Inputs: source (required), filebin (required), filename (required).

edubase_get_classA
Read-onlyIdempotent
Inspect

Get the details of a class: title, external identifier, and start and end dates.

Inputs: class (required). Returns: id, end, class, start, +1 more

edubase_get_class_assignmentsA
Read-onlyIdempotent
Inspect

List the assignments of a class, with their titles, links, status (INACTIVE, ACTIVE, STARTED, SUBMITTED, GRADED) and submission period.

Inputs: class (required). Returns: assignments

edubase_get_classesA
Read-onlyIdempotent
Inspect

List owned and managed classes. Returns class identification strings, external identifiers and titles.

Inputs: page, limit, search. Returns: classes

edubase_get_class_membersA
Read-onlyIdempotent
Inspect

List the members of a class, with their names and whether their membership is active (approved and not expired).

Inputs: class (required). Returns: members

edubase_get_content_permissionA
Read-onlyIdempotent
Inspect

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.

Inputs: type (required), user (required), content (required), permission (required). Returns: user, status, content

edubase_get_content_tagA
Read-onlyIdempotent
Inspect

Check if a tag is attached to a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video).

Inputs: tag (required), type (required), content (required). Returns: tag, status, content

edubase_get_content_tagsB
Read-onlyIdempotent
Inspect

List the tags attached to a content (class, course, event, exam, integration, organization, Quiz set, SCORM learning material or video).

Inputs: type (required), content (required). Returns: tags

edubase_get_examA
Read-onlyIdempotent
Inspect

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.

Inputs: exam (required). Returns: id, end, exam, quiz, +10 more

edubase_get_exam_autologinA
Read-onlyIdempotent
Inspect

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.

Inputs: exam (required). Returns: pin, url, exam, autoadd, +4 more

edubase_get_exam_brandingA
Read-onlyIdempotent
Inspect

Get the branding of an exam: whether it is enabled, the type of the branding image (logo or cover) and the branding color.

Inputs: exam (required). Returns: exam, type, color, enabled

edubase_get_exam_certificatesA
Read-onlyIdempotent
Inspect

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.

Inputs: exam (required). Returns: exam, notes, renew, text1, +51 more

edubase_get_exam_certificates_presetsA
Read-onlyIdempotent
Inspect

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.

Inputs: exam, language. Returns: exam, presets

edubase_get_exam_certificates_userA
Read-onlyIdempotent
Inspect

Get (the latest) certificate details for a specific exam and user.

Inputs: exam (required), user (required). Returns: play, user, serial, expires, +3 more

edubase_get_exam_fieldsA
Read-onlyIdempotent
Inspect

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.

Inputs: exam (required). Returns: exam, name, email, phone, +1 more

edubase_get_exam_journeyA
Read-onlyIdempotent
Inspect

Get the status of the journey started by an exam: the number of users at the steps, their statuses, and the outcomes of the finished journeys. Exam journeys chain exams, classes and Quiz sets into a learning path with decisions, starting when the users start the exam. Only the visible organizational members are counted. Use edubase_get_exam_journey_user for a single user and edubase_get_exam_journey_graph for the structure.

Inputs: exam (required). Returns: exam, steps, users, active, +4 more

edubase_get_exam_journey_graphA
Read-onlyIdempotent
Inspect

Export the draft or the published journey started by an exam in the portable JSON format. Use the edubase-exam-journeys skill to work with the format, or read the format with edubase_mcp_reference if the skill is not available.

Inputs: exam (required), graph. Returns: exam, graph, nodes, active, +9 more

edubase_get_exam_journey_userA
Read-onlyIdempotent
Inspect

Get the journey of a user started by an exam: the status, the current step (with its deadline and the progress of a bundle), the history of the visited steps with their results and the decisions taken, and the manual changes made by the educators.

Inputs: exam (required), user (required). Returns: run, exam, step, user, +16 more

edubase_get_exam_reportA
Read-onlyIdempotent
Inspect

List the reports of an exam that can be downloaded with edubase_post_exam_report, and the custom user data filters they can be narrowed down with. The list is empty while the exam has no examinees or results. Needs reporting permission for the exam.

Inputs: exam (required). Returns: exam, filters, reports

edubase_get_exam_results_rawA
Read-onlyIdempotent
Inspect

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!

Inputs: exam (required). Returns: exam, users, questions

edubase_get_exam_results_userA
Read-onlyIdempotent
Inspect

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.

Inputs: exam (required), user (required). Returns: results

edubase_get_exam_roundA
Read-onlyIdempotent
Inspect

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.

Inputs: exam (required). Returns: exam, round, frozen, results, +1 more

edubase_get_examsA
Read-onlyIdempotent
Inspect

List owned and managed exams. Exams are the highest level in the EduBase Quiz hierarchy, built from Quiz sets.

Inputs: page, limit, active, search. Returns: exams

edubase_get_exam_settingsA
Read-onlyIdempotent
Inspect

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.

Inputs: exam (required). Returns: exam, archive, grading, pausable, +27 more

edubase_get_exam_skillsA
Read-onlyIdempotent
Inspect

Get the skills defined in the Quiz set used by an exam, with the identifier, title and description of each skill.

Inputs: exam (required). Returns: exam, skills

edubase_get_exam_statusA
Read-onlyIdempotent
Inspect

Get the status of an exam, showing whether new tests can be started.

Inputs: exam (required). Returns: exam, active, status, modified, +1 more

edubase_get_exam_usersA
Read-onlyIdempotent
Inspect

List the users assigned to an exam, with their names. Assign users with edubase_post_exam_users.

Inputs: exam (required). Returns: users

edubase_get_integrationA
Read-onlyIdempotent
Inspect

Get the details of an integration: title, type (api, moodle, canvas, d2l, schoology, lms), whether it is active and its LTI version.

Inputs: integration (required). Returns: id, lti, type, title, +2 more

edubase_get_integration_keysA
Read-onlyIdempotent
Inspect

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.

Inputs: integration (required). Returns: app, jwk, pem, secret, +1 more

edubase_get_integrationsA
Read-onlyIdempotent
Inspect

List owned and managed integrations. Returns integration identification strings, external identifiers and titles.

Inputs: page, limit, search. Returns: integrations

edubase_get_organizationB
Read-onlyIdempotent
Inspect

Get the details of an organization: title, external identifier and description.

Inputs: organization (required). Returns: id, title, description, organization

edubase_get_organization_competenciesA
Read-onlyIdempotent
Inspect

List all competencies of an organization. Library and competencies must be enabled for the organization.

Inputs: organization (required). Returns: competencies, organization

edubase_get_organization_competency_requirementsA
Read-onlyIdempotent
Inspect

List the requirements of a competency, ordered by their priority. Library and competencies must be enabled for the organization of the competency.

Inputs: competency (required), organization. Returns: id, title, competency, organization, +1 more

edubase_get_organization_complianceA
Read-onlyIdempotent
Inspect

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. Can be limited to the members of a job role. Library and competencies must be enabled for the organization.

Inputs: organization (required), job. Returns: scope, status, assigned, departments, +2 more

edubase_get_organization_departmentA
Read-onlyIdempotent
Inspect

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.

Inputs: department (required), organization (required). Returns: id, level, parent, leaders, +5 more

edubase_get_organization_departmentsA
Read-onlyIdempotent
Inspect

List all departments in an organization, ordered by their hierarchy.

Inputs: organization (required). Returns: departments, organization

edubase_get_organization_jobB
Read-onlyIdempotent
Inspect

Get a job role of an organization, identified by its name or external identifier.

Inputs: job (required), organization (required). Returns: id, job, members, organization

edubase_get_organization_jobsA
Read-onlyIdempotent
Inspect

List all job roles in an organization, ordered by their name. Competencies can be assigned to job roles, so every member with the job role gets them automatically.

Inputs: organization (required). Returns: jobs, organization

edubase_get_organization_membersA
Read-onlyIdempotent
Inspect

List the members of an organization, with their names, departments, job roles, permission levels (to the organization, its contents and its members) and management restrictions.

Inputs: organization (required). Returns: members

edubase_get_organizationsA
Read-onlyIdempotent
Inspect

List owned and managed organizations. Returns organization identification strings, external identifiers and titles.

Inputs: page, limit, search. Returns: organizations

edubase_get_organization_webhookA
Read-onlyIdempotent
Inspect

Get a webhook of an organization: its title and whether it is active.

Inputs: webhook (required), organization (required). Returns: title, active, webhook, organization

edubase_get_questionB
Read-onlyIdempotent
Inspect

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!

Inputs: id (required). Returns: ai, id, active, question, +1 more

edubase_get_question_idB
Read-onlyIdempotent
Inspect

Get external unique question identifier by question identification string.

Inputs: question (required). Returns: id, question

edubase_get_questionsA
Read-onlyIdempotent
Inspect

List owned and managed Quiz questions. Returns the question identification strings, external identifiers and AI generated markings. Use edubase_post_question_export to read the content of a question.

Inputs: page, limit, search. Returns: questions

edubase_get_quizC
Read-onlyIdempotent
Inspect

Get/check Quiz set. Containing questions and powering Exams.

Inputs: quiz (required). Returns: id, quiz, title, language, +1 more

edubase_get_quizesB
Read-onlyIdempotent
Inspect

List owned and managed Quiz sets. Quiz sets are named collections of questions that sit at the middle level of the EduBase Quiz hierarchy.

Inputs: page, limit, search. Returns: quizes

edubase_get_quiz_grading_presetA
Read-onlyIdempotent
Inspect

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.

Inputs: preset (required). Returns: own, type, used, title, +7 more

edubase_get_quiz_grading_presetsA
Read-onlyIdempotent
Inspect

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.

Inputs: exam, quiz, language. Returns: exam, quiz, presets

edubase_get_quiz_questionsB
Read-onlyIdempotent
Inspect

List all questions and question groups in a Quiz set. Quiz sets contain questions (lowest level) and can be used by exams (highest level).

Inputs: quiz (required). Returns: items

edubase_get_quiz_reportA
Read-onlyIdempotent
Inspect

List the reports of a Quiz set that can be downloaded with edubase_post_quiz_report. Only the results outside of exams are reported, the list is empty while there are no such results. Needs reporting permission for the Quiz set.

Inputs: quiz (required). Returns: quiz, reports

edubase_get_quiz_results_playA
Read-onlyIdempotent
Inspect

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.

Inputs: play (required). Returns: play, user, valid, time_end, +7 more

edubase_get_quiz_results_userA
Read-onlyIdempotent
Inspect

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.

Inputs: quiz (required), user (required). Returns: results

edubase_get_quiz_settingsA
Read-onlyIdempotent
Inspect

Get the settings of a Quiz set: question shuffling, time limits and grading. Change them with edubase_post_quiz_settings.

Inputs: quiz (required). Returns: quiz, grading, shuffle, roundtime, +2 more

edubase_get_quiz_skillsB
Read-onlyIdempotent
Inspect

Get the skills defined in a Quiz set, with the identifier, title and description of each skill.

Inputs: quiz (required). Returns: quiz, skills

edubase_get_tagA
Read-onlyIdempotent
Inspect

Get the details of a tag: title, external identifier, color and icon.

Inputs: tag (required). Returns: id, tag, icon, color, +1 more

edubase_get_tagsA
Read-onlyIdempotent
Inspect

List owned and managed tags. Returns tag identification strings, external identifiers and titles. Attach tags to contents with edubase_post_content_tag.

Inputs: page, limit, search. Returns: tags

edubase_get_userA
Read-onlyIdempotent
Inspect

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.

Inputs: user (required). Returns: exam, name, user, status

edubase_get_user_classesA
Read-onlyIdempotent
Inspect

List the classes a user is member of, with their titles, links and whether the membership is active.

Inputs: user (required). Returns: classes

edubase_get_user_groupA
Read-onlyIdempotent
Inspect

Get the code of the user group a user belongs to.

Inputs: user (required). Returns: user, group

edubase_get_user_loginA
Read-onlyIdempotent
Inspect

Get the latest valid login link of a user and its validity. Generate a new link with edubase_post_user_login.

Inputs: user (required). Returns: url, user, valid

edubase_get_user_meA
Read-onlyIdempotent
Inspect

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.

Inputs: no named parameters. Returns: exam, name, user, status

edubase_get_user_nameA
Read-onlyIdempotent
Inspect

Get the first, last, full and display name of a user.

Inputs: user (required). Returns: user, full_name, last_name, first_name, +1 more

edubase_get_user_organizationsA
Read-onlyIdempotent
Inspect

List the organizations a user is member of, with their titles, links, the department of the user, the permission levels and the management restrictions.

Inputs: user (required). Returns: organizations

edubase_get_usersA
Read-onlyIdempotent
Inspect

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.

Inputs: page, limit, search. Returns: users

edubase_mcp_referenceA
Read-onlyIdempotent
Inspect

Read a reference document of EduBase formats, for writing questions and exam journeys without the EduBase skills: questions (Fields of edubase_post_question with the question types, formatting, parameters, scoring and the other options, with examples.), exam-journeys (Portable JSON format of the exam journeys (nodes, their configuration, conditions and settings), used by edubase_get_exam_journey_graph and edubase_put_exam_journey_graph.)

Inputs: reference (required).

edubase_mcp_server_apiA
Read-onlyIdempotent
Inspect

Get the MCP server API URL (only use for debugging).

Inputs: no named parameters.

edubase_mcp_server_versionA
Read-onlyIdempotent
Inspect

Get the MCP server version (only use for debugging).

Inputs: no named parameters.

edubase_patch_examA
Idempotent
Inspect

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.

Inputs: exam (required), id, end, start, +5 more.

edubase_patch_exam_settingsA
Idempotent
Inspect

Copy only those settings from another exam that are not configured yet in the target exam.

Inputs: exam (required), source (required), keep_certificate_settings. Returns: exam, source

edubase_patch_integrationA
Idempotent
Inspect

Enable or disable an integration, or move it to another organization.

Inputs: integration (required), active, organization.

edubase_patch_organizationA
Idempotent
Inspect

Update the title or custom fields of an organization.

Inputs: organization (required), title, custom.

edubase_patch_organization_departmentB
Idempotent
Inspect

Update department of an organization. Changed permissions are applied to the members of the department, except for the ones with custom permission levels.

Inputs: department (required), organization (required), id, title, +6 more.

edubase_patch_organization_jobB
Idempotent
Inspect

Update the name or the external identifier of a job role in an organization. Members keep the job role and its competencies.

Inputs: job (required), organization (required), id, title.

edubase_patch_organization_webhookB
Idempotent
Inspect

Enable or disable a webhook of an organization.

Inputs: webhook (required), organization (required), active.

edubase_patch_quizA
Idempotent
Inspect

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.

Inputs: quiz (required), id, title, language, +2 more.

edubase_patch_quiz_grading_presetA
Idempotent
Inspect

Update an existing custom grading preset. The global presets and the presets of the organizations cannot be modified.

Inputs: preset (required), type, title, grades, +2 more. Returns: own, type, used, title, +7 more

edubase_patch_quiz_settingsA
Idempotent
Inspect

Copy only those settings from another Quiz set that are not configured yet in the target Quiz set.

Inputs: quiz (required), source (required). Returns: quiz, source

edubase_patch_userB
Idempotent
Inspect

Enable or disable a user account, identified by its user identification string.

Inputs: user (required), active.

edubase_post_classes_membersAInspect

Assign user(s) to class(es). Updates memberships if already member of a class.

Inputs: users (required), classes (required), notify, expires.

edubase_post_class_membersAInspect

Assign user(s) to a class. Updates memberships if already member of the class.

Inputs: class (required), users (required), notify, expires.

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).

Inputs: type (required), user (required), content (required), permission (required). Returns: user, content, success

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.

Inputs: tag (required), type (required), content (required). Returns: tag, content, success

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.

Inputs: type (required), user (required), content (required). Returns: user, content, success

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.

Inputs: end (required), quiz (required), start (required), title (required), +6 more. Returns: exam

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.

Inputs: exam (required), se, autoadd, autojoin, +1 more. Returns: pin, url, exam, autoadd, +4 more

edubase_post_exam_brandingBInspect

Configure or update the branding of an exam with an image (used as a logo or as a cover) and a color.

Inputs: exam (required), color (required), image (required), type.

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.

Inputs: exam (required), notes, renew, text1, +49 more. Returns: exam, notes, renew, text1, +51 more

edubase_post_exam_certificates_user_downloadA
Read-only
Inspect

Generate download link for the latest user exam certificate. If a previous valid link exists, it will be returned instead.

Inputs: exam (required), user (required). Returns: url, play, user, valid

edubase_post_exam_fieldsCInspect

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.

Inputs: exam (required), name, email, phone, +1 more. Returns: exam, name, email, phone, +1 more

edubase_post_exam_journey_publishAInspect

Publish the draft of the journey started by an exam, so the users continue on the new version. The draft can only be published if it has no errors (see the issues of edubase_get_exam_journey_graph). If some users are on nodes removed from the draft, a new node has to be specified for each of them with remap, otherwise the journey is not published and the affected nodes are listed in the error message. Needs the exam journeys feature to be enabled.

Inputs: exam (required), remap. Returns: exam, active, issues, journey, +5 more

edubase_post_exam_reportA
Read-only
Inspect

Generate a download link for a report of an exam. The link is not authenticated, it can only be used once and expires in an hour. Only the examinees visible for the current user are included. Needs reporting permission for the exam.

Inputs: exam (required), report (required), round, format, +2 more. Returns: url, exam, valid, format, +1 more

edubase_post_exam_results_exportA
Read-only
Inspect

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.

Inputs: exam (required), sort, round, format, +3 more. Returns: url, exam, valid, format

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).

Inputs: exam (required), force, notify. Returns: exam, round, frozen, results, +1 more

edubase_post_exam_settingsBInspect

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.

Inputs: exam (required), archive, grading, pausable, +25 more. Returns: exam, archive, grading, pausable, +27 more

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.

Inputs: exam (required), status (required). Returns: exam, active, status, modified, +1 more

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).

Inputs: exam (required), summary (required), llm, type, +2 more.

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.

Inputs: exam (required), users (required).

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.

Inputs: exam (required), name, count, names, +4 more. Returns: exam, users, failed, duplicate

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 (optionally prefixed with filebin:) in the fields accepting files: question images, attachments and audio, exam branding images, and the signature, stamp and logo images of exam certificates. Only the uploading user can use the file. A previous valid link is returned unless force is set.

Inputs: type (required), force. Returns: id, url, limit, valid

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.

Inputs: title (required), lti, type, platform, +2 more. Returns: integration

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.

Inputs: integration (required). Returns: app, jwk, pem, secret, +1 more

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.

Inputs: value (required), metric (required). Returns: value, metric

edubase_post_organizationAInspect

Create an organization with a title and optional description, website, contact details and custom fields. Returns the organization identification string.

Inputs: title (required), email, phone, custom, +3 more. Returns: organization

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.

Inputs: title (required), organization (required), id, parent, +4 more. Returns: id, department, organization

edubase_post_organization_jobAInspect

Create a job role in an organization. Members can have one job role each, which can be used to assign competencies automatically.

Inputs: title (required), organization (required), id. Returns: id, job, organization

edubase_post_organization_membersAInspect

Assign user(s) to an organization. Updates memberships if already member of the organization.

Inputs: users (required), organization (required), job, notify, +7 more.

edubase_post_organizations_membersBInspect

Assign user(s) to organization(s). Updates memberships if already member of an organization.

Inputs: users (required), organizations (required), job, notify, +7 more.

edubase_post_organization_webhookAInspect

Create a webhook for an organization, called on exam results, Quiz practice results, finished exam journeys or manual API triggers, with optional authentication and retries. Returns the webhook identification string. Test it with edubase_post_organization_webhook_trigger.

Inputs: title (required), endpoint (required), organization (required), trigger_event (required), +9 more. Returns: webhook, organization

edubase_post_organization_webhook_triggerAInspect

Trigger an organizational webhook call with optional custom payload. Only triggers webhooks with trigger_event set to api!.

Inputs: webhook (required), organization (required), data.

edubase_post_questionAInspect

Publish or update a question, re-posting the same id updates it. Use the edubase-question-creator skill to choose the type and fill in the fields (or read the questions reference with edubase_mcp_reference if the skill is not available): the fields named after a question type are needed for that type (e.g. hotspot_image and hotspot_zones for HOTSPOT). Separate multiple values with &&&. File fields take filename=data, where data is a filebin identifier (preferred, see edubase_post_filebin_upload), base64 data or a URL.

Inputs: ai (required), id (required), type (required), answer (required), +75 more. Returns: question

edubase_post_question_exportA
Read-only
Inspect

Generate download link for exporting the question (in JSON format). If a previous valid link exists, it will be returned instead.

Inputs: id (required). Returns: id, url, valid, question

edubase_post_question_idCInspect

Set external unique question identifier for question identified by a question identification string.

Inputs: id (required), question (required).

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.

Inputs: title (required), id, mode, type, +5 more. Returns: quiz

edubase_post_quiz_grading_presetAInspect

Create a new custom grading preset. Needs the custom grading feature to be enabled.

Inputs: type (required), title (required), grades (required), language, +1 more. Returns: preset

edubase_post_quiz_questionsAInspect

Assign question(s) to a Quiz set, or one of its question group. Questions can exist independently from Quiz sets.

Inputs: quiz (required), questions (required), group.

edubase_post_quiz_reportA
Read-only
Inspect

Generate a download link for a report of a Quiz set. The link is not authenticated, it can only be used once and expires in an hour. Needs reporting permission for the Quiz set.

Inputs: quiz (required), report (required), format, language. Returns: url, quiz, valid, format, +1 more

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.

Inputs: quiz (required), grading, shuffle, roundtime, +2 more. Returns: quiz, grading, shuffle, roundtime, +2 more

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.

Inputs: email (required), username (required), last_name (required), first_name (required), +15 more. Returns: user, password, username

edubase_post_user_classesAInspect

Assign user to class(es). Updates membership if already member of a class.

Inputs: user (required), classes (required), notify, expires.

edubase_post_user_groupAInspect

Move a user to another user group, identified by its code. Returns whether the group was changed.

Inputs: user (required), group (required). Returns: user, changed, success

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.

Inputs: user (required), exam, short, logins, +3 more. Returns: url, user, count, valid

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.

Inputs: user (required), last_name (required), first_name (required), full_name, +1 more. Returns: user, changed, success

edubase_post_user_organizationsBInspect

Assign user to organization(s). Updates membership if already member of an organization.

Inputs: user (required), organizations (required), job, notify, +7 more.

edubase_put_exam_certificatesA
Idempotent
Inspect

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.

Inputs: exam (required), preset, source. Returns: exam, notes, renew, text1, +51 more

edubase_put_exam_journey_graphA
Idempotent
Inspect

Replace the draft of the journey started by an exam with a journey in the portable JSON format (creating and enabling the journey if needed). Publish it with edubase_post_exam_journey_publish. Use the edubase-exam-journeys skill to build the nodes and settings, or read the format with edubase_mcp_reference if the skill is not available.

Inputs: exam (required), nodes (required), schema, settings. Returns: exam, graph, nodes, active, +10 more

edubase_put_exam_settingsA
Idempotent
Inspect

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. The questionless setting is only copied if not a survey or championship, and it is kept unchanged while the current round of the target exam already has results.

Inputs: exam (required), source (required), keep_certificate_settings. Returns: exam, source

edubase_put_quiz_settingsA
Idempotent
Inspect

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.

Inputs: quiz (required), source (required). Returns: quiz, source

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 153 tools

    Disambiguation3/5

    Most tools target distinct resource-action pairs, but the set contains many near-duplicates that are easy to confuse, such as edubase_post_class_members vs edubase_post_classes_members, edubase_post_user_classes vs edubase_post_user_organizations, and the get/post/patch/put variants for settings. The detailed descriptions help clarify boundaries, but with 153 tools there is still meaningful misselection risk.

    Naming Consistency4/5

    Nearly all tools follow a predictable edubase_ prefix plus HTTP-style verb and resource noun, such as edubase_get_exam, edubase_post_quiz, and edubase_delete_organization_webhook. Minor deviations like edubase_filebin, edubase_mcp_reference, the typo edubase_get_quizes, and singular/plural variants slightly reduce consistency.

    Tool Count1/5

    153 tools is far beyond a practical MCP tool surface, even for a broad education platform API. The count creates excessive context burden and makes tool selection difficult; this server would benefit from curation or splitting into narrower tool groups.

    Completeness3/5

    Core assessment workflows around questions, quizzes, exams, users, classes, organizations, integrations, tags, permissions, and reporting are covered extensively. However, there are notable gaps such as no create/update/delete tools for classes or tags, and no management tools for courses, events, SCORM materials, or videos despite those content types being referenced in tag and permission tools.

    Maintenance

    ActivityNo data
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers