@jamestesting888/tum-mcp 0.10.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +105 -0
- package/README.md +6 -5
- package/docs/development.md +5 -4
- package/docs/setup.md +5 -12
- package/docs/study.md +84 -48
- package/docs/tum-mcp.md +5 -5
- package/npm/backend/manifest.json +2 -2
- package/npm/backend/{tum_mcp-0.10.0-py3-none-any.whl → tum_mcp-0.13.0-py3-none-any.whl} +0 -0
- package/npm/tum-mcp.mjs +4 -5
- package/package.json +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,110 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 0.13.0 — 2026-10-29
|
|
4
|
+
|
|
5
|
+
- Lessons read as structure rather than prose: a `text` step or point that opens with a short `Label: ` shows the label in bold, and `study report` flags paragraphs over 45 words or three long sentences (`dense_paragraph`), calculations chained inside a sentence (`prose_calculation`) and mathematics typed as plain characters instead of inline LaTeX (`plain_math`). Arithmetic in inline LaTeX is recomputed like arithmetic in prose. prepare-study's writing guide gains the procedure, worked-example and notation rules behind them.
|
|
6
|
+
- Figures are checked for readable labels at build time: a label that touches a line, sits on a filled shape, overlaps another label or leaves the canvas is rejected with its text named, and the app draws labels on a page-coloured halo at the drawn size. prepare-study's figure guide adopts label and spacing rules from open-source diagram skills.
|
|
7
|
+
- Study lessons gain definitions that sit inside the section introducing them, as the
|
|
8
|
+
term in bold beside its meaning; a `{{term}}` mention anywhere in the app opens the
|
|
9
|
+
definition in place, and blocks can carry a `key` that links lead to.
|
|
10
|
+
- Text sections can give a hard idea as numbered `steps`, and a new `figure` block shows
|
|
11
|
+
a drawing (checked SVG that follows the light and dark theme, cropped to what is drawn)
|
|
12
|
+
or an image from the app's `figures/` folder, in lessons, questions, exercises and
|
|
13
|
+
published sites.
|
|
14
|
+
- Diagram labels never hide behind nodes: a label wider than its edge moves above the
|
|
15
|
+
shapes, and a single picture shows its caption once instead of a description and a
|
|
16
|
+
caption. The exercise outline drops its separators, and the completed mark stays on
|
|
17
|
+
the entry's line.
|
|
18
|
+
- Algorithm traces show the algorithm's state beside the drawing (a queue, the domains),
|
|
19
|
+
mark what changed at each step and highlight the edge being worked on.
|
|
20
|
+
- Practice questions that are about a situation show it (a graph, drawing, table,
|
|
21
|
+
formula or code) beside the question, and a question about a concept may stand alone;
|
|
22
|
+
options appear in a stable shuffled order and a question can offer one optional hint. A
|
|
23
|
+
question missed at the first attempt stays in To review after **Try again** until it
|
|
24
|
+
is answered correctly from a fresh start.
|
|
25
|
+
- Exercise solutions give one short, labelled answer per part, in the form the part asks
|
|
26
|
+
for; model answers can be tables, lists or formulas, and graph answers are drawn on the
|
|
27
|
+
graph. **Compare** is now the only reveal: hints stop after the last one, a step
|
|
28
|
+
without a check is compared too, and an explanation may not repeat its model answer.
|
|
29
|
+
- **Review** beside a prerequisite opens that Study passage next to the exercise without
|
|
30
|
+
losing your place; a unit links its Lecture Notes, the exercises that build on it and
|
|
31
|
+
the Exam Prep patterns that cite it, and Lecture Notes link back. In the local
|
|
32
|
+
preview, a citation opens the stored course file at the cited page.
|
|
33
|
+
- A new `review-course` skill scores each Study unit and exercise from 1 to 3 on
|
|
34
|
+
correctness, clarity, cognitive load, representation, practice and coverage, saves the
|
|
35
|
+
scores with their findings in `.tum-mcp/review.json` (`study schema review`) and fixes
|
|
36
|
+
what falls below the bar; `study report` lists unreviewed, stale and low items.
|
|
37
|
+
prepare-study and prepare-exercises finish with it.
|
|
38
|
+
- `tum-mcp study report` flags dense paragraphs, sections of more than about 90 words of
|
|
39
|
+
prose, sentences about the material instead of the subject ("the lecture groups…"),
|
|
40
|
+
question pictures that repeat the prompt, exercise statements pasted as one block,
|
|
41
|
+
thin lessons, untraced procedures, questions too long for a phone screen, slide
|
|
42
|
+
numbers left in titles instead of `pages`,
|
|
43
|
+
answer tables Compare never answers, wrong arithmetic, large steps with one hint and
|
|
44
|
+
feedback that names no mistake. A coverage ledger (`.tum-mcp/coverage.json`,
|
|
45
|
+
`study schema coverage`) records each source's stated outcomes, sheet problems and
|
|
46
|
+
course state, so the report lists what is not yet taught, read or prepared; learners
|
|
47
|
+
see which problems are not prepared yet. The study skills share one review gate and
|
|
48
|
+
one writing guide (plain, direct sentences after ASD-STE100, without AI phrasing), and
|
|
49
|
+
they show two-input rules as decision matrices and released exercise statements split
|
|
50
|
+
by part with their givens and setting drawn.
|
|
51
|
+
- The exercise outline names a category only when it adds to the set titles, and the
|
|
52
|
+
outline keeps its scroll position when you open a lesson.
|
|
53
|
+
- Codex picks up changed or newly enabled skills: the plugin version follows the
|
|
54
|
+
installed skills, and `tum-mcp doctor` names the refresh step when Codex still loads
|
|
55
|
+
an older copy.
|
|
56
|
+
|
|
57
|
+
## 0.12.0 — 2026-10-29
|
|
58
|
+
|
|
59
|
+
- Remove the optional Studocu extension, its `sync-studocu` skill and `tum-mcp studocu`
|
|
60
|
+
commands. Download such material yourself and add it with `tum-mcp study import`.
|
|
61
|
+
|
|
62
|
+
## 0.11.0 — 2026-10-28
|
|
63
|
+
|
|
64
|
+
- Add the base `prepare-exams` workflow and the local **Exam Prep** workspace: a
|
|
65
|
+
cheatsheet with a semester map you can pan, zoom and open full screen, exam patterns
|
|
66
|
+
with solving workflows and a worked practice question each, guided past papers, and
|
|
67
|
+
practice exams with a solution under every question. Statistics, map layout,
|
|
68
|
+
blueprint and novelty checks are derived by code. Exam Prep is never published.
|
|
69
|
+
- Add `tum-mcp study exam-report`, `study text` (page text extracted once per file),
|
|
70
|
+
`study import` (private local files such as past exams you hold) and
|
|
71
|
+
`study duplicates` (identical and near-duplicate copies across Moodle, Artemis,
|
|
72
|
+
Studocu and local files); `study inspect` lists identical copies.
|
|
73
|
+
- Students answer on paper. Only multiple-choice answers are checked; every other step
|
|
74
|
+
offers Compare, which shows one answer, its explanation and a hint for the likeliest
|
|
75
|
+
mistake. Exercises no longer show answer boxes, review buttons or status lines;
|
|
76
|
+
finishing an exercise marks it completed in the outline.
|
|
77
|
+
- Exercises gain code-writing steps that open the function skeleton in an editor and
|
|
78
|
+
show the model answer as code, numbered code blocks and distilled practice for large
|
|
79
|
+
programming tasks; prepare-exercises documents how to distil Artemis programming
|
|
80
|
+
exercises. Text and numeric checks hold a single answer, and authors are told to give
|
|
81
|
+
every question the context its answers use.
|
|
82
|
+
- Authored questions must show code, a diagram, a formula, a table or a plot beside
|
|
83
|
+
their text, and their first sentence says what the student produces. A new `uml`
|
|
84
|
+
block draws UML class, sequence and state diagrams in every workspace, and
|
|
85
|
+
`` `code` `` in text renders as inline code.
|
|
86
|
+
- Code is syntax-highlighted in blocks, editors and model answers. A new `files` block
|
|
87
|
+
shows a small project with a file tree, tabs and editable files kept in the browser;
|
|
88
|
+
steps point at file lines with an "Open in files" jump, code-writing steps edit
|
|
89
|
+
the project file they point at, and the file tree folds away. Distilled exercises no
|
|
90
|
+
longer carry concept tags. Code blocks can carry a step-by-step walkthrough, and
|
|
91
|
+
prepare-study asks for examples shown as a diagram or walkthrough, not only told.
|
|
92
|
+
- Right-click (or Shift+F10) any sidebar entry to mark it completed.
|
|
93
|
+
- A page whose sections all cite the same sources shows one citation beside its title
|
|
94
|
+
line, and a cheatsheet section whose entries share sources cites them once; exam
|
|
95
|
+
pages mention past exams only when there are some. Lines that only described a page
|
|
96
|
+
or told students to compare (such as the Exam Prep summary) are gone, and the skills
|
|
97
|
+
ask for text that teaches.
|
|
98
|
+
- A new `tree` block draws hierarchies such as file structures, object trees and call
|
|
99
|
+
trees with icons, connector lines and optional notes.
|
|
100
|
+
- Cheatsheet entries show their recognition cue and pitfall as labelled rows with icons;
|
|
101
|
+
the semester map has an icon toolbar and an in-canvas legend.
|
|
102
|
+
- Give every skill a Codex display name, so Codex no longer shows "Tum MCP:" prefixes.
|
|
103
|
+
- Pages no longer wait for the local video index; the video panel appears once it loads,
|
|
104
|
+
so a slow preview server cannot drop it.
|
|
105
|
+
- Pages no longer over-scroll: hidden labels cannot stretch the page, and the space that
|
|
106
|
+
keeps step arrows in place goes once you scroll back up.
|
|
107
|
+
|
|
3
108
|
## 0.10.0 — 2026-10-27
|
|
4
109
|
|
|
5
110
|
- Add the optional `video-notes` extension (`tum-mcp install video-notes`): short
|
package/README.md
CHANGED
|
@@ -30,11 +30,14 @@ submissions, posting and exercise execution are unavailable.
|
|
|
30
30
|
| `sync-course` | “Set up a project for this course and collect its materials.” |
|
|
31
31
|
| `prepare-study` | “Build lessons, flashcards and practice in a study website.” |
|
|
32
32
|
| `prepare-exercises` | “Add guided exercises from this week's released sheet.” |
|
|
33
|
+
| `prepare-exams` | “Make a cheatsheet and practice exams from the past papers.” |
|
|
34
|
+
| `review-course` | “Score my lessons and exercises and fix what is hard to learn from.” |
|
|
33
35
|
| `publish-course` | “Publish my reviewed study site for phone access.” |
|
|
34
36
|
|
|
35
37
|
Each project holds one course. Run `tum-mcp study` in its folder to open the app.
|
|
36
38
|
Ask the agent to refresh it when sources change or address comments left in the
|
|
37
|
-
app.
|
|
39
|
+
app. Add files you downloaded yourself, such as past exams from other websites, with
|
|
40
|
+
`tum-mcp study import`. [Study guide and demo](docs/study.md).
|
|
38
41
|
|
|
39
42
|
TUMonline currently provides study names/degrees, public course catalog metadata
|
|
40
43
|
and partial course curriculum positions. The catalog does not show enrollments.
|
|
@@ -49,7 +52,6 @@ Run `tum-mcp install` to choose extensions, then reload your client.
|
|
|
49
52
|
| Extension | Skill added | What it offers |
|
|
50
53
|
| --- | --- | --- |
|
|
51
54
|
| `lecture` | `prepare-lecture` | Lecture Notes with the professor's extra explanations, timestamps and selected critical visuals. Prefers transcripts and slides; local recognition is optional. |
|
|
52
|
-
| `studocu` | `sync-studocu` | Search and collect selected supplementary PDFs saved in your browser. Personal use only; excluded from published sites. |
|
|
53
55
|
| `audio-notes` | `audio-notes` | Turn prepared Study lessons into concise audio tracks, with resumable generation and coverage tracking. Voice setup happens when used. |
|
|
54
56
|
| `video-notes` | `video-notes` | Turn prepared Study topics into short narrated, animated explainers that play inside the local app, with checked sync, captions and layout. The render runtime installs when first used. |
|
|
55
57
|
|
|
@@ -57,7 +59,6 @@ Use `tum-mcp doctor` to see installed workflows and `tum-mcp uninstall` to remov
|
|
|
57
59
|
them.
|
|
58
60
|
|
|
59
61
|
[Lecture and recognition](docs/lecture-notes.md) ·
|
|
60
|
-
[Studocu collection](docs/study.md#studocu-materials) ·
|
|
61
62
|
[Video Notes](docs/study.md#create-and-maintain-video-notes) · [Setup details](docs/setup.md)
|
|
62
63
|
|
|
63
64
|
## Course project
|
|
@@ -68,10 +69,10 @@ After initialization, a course project looks something like this:
|
|
|
68
69
|
course/
|
|
69
70
|
AGENTS.md Course instructions and inventory
|
|
70
71
|
materials/ Course content, exams, exercises and other sources
|
|
71
|
-
|
|
72
|
-
app/ Study, Exercises and optional Lecture Notes website
|
|
72
|
+
app/ Study, Exercises, Exam Prep and optional Lecture Notes website
|
|
73
73
|
content.json Study lessons, flashcards and practice
|
|
74
74
|
exercises.json Guided exercise content
|
|
75
|
+
exam.json Exam Prep: cheatsheet, exam patterns, practice exams (local only)
|
|
75
76
|
lectures.json Optional: Lecture Notes
|
|
76
77
|
lecture-assets/ Optional: selected lecture figures
|
|
77
78
|
.tum-mcp/ Private course state, comments and lecture evidence
|
package/docs/development.md
CHANGED
|
@@ -22,9 +22,8 @@ npm run test:package-lifecycle
|
|
|
22
22
|
|
|
23
23
|
Python 3.13 is the managed runtime. Install Tesseract for OCR tests. Default tests
|
|
24
24
|
use synthetic sources and credentials. No language-server installation is needed.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
is off by default; validate both selected and unselected skill packs.
|
|
25
|
+
Optional extensions are off by default; validate both selected and unselected skill
|
|
26
|
+
packs.
|
|
28
27
|
Set `TUM_MOODLE_SYSTEM_KEYRING=1` for a unique synthetic native-store round trip.
|
|
29
28
|
The ordinary campus runtime uses encrypted local files and owner-restricted keys.
|
|
30
29
|
Set `TUM_MCP_BROWSER_INTEGRATION=1` to include the real HTTP static-export browser
|
|
@@ -109,6 +108,8 @@ tag and artifact integrity before pushing the release documentation.
|
|
|
109
108
|
| `src/tum_mcp/client_*.py` | Host-specific configuration and managed skill installation |
|
|
110
109
|
| `src/tum_mcp/study_*.py` | Course snapshots, teaching, build, preview and project-local passage comments |
|
|
111
110
|
| `src/tum_mcp/bundled/skills/` | Canonical versioned source of reading, study, audio and video skills and their references/assets |
|
|
111
|
+
| `src/tum_mcp/exam_*.py` | Exam Prep contracts, derived statistics, report and map layout; never published |
|
|
112
|
+
| `src/tum_mcp/study_text.py`, `study_import.py`, `study_duplicates.py` | Page-text cache, private local imports and cross-provider duplicate reports |
|
|
112
113
|
| `src/tum_mcp/video_*.py`, `bundled/video_runtime/` | Video Notes contracts, lint, media checks, orchestration and the isolated render worker |
|
|
113
114
|
| `npm/` | Private-runtime installation, updates, integrity and cleanup |
|
|
114
115
|
| `tests/` | Synthetic backend, package and owned-browser checks |
|
|
@@ -168,7 +169,7 @@ playback tests also run WebKit when Playwright's WebKit is installed.
|
|
|
168
169
|
|
|
169
170
|
## Optional Lecture extension
|
|
170
171
|
|
|
171
|
-
Base setup exposes
|
|
172
|
+
Base setup exposes six workflows and no `tum_live_*` tools. `install lecture`
|
|
172
173
|
records explicit selection, refreshes managed clients and provisions the optional
|
|
173
174
|
recognizer only when requested/supported. `--no-asr` keeps captions/imported WebVTT.
|
|
174
175
|
Heavy recognition dependencies and model weights stay outside the base environment
|
package/docs/setup.md
CHANGED
|
@@ -26,10 +26,7 @@ Antigravity setup installs all five base skills and MCP configuration; restart e
|
|
|
26
26
|
client afterward. Existing MCP-only setups gain the skills through `tum-mcp update`
|
|
27
27
|
or another setup run. Generic setup writes configuration for manual installation.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
extension adds the `sync-studocu` skill and its tools. `tum-mcp doctor`
|
|
31
|
-
reports the local selection; `tum-mcp uninstall studocu` disables it and
|
|
32
|
-
preserves course materials and customized files. Generic clients use
|
|
29
|
+
Generic clients use
|
|
33
30
|
`tum-mcp skills export DESTINATION` to install the active pack manually.
|
|
34
31
|
Setup preserves unrelated settings and refuses to
|
|
35
32
|
replace customized entries. It does not authenticate or fetch courses.
|
|
@@ -44,8 +41,7 @@ Its render runtime (about 320 MB) installs on first use; `tum-mcp video-notes ru
|
|
|
44
41
|
status` lists any prerequisite (macOS: `brew install cairo`; Linux/WSL: Cairo and
|
|
45
42
|
Pango development packages and a C compiler) without installing it. Course videos are
|
|
46
43
|
retained when the extension is disabled. Clients pinned to a runtime generation older
|
|
47
|
-
than this release cannot read the enabled Video Notes setting
|
|
48
|
-
tools; refresh them with `tum-mcp update` or `setup --client NAME`.
|
|
44
|
+
than this release cannot read the enabled Video Notes setting; refresh them with `tum-mcp update` or `setup --client NAME`.
|
|
49
45
|
|
|
50
46
|
## Terminal output
|
|
51
47
|
|
|
@@ -61,8 +57,8 @@ label. `NO_COLOR` disables color; narrow terminals use stacked rows.
|
|
|
61
57
|
Bare `tum-mcp setup`, `tum-mcp install` and `tum-mcp uninstall` share the same
|
|
62
58
|
keyboard controls as login. Nothing is preselected; Ctrl+C cancels. Uninstall
|
|
63
59
|
also offers **All — TUM MCP**, which removes the package and managed client setup.
|
|
64
|
-
Personal notes, sessions and customized files are retained. Scripts can name
|
|
65
|
-
`tum-mcp uninstall lecture
|
|
60
|
+
Personal notes, sessions and customized files are retained. Scripts can name extensions:
|
|
61
|
+
`tum-mcp uninstall lecture audio-notes --json`.
|
|
66
62
|
|
|
67
63
|
Use `--json` for machine-readable status, named extension removal/installation,
|
|
68
64
|
skill listing/validation, lecture runtime status or TUMonline permissions.
|
|
@@ -81,15 +77,12 @@ retains its previous configuration format; new integrations should use `doctor -
|
|
|
81
77
|
|
|
82
78
|
Run **`tum-mcp login`**, with no arguments, in an interactive terminal:
|
|
83
79
|
|
|
84
|
-
1. Use up/down to move and Space to select services. Installed Lecture adds TUM-Live
|
|
85
|
-
installed Studocu adds Studocu.
|
|
80
|
+
1. Use up/down to move and Space to select services. Installed Lecture adds TUM-Live.
|
|
86
81
|
2. Press Enter. If several browsers are installed, choose one and press Enter.
|
|
87
82
|
3. Complete TUM sign-in/MFA in the opened window. Only selected service tabs open.
|
|
88
83
|
4. Return to the terminal for the saved-connection result.
|
|
89
84
|
|
|
90
85
|
Campus services use temporary-browser sign-in and encrypted session storage.
|
|
91
|
-
Studocu opens your own default browser (the Windows browser from WSL); sign in
|
|
92
|
-
there. Its browser session is neither copied nor claimed as verified.
|
|
93
86
|
No API key or native credential-store prompt is needed. A temporary browser
|
|
94
87
|
profile keeps the connection separate from your everyday browser. Ctrl+C closes it and preserves
|
|
95
88
|
connections that already completed. A dumb terminal uses numbered prompts.
|
package/docs/study.md
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# Course study projects
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
preparation and publishing. They run in your local agent, using the connected
|
|
3
|
+
Six base skills cover source reading, course sync, Study preparation, Exercises
|
|
4
|
+
preparation, exam preparation and publishing. They run in your local agent, using the connected
|
|
5
5
|
MCP tools to read course sources. The CLI validates and stores the resulting local
|
|
6
6
|
files; it does not run an AI model.
|
|
7
7
|
The optional `prepare-lecture` skill adds a Lecture Notes workspace; install it with
|
|
8
8
|
`tum-mcp install lecture`. See [Lecture Notes](lecture-notes.md).
|
|
9
|
-
The optional `sync-studocu` skill collects selected student-uploaded material separately.
|
|
10
9
|
The optional `audio-notes` skill turns prepared lessons into spoken tracks; install
|
|
11
10
|
it with `tum-mcp install audio-notes`. The optional `video-notes` skill turns prepared
|
|
12
11
|
topics into short narrated explainer videos; install it with `tum-mcp install video-notes`.
|
|
@@ -40,9 +39,10 @@ pse-ws26/
|
|
|
40
39
|
course.md Cited course structure, logistics, rules and unknowns
|
|
41
40
|
state.json Course binding, source versions and coverage
|
|
42
41
|
notes/ Detailed course/agent notes when needed
|
|
43
|
-
app/ Shared Study, Exercises and optional Lecture Notes website
|
|
42
|
+
app/ Shared Study, Exercises, Exam Prep and optional Lecture Notes website
|
|
44
43
|
content.json Optional source-backed Study content
|
|
45
44
|
exercises.json Optional prepared exercise guidance
|
|
45
|
+
exam.json Optional Exam Prep content (local only)
|
|
46
46
|
audio/ Optional category audio derived from the prepared website
|
|
47
47
|
videos/ Optional explainer videos derived from the prepared website
|
|
48
48
|
```
|
|
@@ -109,9 +109,16 @@ course's lecture or week sequence when useful, or consistent topics, with at mos
|
|
|
109
109
|
one category level. Every unit has:
|
|
110
110
|
|
|
111
111
|
- Content: a short lesson with objectives, source links, assumptions and worked
|
|
112
|
-
examples, using formulas, tables, code, diagrams or line graphs where
|
|
112
|
+
examples, using formulas, tables, code, diagrams, drawn figures or line graphs where
|
|
113
|
+
they help. A hard idea comes as short numbered steps instead of a long paragraph. A
|
|
114
|
+
term to learn appears in bold beside its meaning, inside the section that introduces
|
|
115
|
+
it; a dotted term anywhere in the app opens its definition in place. Algorithm traces
|
|
116
|
+
step through one operation at a time and show the algorithm's state (a queue, the
|
|
117
|
+
domains) beside the drawing, marking what changed.
|
|
113
118
|
- Flashcards for recall. On a keyboard, arrows move, Space flips and 1/2 rate a card.
|
|
114
|
-
- Practice questions with
|
|
119
|
+
- Practice questions with options in a stable shuffled order, an optional hint and
|
|
120
|
+
feedback for every option. A question about a situation shows it (a graph, a
|
|
121
|
+
drawing, a table, a formula) beside the question and states each fact once.
|
|
115
122
|
|
|
116
123
|
The agent uses stored material first, so local content edits work offline. Ask for
|
|
117
124
|
an upstream refresh when you want new course content; an existing check is reused
|
|
@@ -122,9 +129,13 @@ short, direct sentences that keep necessary terms and conditions.
|
|
|
122
129
|
The course home introduces the course, resumes where you left off and lists topics
|
|
123
130
|
with progress. Each view ends with a Next link through cards and practice to the
|
|
124
131
|
next unit. Revision pools cards and questions from the topics you choose (all topics
|
|
125
|
-
until you choose) and can focus on cards marked Again and questions you missed.
|
|
126
|
-
|
|
127
|
-
|
|
132
|
+
until you choose) and can focus on cards marked Again and questions you missed. A
|
|
133
|
+
question you missed stays there after **Try again**; it leaves once you answer it
|
|
134
|
+
correctly from a fresh start. Revision reuses the original items and progress, so
|
|
135
|
+
changing the topic selection never clears results, and it remembers your selection
|
|
136
|
+
for this course. A unit's header links the Lecture Notes, exercises and Exam Prep
|
|
137
|
+
patterns that build on it. In the local preview, a citation opens the stored course
|
|
138
|
+
file at the cited page. Formulas and inline
|
|
128
139
|
notation such as `\(v_i\)` compile locally to native MathML; code and dollar signs
|
|
129
140
|
stay literal. The app has light and dark themes and a phone layout.
|
|
130
141
|
|
|
@@ -137,8 +148,21 @@ and reported, so the agent must review compatibility when extending them.
|
|
|
137
148
|
```sh
|
|
138
149
|
tum-mcp study inspect ./pse-ws26
|
|
139
150
|
tum-mcp study build ./pse-ws26
|
|
151
|
+
tum-mcp study report ./pse-ws26 # review flags and what the sources leave uncovered
|
|
140
152
|
```
|
|
141
153
|
|
|
154
|
+
The agent records what each lecture states students should learn, and which sheet
|
|
155
|
+
problems are prepared, in `.tum-mcp/coverage.json`. `study report` lists outcomes
|
|
156
|
+
that are not yet taught, sources not yet read and problems still pending, so a request
|
|
157
|
+
to cover a whole course is judged against the course's own outcomes.
|
|
158
|
+
|
|
159
|
+
Ask `review-course` to score the lessons and exercises the way a student meets them.
|
|
160
|
+
It gives each unit and exercise 1 to 3 points for correctness, clarity, cognitive load,
|
|
161
|
+
representation, practice and coverage, names what costs each point and saves the
|
|
162
|
+
scores in `.tum-mcp/review.json`. The agent then fixes the findings and scores again.
|
|
163
|
+
Editing a unit or exercise makes its score stale, so `study report` lists what needs a
|
|
164
|
+
new review and what is still below the bar. The scores are not shown in the app.
|
|
165
|
+
|
|
142
166
|
## Preview the app
|
|
143
167
|
|
|
144
168
|
From the course project folder, launch the prepared app with:
|
|
@@ -183,22 +207,56 @@ at the bottom of the outline switches between them and remembers your place; on
|
|
|
183
207
|
it sits inside the open outline. The exercise list groups exercises by sheet and shows
|
|
184
208
|
each sheet's summary and due date when the sources provide them.
|
|
185
209
|
|
|
186
|
-
Each exercise shows the original statement and subparts first. Work on paper
|
|
187
|
-
|
|
188
|
-
goals and one step at a time with optional hints
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
210
|
+
Each exercise shows the original statement and subparts first. Work on paper, open the
|
|
211
|
+
solution directly (one short answer per part, as a table, graph, formula or code), or
|
|
212
|
+
open **Guidance** for the exercise's goals and one step at a time with optional hints.
|
|
213
|
+
Multiple-choice steps are checked; for every other step you work on paper and press
|
|
214
|
+
**Compare**, the one place that shows the answer, its reasoning and a hint for the
|
|
215
|
+
likeliest mistake. **Review** beside a prerequisite opens the Study passage next to
|
|
216
|
+
the exercise without losing your place. A sheet whose problems are not all prepared
|
|
217
|
+
says which ones are still missing. Code steps open the function skeleton in a small editor and
|
|
218
|
+
show the model answer as code; code is never run, and nothing is graded by keywords.
|
|
219
|
+
Finishing the last step marks the exercise completed in the outline; you can also
|
|
220
|
+
right-click any entry to mark it. A Next link leads to the following exercise. Large
|
|
221
|
+
programming exercises can come with small distilled practice exercises that train one
|
|
222
|
+
idea each and link back to the original.
|
|
223
|
+
|
|
224
|
+
Choices, code drafts, hints and completion marks stay in this browser. Changing a
|
|
225
|
+
checked choice clears its verdict. Semantic changes start fresh progress for only that exercise, while retaining older
|
|
198
226
|
browser records; source-hash review alone preserves progress.
|
|
199
227
|
Reset on each workspace home affects only that workspace. Exercise passage comments
|
|
200
228
|
use the existing private comment service; hosted exports do not expose it.
|
|
201
229
|
|
|
230
|
+
## Prepare for exams
|
|
231
|
+
|
|
232
|
+
Ask `prepare-exams` to build the **Exam Prep** workspace from the course's past exams,
|
|
233
|
+
exercises and materials. Past exams come from `materials/exams` (Moodle) or files you hold yourself:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
tum-mcp study import ./pse-ws26 --file "Klausur WS23.pdf" --kind exam --title "Endterm WS23/24"
|
|
237
|
+
tum-mcp study duplicates ./pse-ws26 --near # identical and likely duplicate copies
|
|
238
|
+
tum-mcp study exam-report ./pse-ws26 # what the agent reads before authoring
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Imported files stay private and survive campus syncs. Copies of the same exam from
|
|
242
|
+
different places count once.
|
|
243
|
+
|
|
244
|
+
- **Cheatsheet**: a semester map of the exam-relevant ideas and one-line entries with
|
|
245
|
+
formulas, triggers and pitfalls; open an entry for details. The map can be dragged,
|
|
246
|
+
zoomed and opened full screen.
|
|
247
|
+
- **Exam patterns**: recurring question types with recognition cues, a solving workflow,
|
|
248
|
+
answer template, marking points, a worked practice that applies each workflow step,
|
|
249
|
+
and drills whose answers you can open at any time.
|
|
250
|
+
- **Practice exams**: work through real past papers question by question with
|
|
251
|
+
guidance, or read a whole paper and open each question's solution to check yourself;
|
|
252
|
+
forecast practice exams follow the real exam's length and weighting with new
|
|
253
|
+
variants and untested topics.
|
|
254
|
+
|
|
255
|
+
Right-click any entry in the sidebar, in any workspace, to mark it as completed.
|
|
256
|
+
|
|
257
|
+
Statistics such as "seen in 4 of 6 exams" are history, never a prediction. Exam Prep
|
|
258
|
+
always stays local: it is never published.
|
|
259
|
+
|
|
202
260
|
Existing `study/` projects continue to work. New projects use `app/`. To upgrade a
|
|
203
261
|
verified legacy layout explicitly, run `tum-mcp study build PROJECT --upgrade-layout`.
|
|
204
262
|
It keeps the original tree at `.tum-mcp/layout-backup/`, preserves the course identity,
|
|
@@ -408,33 +466,11 @@ compiler. `runtime status` prints the exact command and never runs it for you.
|
|
|
408
466
|
Windows on ARM, Intel Macs, Linux ARM64 and musl Linux are not supported: Manim's
|
|
409
467
|
OpenGL dependencies publish no wheels there.
|
|
410
468
|
|
|
411
|
-
##
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
Search is anonymous and bounded; a limited result set is not a complete inventory.
|
|
417
|
-
`tum-mcp studocu login` explains how to sign in to Studocu in your own browser.
|
|
418
|
-
The extension cannot infer account entitlement or download original files through
|
|
419
|
-
the public MCP. Save an original that your account permits in the browser.
|
|
420
|
-
|
|
421
|
-
The skill records a reviewed selection with `tum-mcp studocu plan PROJECT
|
|
422
|
-
--selection FILE` and tracks it with `tum-mcp studocu status PROJECT --json`.
|
|
423
|
-
Import a selected original with `tum-mcp studocu import PROJECT --document-id ID
|
|
424
|
-
--file FILE`. The document-to-file association is user-selected. Originals go to
|
|
425
|
-
`materials/studocu/summaries`, `materials/studocu/exams` (including mocks and
|
|
426
|
-
solutions), or `materials/studocu/other`. Files remain local and retain their
|
|
427
|
-
original bytes. Consult the skill's collection reference for the selection schema.
|
|
428
|
-
Exact matches in the same group, type and known year share one original through
|
|
429
|
-
a private alias. Each selected document retains its own source identity and URL.
|
|
430
|
-
Changing a document's classification or refreshing its original separates aliases
|
|
431
|
-
when they no longer match; previous versions remain in private history.
|
|
432
|
-
When an existing selection is planned again, unchanged duplicate originals are
|
|
433
|
-
consolidated. Edited or missing files are preserved for review.
|
|
434
|
-
|
|
435
|
-
Local study material can cite student uploads. Publishing rejects included
|
|
436
|
-
Studocu-backed sources; this source check cannot identify uncited copied text or
|
|
437
|
-
replace a review of the published content.
|
|
469
|
+
## Materials you download yourself
|
|
470
|
+
|
|
471
|
+
Files from other websites are not downloaded for you. Save them yourself and add them
|
|
472
|
+
with `tum-mcp study import PROJECT --file FILE --kind exam --title TITLE`.
|
|
473
|
+
Imported files stay private: they are never published.
|
|
438
474
|
|
|
439
475
|
## The course app
|
|
440
476
|
|
package/docs/tum-mcp.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Package: `@jamestesting888/tum-mcp`, CLI: `tum-mcp`, backend: Python 3.13.
|
|
4
4
|
The package combines read-only course retrieval, managed client installation and
|
|
5
|
-
|
|
5
|
+
six base course workflows and three optional extensions.
|
|
6
6
|
|
|
7
7
|
## Current capabilities
|
|
8
8
|
|
|
@@ -208,7 +208,7 @@ in JSON for troubleshooting. Default diagnostics do not create state folders.
|
|
|
208
208
|
uses read-only local status to initialize an explicitly chosen available course or
|
|
209
209
|
reconcile an existing project. Incomplete state is preserved for recovery.
|
|
210
210
|
`prepare-study` authors lessons; `prepare-exercises` authors guided released sheets
|
|
211
|
-
in the same
|
|
211
|
+
and `prepare-exams` builds a local Exam Prep workspace in the same app. See the
|
|
212
212
|
[study guide](study.md) for examples, state structure and helper commands.
|
|
213
213
|
|
|
214
214
|
One project holds one course. Source revisions, coverage and course knowledge
|
|
@@ -225,9 +225,9 @@ writing files with activation.
|
|
|
225
225
|
|
|
226
226
|
The Codex adapter uses a contained Node launcher to pin the managed Python in
|
|
227
227
|
isolated mode; portable stdio manifests require a bare or contained executable.
|
|
228
|
-
The base pack contains
|
|
229
|
-
`prepare-study`, `prepare-exercises` and `publish-course`. Optional extensions add
|
|
230
|
-
`prepare-lecture`, `
|
|
228
|
+
The base pack contains seven skills: `read-content`, `sync-course`,
|
|
229
|
+
`prepare-study`, `prepare-exercises`, `prepare-exams`, `review-course` and `publish-course`. Optional extensions add
|
|
230
|
+
`prepare-lecture`, `audio-notes` and `video-notes`; choose them with
|
|
231
231
|
`tum-mcp install`.
|
|
232
232
|
Website-specific retrieval guidance is loaded from references within read-content.
|
|
233
233
|
Teaching and content guidance lives with prepare-study; the course app and its
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wheel": "tum_mcp-0.
|
|
3
|
-
"wheelSha256": "
|
|
2
|
+
"wheel": "tum_mcp-0.13.0-py3-none-any.whl",
|
|
3
|
+
"wheelSha256": "8aeaf0c4be57000272f679694d6e9d35b0534efb821c009ab5a5a0d3248a664f",
|
|
4
4
|
"requirementsSha256": "39a401b6e606d3292eb91b8fe9ef60367d4852f203eb409dc52f38b76e513ccf"
|
|
5
5
|
}
|
|
Binary file
|
package/npm/tum-mcp.mjs
CHANGED
|
@@ -24,13 +24,12 @@ try {
|
|
|
24
24
|
['setup', 'Configure your coding client and managed runtime.'],
|
|
25
25
|
['login', 'Sign in to selected campus services.'],
|
|
26
26
|
['doctor', 'Show connections, extensions and relevant client/runtime health.'],
|
|
27
|
-
['install', 'Choose optional Lecture,
|
|
27
|
+
['install', 'Choose optional Lecture, Audio Notes or Video Notes workflows.'],
|
|
28
28
|
['uninstall', 'Choose extensions or All to remove TUM MCP.'],
|
|
29
29
|
['manage', 'Manage TUMonline permissions.'],
|
|
30
30
|
['skills', 'Inspect and validate workflow skills.'],
|
|
31
31
|
['study', 'Prepare, preview and publish a course app.'],
|
|
32
32
|
['lecture', 'Prepare lecture recording evidence (optional extension).'],
|
|
33
|
-
['studocu', 'Collect selected supplementary materials (optional extension).'],
|
|
34
33
|
['video-notes', 'Render and maintain explainer videos (optional extension).'],
|
|
35
34
|
['discover', 'List accessible courses or channels.'],
|
|
36
35
|
['update', 'Update the package and configured clients.'],
|
|
@@ -43,7 +42,7 @@ try {
|
|
|
43
42
|
} else if (['--version', 'version'].includes(args[0])) {
|
|
44
43
|
console.log(version);
|
|
45
44
|
} else if (args[0] === 'install' && args.some(arg => ['--help', '-h'].includes(arg))) {
|
|
46
|
-
printHelp(version, 'Choose optional workflows to install, or provide their names.', 'tum-mcp install [lecture|
|
|
45
|
+
printHelp(version, 'Choose optional workflows to install, or provide their names.', 'tum-mcp install [lecture|audio-notes|video-notes]... [OPTIONS]', [
|
|
47
46
|
['Options', [['--asr / --no-asr', 'Provision isolated lecture recognition; models load on demand.'], ['--json', 'Print machine-readable results.'], ['-h, --help', 'Show this help.']]],
|
|
48
47
|
]);
|
|
49
48
|
} else if (['setup', 'update', 'uninstall'].includes(args[0]) && args.some(arg => ['--help', '-h'].includes(arg))) {
|
|
@@ -60,7 +59,7 @@ try {
|
|
|
60
59
|
},
|
|
61
60
|
uninstall: {
|
|
62
61
|
description: 'Remove managed setup while retaining saved user data by default.',
|
|
63
|
-
usage: 'tum-mcp uninstall [lecture|
|
|
62
|
+
usage: 'tum-mcp uninstall [lecture|audio-notes|video-notes]... [OPTIONS]',
|
|
64
63
|
options: [['(no arguments)', 'Choose extensions or All in the interactive picker.'], ['--client NAME', 'Remove one client registration.'], ['--host local|windows', 'Choose the client host.'], ['--purge-runtime', 'Remove verified runtimes when All is selected.'], ['--forget-credentials', 'Forget saved credentials when All is selected.']],
|
|
65
64
|
},
|
|
66
65
|
};
|
|
@@ -69,7 +68,7 @@ try {
|
|
|
69
68
|
['Options', [...selected.options, ['-h, --help', 'Show this help.']]],
|
|
70
69
|
]);
|
|
71
70
|
} else {
|
|
72
|
-
const hasExtension = args.slice(1).some(arg => ['lecture', '
|
|
71
|
+
const hasExtension = args.slice(1).some(arg => ['lecture', 'audio-notes', 'video-notes'].includes(arg));
|
|
73
72
|
let packageAction = args[0] === 'update';
|
|
74
73
|
if (args[0] === 'update') {
|
|
75
74
|
if (args.length > 2 || (args.length === 2 && args[1] !== '--local')) throw new Error('Usage: tum-mcp update [--local]. Use --help for details.');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jamestesting888/tum-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Read-only TUM campus tools and source-backed study, exercise and lecture workflows",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -58,7 +58,6 @@
|
|
|
58
58
|
"zulip",
|
|
59
59
|
"codex",
|
|
60
60
|
"tumonline",
|
|
61
|
-
"studocu",
|
|
62
61
|
"lecture-notes"
|
|
63
62
|
]
|
|
64
63
|
}
|