EduBase

官方

与EduBase交互,这是一个全面的电子学习平台,具备高级测验、考试管理和内容组织功能

你可以用 EduBase MCP 做什么?

  • 创建并发布问题 — 请助手编写新问题,并通过 edubase_prompt_create_question 将其发布到你的 QuestionBase。
  • 将文档转换为问题 — 在批准计划后,将附件、文件路径或 URL 转换为问题,还可以选择将其添加到 Quiz 集合中。
  • 根据主题创建考试 — 生成与某个主题相关的问题,将其收集到 Quiz 集合中,并通过 edubase_prompt_create_exam 创建一场定时考试。
  • 总结考试结果 — 分析考试结果,还可以选择通过 edubase_prompt_summarize_exam_results 将总结保存到考试中。
  • 将班级分配到考试 — 使用 edubase_prompt_assign_class_to_exam 将班级的活跃成员分配到考试中。
  • 查看考试旅程进度 — 通过 edubase_prompt_exam_journey_status 查看用户的考试旅程进度,以及哪些人遇到了困难。

文档

EduBase logo

EduBase MCP 服务器

pre-commit.ci status Publish

此代码仓库包含模型上下文协议(MCP)服务器的实现,适用于 EduBase 平台。它允许 MCP 客户端(例如 Claude Desktop)和 LLM 与您的 EduBase 账户交互,并代表您执行任务。它支持 stdio、SSE 和 streamable HTTP 传输协议。

EduBase MCP demo GIF: Claude uploads math questions

什么是 EduBase?

EduBase 是一个创新的模块化在线教育平台,让学习更有趣、更简单、更具互动性,适用于教育机构或企业。

为什么选择 EduBase?

EduBase 以其独特的功能组合革新数字化学习:

  • 高级测验系统支持参数化,可为同一道题生成无限种变体,并具备实时作弊检测、精美的 LaTeX 排版、高级 STEM 支持和自动评分功能
  • 统一学习环境将所有教育内容集中在一个直观的系统中,包括视频、考试、文档和 SCORM 模块
  • 企业级安全性提供 SSO 集成、精细化访问控制、全面审计和 GDPR 合规等功能
  • 集成能力可通过 LTI、全面的 API 和自定义集成选项与现有系统对接
  • AI 辅助工具,例如 EduBase Assistant,可即时将现有内容转换为互动测验和评估,也可将材料从一种语言翻译成另一种语言

EduBase 服务于高等教育机构和企业培训部门等各种组织,可根据您的具体需求灵活扩展,同时在所有设备上提供直观的用户体验。

演示视频

使用 Claude 协作创建和上传问题、安排考试并分析用户结果:

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

获取 API 凭据

登录后,在 Dashboard 中找到 Integrations 菜单,点击“add integration”,然后选择“EduBase API”类型。

如果您看不到此选项,请输入 MCPGITHUB 激活码,或随时通过 info@edubase.net 联系我们申请访问权限。

EduBase API credentials page

工具

每个已记录的 API 端点都可作为一个工具使用,名称为 edubase_<method>_<endpoint>。例如,GET /user:me 端点对应的工具名为 edubase_get_user_me。对于每种内容类型,标签、权限和传输端点的工作方式都相同,因此每种方法共用一个工具,并带有 type 参数(例如,POST /exam:tag、POST /quiz:tag 等对应的 edubase_post_content_tag)。更多信息请参阅我们的开发者文档。

工具集

工具按工具集分组,因此您可以只公开所需的工具。工具越少,占用模型上下文越少,也越容易让模型选择正确的工具。默认情况下,每个工具集均已启用。

工具集用途
files临时文件上传(始终启用)
questions问题
quizzes测验集、其中的问题、设置和评分预设
exams考试、考试设置、用户、证书、品牌设置和学习路径
results测验和考试结果、证书下载
users用户、用户姓名、群组和登录链接
classes班级和班级成员
organizations组织、成员、部门、职位、能力和 Webhook
integrations集成及其密钥
tags标签和内容的标签关联
permissions用户对内容的权限和所有权转移
metrics自定义指标

在 EDUBASE_TOOLSETS 中使用逗号分隔的列表选择工具集(例如 questions,quizzes,exams)。将 EDUBASE_READONLY=true 设为仅公开读取数据的工具(get 工具,以及仅生成下载链接的工具,例如 edubase_post_question_export)。

