MCP ExplorerExplorer

EduBase MCP server

@EduBaseon 11 days ago
12 MIT
FreeOfficial
MCP Tools
#education#learning#quiz#assessment#API
<img src="https://static.edubase.net/media/brand/title/color.png" alt="EduBase logo" height="150" />

Overview

What is EduBase MCP server

EduBase MCP server is an implementation of the Model Context Protocol designed for the EduBase platform. It facilitates interactions between MCP clients and LLMs with your EduBase account, allowing them to perform tasks automatically on your behalf.

Use cases

The MCP server can be utilized in educational settings, corporate training, and anywhere interactive learning is needed. It supports collaborative content creation, automated grading, scheduling exams, and analyzing user results, making it suitable for both institutional and enterprise environments.

How to use

To deploy the EduBase MCP server, you can follow instructions for manual installation using Node.js or Docker, or automate installation via Smithery. Configuration requires setting specific environmental variables, including API URL and credentials, in your application configuration file.

Key features

Key features of EduBase include an advanced quiz system with real-time cheating detection, a unified learning environment for diverse content, enterprise-grade security measures, extensive integration options, and AI-Assisted Tools for creating interactive educational materials.

Where to use

EduBase is applicable in higher education institutions, corporate training departments, and other educational environments seeking to enhance digital learning experiences. The platform is adaptable to a variety of learning needs and supports collaboration across devices.

Content

EduBase logo

EduBase MCP server

pre-commit.ci status
smithery badge

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:

Demonstrating EduBase's MCP server to collaboratively create and upload questions, schedule exams and analyze results.

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 [email protected].

EduBase API credentials page

Tools

Each documented API endpoint is available as a separate tool, named edubase_<method>_<endpoint>. For example, the tool for the GET /user endpoint is named edubase_get_user. See our developer documentation for more information.

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_HTTP_PORT HTTP server will listen on this port if SSE or streamable HTTP transport mode is used. No 3000

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.

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.

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. Download EduBase MCP server release or clone the repository and run npm run build to build the server. Do not forget to adjust /path/to/dist to the actual directory and configure the environmental variables!

{
  "mcpServers": {
    "edubase": {
      "command": "node",
      "args": [
        "/path/to/dist/index.js"
      ],
      "env": {
        "EDUBASE_API_URL": "https://domain.edubase.net/api",
        "EDUBASE_API_APP": "your_integration_app_id",
        "EDUBASE_API_KEY": "your_integration_secret_key"
      }
    }
  }
}

Using Docker

Before running the MCP server, make sure you have Docker installed and is running. You can download it from docker.com or use a package manager. Do not forget to configure the environmental variables!

{
  "mcpServers": {
    "edubase": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "EDUBASE_API_URL",
        "-e",
        "EDUBASE_API_APP",
        "-e",
        "EDUBASE_API_KEY",
        "edubase/mcp"
      ],
      "env": {
        "EDUBASE_API_URL": "https://domain.edubase.net/api",
        "EDUBASE_API_APP": "your_integration_app_id",
        "EDUBASE_API_KEY": "your_integration_secret_key"
      }
    }
  }
}

Installing via remote MCP server

You can use the provided EduBase MCP server (if available) as a remote server. We recommend Base64 encoding your EDUBASE_API_APP and EDUBASE_API_KEY and using it in as a Bearer token in the Authorization header (Authorization: Bearer ${BASE64_ENCODED_TOKEN}).

{
  "mcpServers": {
    "edubase": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://domain.edubase.net/mcp",
        "--header",
        "Authorization: Bearer ${EDUBASE_API_APP}:${EDUBASE_API_KEY}"
      ]
    }
  }
}

Installing via Smithery

To install EduBase MCP server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @EduBase/MCP --client claude

Contact

Website: www.edubase.net
Developer Documentation: developer.edubase.net
Email: [email protected]

Tools

