EduBase

官方

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

你可以用 EduBase MCP 做什么?

  • 管理教育内容 — 让您的AI通过 questions、quizzes 和 exams 工具集创建、更新或检索题目、测验、考试及其设置。

  • 分析结果与用户 — 让您的AI使用 results、users 和 classes 工具集拉取测验/考试结果、证书下载、用户详情及班级成员信息。

  • 控制工具访问 — 通过 EDUBASE_TOOLSETS 配置暴露哪些工具集,使用 EDUBASE_READONLY 启用只读模式,或让模型通过 edubase_enable_toolsets 和 edubase_list_toolsets 按需激活工具集。

  • 上传和管理文件 — 使用 edubase_filebin 工具上传临时文件,具备SSRF保护,并可通过 EDUBASE_FILEBIN_ALLOWED_HOSTS 选择性地允许主机列表。

  • 安全远程访问 — 通过OAuth 2.1以EduBase作为身份提供方进行连接,或在生产部署中使用带有 Authorization 头的Bearer令牌认证。

文档

EduBase logo

EduBase MCP 服务器

pre-commit.ci status Publish to MCP Registry

本仓库包含 模型上下文协议(MCP)服务器 针对 EduBase 平台的实现。它允许 MCP 客户端(例如 Claude Desktop)和 LLM 与您的 EduBase 账户交互,并代表您执行任务。它支持 stdio、SSE 和可流式 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 凭据

登录后,在您的仪表板上,搜索“集成”菜单,点击“添加集成”,然后选择“EduBase API”类型。

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

EduBase API credentials page

工具

每个已记录的 API 端点都作为一个工具提供,命名为 edubase_<method>_<endpoint>。例如,GET /user:me 端点的工具命名为 edubase_get_user_me。标签、权限和转移端点对每种内容类型的工作方式相同,因此它们每种方法共享一个工具,带有 type 参数(例如,edubase_post_content_tag 用于 POST /exam:tag、POST /quiz: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_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 密钥,即 EduBase API 上的 secret。可在 EduBase 的集成详情窗口中与 App ID 一起找到。如果使用带认证的 HTTP 传输则不需要,否则是-
EDUBASE_SSE_MODE以 HTTP 模式启动 MCP 服务器,使用 SSE 传输。值必须为 true。否false
EDUBASE_STREAMABLE_HTTP_MODE以 HTTP 模式启动 MCP 服务器,使用可流式 HTTP 传输。值必须为 true。否false
EDUBASE_TOOLSETS启用的 工具集 的逗号分隔列表,或 all。否all
EDUBASE_READONLY仅暴露读取数据的工具。值必须为 true。否false
EDUBASE_OUTPUT_SCHEMAS工具的输出模式和结构化工具结果:off 列出不带输出模式的工具,仅以 JSON 文本形式返回结果;on 包含完整的输出模式;fields 包含不带字段描述的输出模式(保留结构化结果,但节省模式的大部分令牌)。否fields
EDUBASE_CONFIG_PROVIDERS允许在使用 HTTP 传输时在请求中提供会话配置的托管提供商的逗号分隔列表。目前仅支持 smithery(base64 编码的 config 查询参数)。否-
EDUBASE_DYNAMIC_TOOLSETS仅以文件上传工具开始会话,让模型按需启用 工具集。值必须为 true。否false
EDUBASE_HTTP_PORT如果使用 SSE 或可流式 HTTP 传输模式,HTTP 服务器将在此端口上监听。否3000
EDUBASE_OAUTH启用 OAuth 2.1 受保护资源行为:未认证的请求将被拒绝,并返回 401 + WWW-Authenticate 指向 /.well-known/oauth-protected-resource,Bearer 令牌将转发到 EduBase API。否false
EDUBASE_OAUTH_AUTHORIZATION_SERVER作为 OAuth IdP 的 EduBase 部署的公共基础 URL。用于在受保护资源元数据文档中通告授权服务器。否从 EDUBASE_API_URL 派生
EDUBASE_OAUTH_RESOURCE_URL此 MCP 服务器(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 服务器

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

远程服务器的认证

您可以在两种模式下使用服务器:

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

与 Claude Desktop 一起使用

有关分步指南,请参阅我们关于如何 将 EduBase 与 Claude 连接:完整 MCP 集成指南 的博客文章。

使用提供的 EduBase MCP 服务器

您可以使用提供的 EduBase MCP 服务器(如果可用),无需任何配置,只需在客户端中将其添加为远程服务器,使用 URL https://domain.edubase.net/mcp(替换为实际域名),如果它支持 OAuth 认证,或使用 Authorization 标头中的适当 Bearer 令牌(Authorization: Bearer ${BASE64_ENCODED_TOKEN})。

推荐给 www.edubase.net 用户,因为服务器由我们维护和更新,您无需担心托管或配置。只需确保在连接客户端时使用正确的 URL 和认证方法。

手动安装

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

使用 Node.js

在运行 MCP 服务器之前,请确保您已安装 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 服务器版本,或克隆仓库并运行 npm run build 来构建服务器。不要忘记将 /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 服务器之前,请确保您已安装 Docker 并且正在运行。您可以从 docker.com 下载,或使用包管理器。不要忘记配置环境变量!

{
  "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 服务器安装

您可以使用提供的 EduBase MCP 服务器(如果可用)作为远程服务器。我们建议将您的 EDUBASE_API_APP 和 EDUBASE_API_KEY 进行 Base64 编码,并将其作为 Bearer 令牌用于 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 服务器:

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

开发

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

联系方式

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