将 EDUBASE_DYNAMIC_TOOLSETS=true 设为按需启用工具集:会话启动时仅包含关键工具,模型可通过 edubase_enable_toolsets 工具启用所需的工具集(该工具列在 edubase_list_toolsets 中)。这样可以为启动时加载所有工具的客户端缩小初始工具列表,但客户端必须能够在收到变更通知时刷新工具列表。

使用 HTTP 传输时,客户端可以通过 EduBase-Mcp-Toolsets、EduBase-Mcp-ReadOnly 和 EduBase-Mcp-Dynamic 标头,或 toolsets、read_only 和 dynamic_toolsets 查询参数,进一步缩小其会话的配置范围(例如 https://domain.edubase.net/mcp?toolsets=exams&read_only=true)。会话无法启用服务器配置中已禁用的工具集或写入工具。

提示

提示是可从 MCP 客户端启动的现成工作流(例如从 + 或 / 菜单启动)。支持补全功能的客户端会在您输入时为参数提供建议值:问题类型,以及您自己的考试、测验集和班级。

提示功能参数
创建问题(edubase_prompt_create_question)创建新问题并将其发布到您的 QuestionBasetype、subject,以及可选的 difficulty 和 language
根据文档创建问题(edubase_prompt_questions_from_document)将附加的文档(或文件路径或 URL)转换为问题;在您批准方案后,可选择将问题添加到测验集document、可选的 questions(数量)、types、quiz 和 language
创建考试(edubase_prompt_create_exam)生成有关某个主题的问题,将其整理到新的测验集中,并据此创建考试topic、questions(数量)、可选的 types(逗号分隔)、language 和 schedule
创建带学习路径的考试(edubase_prompt_create_exam_journey)按上述方式创建考试,然后据此构建并发布一条简短的考试学习路径;重用您账户中相关的考试,并在需要时创建练习测验集和后续考试与创建考试相同
复制考试(edubase_prompt_copy_exam)使用相同的测验集和设置,在新的时间段创建一场考试exam、schedule,以及可选的 title
将班级分配给考试(edubase_prompt_assign_class_to_exam)将班级中的活跃成员分配到考试exam、class
总结考试结果(edubase_prompt_summarize_exam_results)分析考试结果,并可选择将总结保存到考试中exam,以及可选的 focus 和 save(ask、yes 或 no)
检查考试学习路径(edubase_prompt_exam_journey_status)显示用户在考试学习路径中的进度,以及哪些用户遇到了困难exam

只有在启用了相应工具集时才会提供提示;在只读模式下,仅提供最后两个提示。

如果考试的问题类型留空,支持 elicitation 的客户端会通过复选框询问您。此类客户端还会在执行无法撤销的更改前征求您的确认(删除考试、测验集、问题、用户、组织和集成,转移所有权,开始新一轮考试以及轮换集成密钥)。将 EDUBASE_ELICITATION=false 设为关闭这些确认提示。

资源

参考文档以资源形式提供;对于无法读取资源的模型,也可通过 edubase_mcp_reference 工具访问:edubase://reference/questions(问题字段和类型)以及 edubase://reference/exam-journeys(可移植的考试学习路径格式)。这些文档涵盖了 EduBase 技能所讲解的内容,供未加载这些技能的客户端使用。考试和测验集也可以作为资源附加(edubase://exam/{exam} 和 edubase://quiz/{quiz}),并会列出和推荐您的内容。使用 EDUBASE_CONTENT_RESOURCES=false 关闭这些资源;也可以通过 EduBase-Mcp-Content-Resources: false 标头、content_resources=false 查询参数或 edubaseContentResources Smithery 设置,为单个会话关闭。

创建或更改考试、测验集和学习路径的工具会链接到 EduBase 中对应的页面。

配置

MCP 服务器可通过环境变量进行配置。可用变量如下:

变量描述必填默认值
EDUBASE_API_URLEduBase API 的基础 URL,通常为 https://subdomain.edubase.net/api。是https://www.edubase.net/api
EDUBASE_API_APP你在 EduBase 上的集成应用的 App ID,即 EduBase API 上的 app。可在 EduBase 的集成详情窗口中找到。使用带身份验证的 HTTP 传输时不需要,否则是-
EDUBASE_API_KEY你在 EduBase 上的集成应用的 Secret key,即 EduBase API 上的 secret。可在 EduBase 的集成详情窗口中与 App ID 一起找到。使用带身份验证的 HTTP 传输时不需要,否则是-
EDUBASE_SSE_MODE以带 SSE 传输的 HTTP 模式启动 MCP server。值必须为 true。否false
EDUBASE_STREAMABLE_HTTP_MODE以带可流式 HTTP 传输的 HTTP 模式启动 MCP server。值必须为 true。否false
EDUBASE_TOOLSETS已启用的 工具集的逗号分隔列表,或 all。否all
EDUBASE_READONLY仅公开读取数据的工具。值必须为 true。否false
EDUBASE_OUTPUT_SCHEMAS工具的输出架构和结构化工具结果:off 列出没有输出架构的工具,并且仅以 JSON 文本形式返回结果;on 包含完整的输出架构;fields 包含不带字段描述的输出架构(保留结构化结果,同时节省架构的大部分 token)。否fields
EDUBASE_CONFIG_PROVIDERS使用 HTTP 传输时,允许在请求中提供会话配置的托管服务提供商的逗号分隔列表。目前仅支持 smithery(经过 base64 编码的 config 查询参数)。否-
EDUBASE_CONTENT_RESOURCES将账户的考试和 Quiz 集合列为资源。设为 false 可关闭此功能,例如在没有凭据的情况下检查服务器时。参考文档仍然可用。否true
EDUBASE_DYNAMIC_TOOLSETS启动会话时仅启用文件上传工具,并允许模型按需启用工具集。值必须为 true。否false
EDUBASE_ELICITATION如果客户端支持信息征询,则通过客户端请求用户确认无法撤销的更改,并选择提示的问题类型。设为 false 可关闭此功能。否true
EDUBASE_HTTP_PORT使用 SSE 或可流式 HTTP 传输模式时,HTTP 服务器将在此端口监听。否3000
EDUBASE_OAUTH启用 OAuth 2.1 受保护资源行为:未通过身份验证的请求将被拒绝,并返回指向 /.well-known/oauth-protected-resource/mcp 的 401 + WWW-Authenticate;同时将 bearer token 转发给 EduBase API。否false
EDUBASE_OAUTH_AUTHORIZATION_SERVER充当 OAuth IdP 的 EduBase 部署的公开基础 URL。用于在受保护资源元数据文档中公布授权服务器。否从 EDUBASE_API_URL 派生
EDUBASE_OAUTH_RESOURCE_URL此 MCP server(OAuth 资源指示符)的公开基础 URL。用于 WWW-Authenticate 标头和资源元数据。否从 EDUBASE_API_URL 派生
EDUBASE_ALLOW_PRIVATE_NETWORK使用 HTTP 传输时,edubase_filebin 工具会阻止向私有、环回、链路本地和保留地址发出请求(SSRF 防护),并拒绝本地文件路径。设为 true 可允许这些请求,例如在可信的私有网络中进行自托管部署。在 stdio 模式下无效,因为本地用户是唯一的调用方。否false
EDUBASE_FILEBIN_ALLOWED_HOSTS可选的逗号分隔主机名允许列表,指定允许作为 edubase_filebin 上传目标的主机名(精确主机名或任意子域名,例如 edubase.net)。留空时允许任何公共主机(仍受上述地址过滤限制)。否-

用作远程 MCP server

你可以将 EduBase MCP server 用作远程 MCP server,供 MCP 客户端使用。为此,你需要将 MCP server 托管在客户端可以访问的位置,然后配置客户端连接到该 server。请使用 SSE 或可流式 HTTP 传输模式启动,并且通过互联网远程访问 server 时始终使用 HTTPS!

远程 server 的身份验证

你可以通过两种模式使用 server:

  • 不使用客户端身份验证:在此模式下,server 不会要求客户端进行身份验证。这适用于测试或开发,或在封闭网络中使用,但不建议用于生产环境。为此,你还必须使用 EDUBASE_API_APP 和 EDUBASE_API_KEY 配置 server!
  • 使用 Bearer token 身份验证:在此模式下,server 要求每个请求都携带 Bearer token。这是生产环境中推荐的使用方式。你可以在 EduBase 账户中创建集成应用,并以 {app}:{secret} 格式提供 App ID 和 Secret key,再将其进行 base64 编码作为 token,从而获取 Bearer token。随后,server 将使用此 token 对客户端进行身份验证,并授权其访问 API 端点。
  • 使用 OAuth 2.1(EduBase 作为 IdP):启用 EDUBASE_OAUTH=true 后,兼容的客户端(Claude Desktop、Claude.ai connectors、Cursor、ChatGPT connectors 等)会通过 /.well-known/oauth-protected-resource 发现 EduBase 授权服务器,动态注册自身(RFC 7591),引导用户完成 EduBase 同意页面,并使用授权码(通过 PKCE S256)换取不透明访问令牌。MCP server 会将该令牌原样转发给 EduBase API,由后者将其解析为首次同意时自动配置的 MCP 集成。无需复制 App ID/Secret——用户只需在客户端点击“Connect EduBase”。

在 Claude Desktop 中使用

分步操作指南请参阅我们的博客文章:将 EduBase 连接到 Claude:MCP 集成完整指南。

使用提供的 EduBase MCP server

如果提供的 EduBase MCP server 可用,你无需进行任何配置,只需在客户端中将其添加为远程 server,并使用 URL https://domain.edubase.net/mcp(替换为实际域名)连接;如果客户端支持 OAuth 身份验证,也可以使用适当的 Bearer token,并将其放在 Authorization 标头中(Authorization: Bearer ${BASE64_ENCODED_TOKEN})。

推荐 www.edubase.net 用户使用,因为该 server 由我们维护和更新,你无需担心托管或配置。连接客户端时,只需确保使用正确的 URL 和身份验证方式。

手动安装

将以下内容添加到你的 claude_desktop_config.json:

使用 Node.js

运行 MCP server 前,请确保已安装 Node.js。你可以从 nodejs.org 下载,或使用 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"
      }
    }
  }
}