edubase_get_question
Check existing question. Questions are the lowest level in the EduBase hierarchy, serving as the building blocks for Quiz sets.
edubase_post_question
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).
edubase_delete_question
Permanently delete a Quiz question.
edubase_get_exams
List owned and managed exams. Exams are the highest level in the EduBase Quiz hierarchy, built from Quiz sets.
edubase_get_exam
Get/check exam.
edubase_post_exam
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_delete_exam
Remove/archive exam.
edubase_get_exam_users
List all users on an exam.
edubase_post_exam_users
Assign user(s) to an exam.
edubase_delete_exam_users
Remove user(s) from an exam.
edubase_post_exam_summary
Submit a new AI exam summary.
edubase_get_quiz_play_results
Get detailed results for a specific Quiz play.
edubase_get_quiz_results_user
Get user results for a specific Quiz set.
edubase_get_exam_results_user
Get user results for a specific exam.
edubase_get_exam_results_raw
Get raw results for a specific exam. - 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_get_quizes
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_quiz
Get/check Quiz set. Containing questions and powering Exams.
edubase_post_quiz
Create a new Quiz set. Quiz sets are collections of questions that can be used for practice or to power multiple Exams.
edubase_delete_quiz
Remove/archive Quiz set.
edubase_get_quiz_questions
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_questions
Assign question(s) to a Quiz set, or one of its question group. Questions can exist independently from Quiz sets.
edubase_delete_quiz_questions
Remove question(s) from a Quiz set, or one of its question group.
edubase_get_users
List managed, non-generated users.
edubase_get_user
Get/check user. Can be used to retrieve the caller user's ID by using 'me' as the user identification string.
edubase_post_user
Create new EduBase user account.
edubase_delete_user
Delete user.
edubase_get_user_name
Get user's name.
edubase_post_user_name
Update a user's name.
edubase_get_user_group
Get user's group.
edubase_post_user_group
Update a user's group.
edubase_get_user_login
Get latest valid login link for user.
edubase_post_user_login
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_login
Delete a previously generated login link.
edubase_get_user_search
Lookup user by email, username or code.
edubase_post_user_assume
Assume user for next requests with assume token.
edubase_delete_user_assume
Revoke assume token.
edubase_get_classes
List owned and managed classes.
edubase_get_class
Get/check class.
edubase_get_class_assignments
List all assignments in a class.
edubase_get_class_members
List all members in a class.
edubase_post_class_members
Assign user(s) to a class. Updates memberships if already member of the class.
edubase_delete_class_members
Remove user(s) from a class.
edubase_post_classes_members
Assign user(s) to class(es). Updates memberships if already member of a class.
edubase_get_user_classes
List all classes a user is member of.
edubase_post_user_classes
Assign user to class(es). Updates membership if already member of a class.
edubase_delete_user_classes
Remove user from class(es).
edubase_get_organizations
List owned and managed organizations.
edubase_get_organization
Get/check organization.
edubase_get_organization_members
List all members in an organization.
edubase_post_organization_members
Assign user(s) to an organization. Updates memberships if already member of the organization.
edubase_delete_organization_members
Remove user(s) from an organization.
edubase_post_organizations_members
Assign user(s) to organization(s). Updates memberships if already member of an organization.
edubase_get_user_organizations
List all organizations a user is member of.
edubase_post_user_organizations
Assign user to organization(s). Updates membership if already member of an organization.
edubase_delete_user_organizations
Remove user from organization(s).
edubase_get_tags
List owned and managed tags.
edubase_get_tag
Get/check tag.
edubase_get_class_tags
List all attached tags of a class.
edubase_get_class_tag
Check if tag is attached to a class.
edubase_post_class_tag
Attach tag to a class.
edubase_delete_class_tag
Remove a tag attachment from a class.
edubase_get_course_tags
List all attached tags of a course.
edubase_get_course_tag
Check if tag is attached to a course.
edubase_post_course_tag
Attach tag to a course.
edubase_delete_course_tag
Remove a tag attachment from a course.
edubase_get_event_tags
List all attached tags of an event.
edubase_get_event_tag
Check if tag is attached to an event.
edubase_post_event_tag
Attach tag to an event.
edubase_delete_event_tag
Remove a tag attachment from an event.
edubase_get_exam_tags
List all attached tags of an exam.
edubase_get_exam_tag
Check if tag is attached to an exam.
edubase_post_exam_tag
Attach tag to an exam.
edubase_delete_exam_tag
Remove a tag attachment from an exam.
edubase_get_integration_tags
List all attached tags of an integration.
edubase_get_integration_tag
Check if tag is attached to an integration.
edubase_post_integration_tag
Attach tag to an integration.
edubase_delete_integration_tag
Remove a tag attachment from an integration.
edubase_get_organization_tags
List all attached tags of an organization.
edubase_get_organization_tag
Check if tag is attached to an organization.
edubase_post_organization_tag
Attach tag to an organization.
edubase_delete_organization_tag
Remove a tag attachment from an organization.
edubase_get_quiz_tags
List all attached tags of a Quiz.
edubase_get_quiz_tag
Check if tag is attached to a Quiz.
edubase_post_quiz_tag
Attach tag to a Quiz.
edubase_delete_quiz_tag
Remove a tag attachment from a Quiz.
edubase_get_scorm_tags
List all attached tags of a SCORM learning material.
edubase_get_scorm_tag
Check if tag is attached to a SCORM learning material.
edubase_post_scorm_tag
Attach tag to a SCORM learning material.
edubase_delete_scorm_tag
Remove a tag attachment from a SCORM learning material.
edubase_get_video_tags
List all attached tags of a video.
edubase_get_video_tag
Check if tag is attached to a video.
edubase_post_video_tag
Attach tag to a video.
edubase_delete_video_tag
Remove a tag attachment from a video.
edubase_get_class_permission
Check if a user has permission on a class.
edubase_post_class_permission
Create new permission for a user on a class.
edubase_delete_class_permission
Remove a user permission from a class.
edubase_get_course_permission
Check if a user has permission on a course.
edubase_post_course_permission
Create new permission for a user on a course.
edubase_delete_course_permission
Remove a user permission from a course.
edubase_get_event_permission
Check if a user has permission on an event.
edubase_post_event_permission
Create new permission for a user on an event.
edubase_delete_event_permission
Remove a user permission from an event.
edubase_get_exam_permission
Check if a user has permission on an exam.
edubase_post_exam_permission
Create new permission for a user on an exam.
edubase_delete_exam_permission
Remove a user permission from an exam.
edubase_get_integration_permission
Check if a user has permission on an integration.
edubase_post_integration_permission
Create new permission for a user on an integration.
edubase_delete_integration_permission
Remove a user permission from an integration.
edubase_get_organization_permission
Check if a user has permission on an organization.
edubase_post_organization_permission
Create new permission for a user on an organization.
edubase_delete_organization_permission
Remove a user permission from an organization.
edubase_get_quiz_permission
Check if a user has permission on a quiz.
edubase_post_quiz_permission
Create new permission for a user on a quiz.
edubase_delete_quiz_permission
Remove a user permission from a quiz.
edubase_get_scorm_permission
Check if a user has permission on a SCORM learning material.
edubase_post_scorm_permission
Create new permission for a user on a SCORM learning material.
edubase_delete_scorm_permission
Remove a user permission from a SCORM learning material.
edubase_get_tag_permission
Check if a user has permission on a tag.
edubase_post_tag_permission
Create new permission for a user on a tag.
edubase_delete_tag_permission
Remove a user permission from a tag.
edubase_get_video_permission
Check if a user has permission on a video.
edubase_post_video_permission
Create new permission for a user on a video.
edubase_delete_video_permission
Remove a user permission from a video.
edubase_post_custom_metric
Update a custom metric.

Comments