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

什么是 EduBase?
EduBase 是一个创新的模块化在线教育平台,让学习更有趣、更简单、更具互动性,适用于教育机构或企业。
为什么选择 EduBase?
EduBase 以其独特的功能组合革新数字化学习:
- 高级测验系统支持参数化,可为同一道题生成无限种变体,并具备实时作弊检测、精美的 LaTeX 排版、高级 STEM 支持和自动评分功能
- 统一学习环境将所有教育内容集中在一个直观的系统中,包括视频、考试、文档和 SCORM 模块
- 企业级安全性提供 SSO 集成、精细化访问控制、全面审计和 GDPR 合规等功能
- 集成能力可通过 LTI、全面的 API 和自定义集成选项与现有系统对接
- AI 辅助工具,例如 EduBase Assistant,可即时将现有内容转换为互动测验和评估,也可将材料从一种语言翻译成另一种语言
EduBase 服务于高等教育机构和企业培训部门等各种组织,可根据您的具体需求灵活扩展,同时在所有设备上提供直观的用户体验。
演示视频
使用 Claude 协作创建和上传问题、安排考试并分析用户结果:
获取 API 凭据
登录后,在 Dashboard 中找到 Integrations 菜单,点击“add integration”,然后选择“EduBase API”类型。
如果您看不到此选项,请输入 MCPGITHUB 激活码,或随时通过 info@edubase.net 联系我们申请访问权限。
工具
每个已记录的 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) | 创建新问题并将其发布到您的 QuestionBase | type、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_URL | EduBase 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