EduBase

io.github.EduBase由 GitHub 帳號 EduBase 發布v2.0.11更新於 Nov 5, 2026

EduBase MCP server

已驗證Streamable HTTP可網頁執行效率與工作流知識與記憶

概覽

AI 產生的概覽

將助理連接到 EduBase 帳號,可建立題目、測驗集與考試,管理使用者與班級,並分析成績結果。

可以做什麼
  • 建立並發布題目、測驗集、考試及考試旅程
  • 管理使用者、班級、組織、標籤、權限與整合
  • 讀取測驗與考試成績、下載證書並彙整結果
  • 上傳暫存檔案,並把文件轉換成題目
  • 執行現成提示詞,例如建立考試或為考試指派班級
  • 查閱題目欄位與考試旅程格式的參考文件
適用情境
適合已在 EduBase 上開課或培訓的教師、講師與管理者,希望助理在聊天用戶端內草擬題目、組卷、指派班級並解讀成績。
執行需求
可使用託管的遠端端點並以 OAuth 登入,或透過 npm 套件(需 Node.js)或 Docker 在本機執行。本機與非 OAuth 方式需要 EduBase 整合應用程式的 App ID 與密鑰,透過 EDUBASE_API_APP 與 API 密鑰環境變數,或 EduBase-Api-App 與 EduBase-Api-Secret 標頭提供。需要已開通整合選項的 EduBase 帳號。
安裝前請注意
所用憑證是帳號層級的 API 密鑰,請勿將密鑰寫入共用設定。工具可建立、修改與刪除考試、測驗集、題目、使用者、組織與整合,轉移擁有權並輪換整合密鑰,建議啟用唯讀模式或限制工具集。檔案上傳與以文件為基礎的提示詞會把內容傳送到 EduBase,並可能抓取外部連結。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 EduBase,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.EduBase%2FMCP/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "edubase": {
      "type": "http",
      "url": "https://www.edubase.net/mcp"
    }
  }
}

README

[EduBase logo]

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:

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

ToolsetTools for
filesTemporary file uploads (always enabled)
questionsQuestions
quizzesQuiz sets, their questions, settings and grading presets
examsExams, their settings, users, certificates, branding and journeys
resultsQuiz and exam results, certificate downloads
usersUsers, their names, groups and login links
classesClasses and class memberships
organizationsOrganizations, members, departments, job roles, competencies and webhooks
integrationsIntegrations and their keys
tagsTags and tag attachments of contents
permissionsUser permissions on contents and ownership transfers
metricsCustom 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.

PromptWhat it doesArguments
Create a question (edubase_prompt_create_question)Writes a new question and publishes it to your QuestionBasetype, 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 setdocument, 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 ittopic, 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 neededthe 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 windowexam, schedule, optional title
Assign a class to an exam (edubase_prompt_assign_class_to_exam)Assigns the active members of a class to an examexam, class
Summarize exam results (edubase_prompt_summarize_exam_results)Analyzes the results of an exam and optionally saves the summary to the examexam, 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 stuckexam

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:

VariableDescriptionRequiredDefault value
EDUBASE_API_URLThe base URL of the EduBase API, most probably https://subdomain.edubase.net/api.Yeshttps://www.edubase.net/api
EDUBASE_API_APPThe 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_KEYThe 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_MODEStart MCP server in HTTP mode with SSE transport. Value must be true.Nofalse
EDUBASE_STREAMABLE_HTTP_MODEStart MCP server in HTTP mode with streamable HTTP transport. Value must be true.Nofalse
EDUBASE_TOOLSETSComma-separated list of the enabled toolsets, or all.Noall
EDUBASE_READONLYOnly expose the tools that read data. Value must be true.Nofalse
EDUBASE_OUTPUT_SCHEMASOutput 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).Nofields
EDUBASE_CONFIG_PROVIDERSComma-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_RESOURCESList 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.Notrue
EDUBASE_DYNAMIC_TOOLSETSStart sessions with only the file upload tools and let the model enable toolsets on demand. Value must be true.Nofalse
EDUBASE_ELICITATIONAsk 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.Notrue
EDUBASE_HTTP_PORTHTTP server will listen on this port if SSE or streamable HTTP transport mode is used.No3000
EDUBASE_OAUTHEnables 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.Nofalse
EDUBASE_OAUTH_AUTHORIZATION_SERVERPublic base URL of the EduBase deployment acting as the OAuth IdP. Used to advertise the authorization server in the protected-resource metadata document.Noderived from EDUBASE_API_URL
EDUBASE_OAUTH_RESOURCE_URLPublic base URL of this MCP server (the OAuth resource indicator). Used in the WWW-Authenticate header and resource metadata.Noderived from EDUBASE_API_URL
EDUBASE_ALLOW_PRIVATE_NETWORKWhen 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.Nofalse
EDUBASE_FILEBIN_ALLOWED_HOSTSOptional 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.

json
{  "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!

json
{  "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.

json
{  "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}).

json
{  "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:

bash
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-05 against the Developer documentation synced to EduBase release 8.6.5 (the documentation pull request for 8.6.5), checked against the EduBase at commit f7e83da65. 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.5, 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: [email protected]

來源:README.md,提交 fd0f6a8

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

11
  1. v2.0.11最新Nov 5, 2026
  2. v2.0.10Nov 1, 2026
  3. v2.0.9Oct 26, 2026
  4. v2.0.8Oct 25, 2026
  5. v2.0.7Oct 18, 2026
  6. v2.0.6Oct 13, 2026
  7. v2.0.5Oct 13, 2026
  8. v2.0.4Oct 12, 2026
  9. v2.0.3Sep 29, 2026
  10. v2.0.2Sep 28, 2026
  11. v2.0.1Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分