LMS数据提取与AI消费平台

一个通用的LMS数据提取与AI消费平台,通过Chrome扩展从任何学习管理系统提取结构化数据,并通过MCP服务器与Claude进行查询。

  • by PaoloJN
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 PaoloJN/lms-data-bridge

使用说明

LMS数据桥

一个通用的LMS数据提取和AI消费平台。通过Chrome扩展程序从任何学习管理系统中提取结构化数据,然后使用Claude通过MCP服务器进行查询。

运作原理

LMS (authenticated browser session)
  → Chrome Extension (per-LMS plugin extracts + normalizes data)
  → JSON file on disk (~/.lms-bridge/data.json)
  → MCP Server (exposes query tools to Claude)

核心思想: 提取和消费通过共享的JSON模式完全解耦。MCP服务器不知道或不关心数据来自哪个LMS。

组件

Chrome扩展程序(/extension)

安装在经过身份验证的LMS会话上的Manifest V3扩展。它不进行自己的API调用(符合CORS限制),而是拦截LMS UI已经发出的请求,并将响应规范化为一个公共模式。

支持的LMS平台:

  • Blackboard Ultra(进行中)
  • 画布、Brightspace、Moodle(计划中)

MCP服务器(/mcp-server)

读取标准化的JSON导出,并为Claude提供查询学术数据的工具:

工具 说明
lms_get_courses() 列出已注册的课程
lms_get_upcoming(days?) 接下来N天内到期的作业
lms_get_assignments(course?, status?, from?, to?) 筛选作业
lms_get_grades(course?) 按课程划分的成绩
lms_get_announcements(course?, limit?) 最近的公告
lms_get_calendar(from?, to?) 日历事件
lms_search(query) 对所有数据进行全文搜索

入门指南

扩展

cd extension
npm install
npm run dev    # build in watch mode
npm run build  # production build

加载 dist/ 文件夹作为解压缩的扩展名 chrome://extensions.

MCP服务器

cd mcp-server
npm install
npm run build
npm run dev    # run in dev mode

添加到您的Claude Code或Claude Desktop MCP配置中进行连接。

数据模式

所有LMS插件都将数据标准化为常见类型:

  • 课程 --id、名称、代码、术语
  • 任务 --id、courseId、姓名、dueDate、状态、分数
  • 等级 --课程ID、作业ID、分数、可能、百分比、字母
  • 公告 --id、courseId、标题、正文、日期
  • 日历项目 --id、courseId、标题、开始、结束、类型

每条记录包括 lmsSource 和 lastSynced 为了可追溯性。

技术栈

  • 扩展名: TypeScript、Manifest V3、Vite
  • MCP服务器: TypeScript, @modelcontextprotocol/sdk
  • 储存: JSON文件(v1没有数据库)

许可证

麻省理工学院