或者下载 EduBase MCP server 发布版本,或克隆仓库并运行 npm run build 来构建 server。别忘了将 /path/to/dist 调整为实际目录,并配置环境变量!

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

使用 Docker

运行 MCP server 前,请确保已安装并运行 Docker。你可以从 docker.com 下载,或使用包管理器。别忘了配置环境变量!Docker Hub 上提供适用于 linux/amd64 和 linux/arm64 的镜像,名称为 edubase/mcp;GitHub Packages 上的镜像名称为 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"
      }
    }
  }
}

通过远程 MCP server 安装

如果提供的 EduBase MCP server 可用,你可以将其用作远程 server。我们建议对你的 EDUBASE_API_APP 和 EDUBASE_API_KEY 进行 Base64 编码,并将其作为 Bearer token 放在 Authorization 标头中(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}"
      ]
    }
  }
}

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 EduBase MCP server:

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

开发

运行 npm test 来构建 server 并检查工具列表:工具列表和 server 指令的大小预算、工具描述、工具集、只读和动态工具集模式,以及 HTTP 传输的配置处理。当新工具超出预算时,请缩短其架构,或有意提高 test/server.test.mjs 中的预算,因为每个客户端在每个会话中都要为工具列表付费。

src/references 中的参考文档根据 EduBase 开发者文档生成;当问题字段或考试流程格式发生变化时,使用 node scripts/sync-references.mjs <path to the developer documentation repository> 重新生成。

合并带有 major、minor 或 patch 标签的拉取请求,会将下一个版本提交到 main 并启动 Publish 工作流。该工作流会将软件包发布到 npm 和 MCP Registry,将容器镜像发布到 Docker Hub 和 GitHub Packages,并在所有发布成功后为提交打标签并创建 GitHub release。没有这些标签之一就不会发布。若在拉取请求中手动设置版本,则会按该版本发布。提交、标签和 release 均由专用的 release 应用创建,其凭据位于 release 环境中。Publish 工作流会先运行测试,在推送前检查构建的镜像,并使用 OIDC 登录 Docker Hub,使用的变量为 DOCKERHUB_OIDC_CONNECTIONID 和 DOCKERHUB_OIDC_USERNAME。由于 GitHub 不接受 GitHub App token,工作流会使用作业的 GITHUB_TOKEN 推送到 GitHub Packages。你可以手动指定版本运行该工作流,以重试或重新构建发布:npm 和 MCP Registry 上已有的内容会跳过,并且只有最新发布版本会更新 latest。

文档同步点:工具、提示和参考文档上次同步于 2026-11-06,依据的是与 EduBase 发布版本 8.6.6 同步的开发者文档(对应 8.6.6 的文档拉取请求),并根据提交 a29c6af51 处的 EduBase 进行了核对。 要更新 server,请在开发者文档仓库中,从 8.6.6 对应的文档拉取请求提交开始,运行 git log --oneline <commit>..HEAD 和 git diff <commit>..HEAD -- docs/api/endpoints;更新 src/tools 中受影响的工具(以及相应的提示和工具集指南),重新生成参考文档,并将此标记更新为新的 HEAD 提交。当两者不一致时,以 EduBase 仓库为准。

联系方式

网站:www.edubase.net
开发者文档:developer.edubase.net
电子邮件:info@edubase.net