@jamestesting888/tum-mcp 0.14.1 → 0.15.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 +70 -9
- package/README.md +4 -4
- package/docs/development.md +58 -2
- package/docs/lecture-notes.md +7 -6
- package/docs/study.md +97 -33
- package/docs/tum-mcp.md +8 -2
- package/npm/backend/manifest.json +2 -2
- package/npm/backend/{tum_mcp-0.14.1-py3-none-any.whl → tum_mcp-0.15.0-py3-none-any.whl} +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,66 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 0.15.0 — 2026-10-31
|
|
4
|
+
|
|
5
|
+
- The managed block in a course project's `AGENTS.md` is now an agent guide. It tells the
|
|
6
|
+
agent that it works for a student of the course, which skill handles which kind of
|
|
7
|
+
request (and how to answer "what should I do now?" with a dated plan), how to read short
|
|
8
|
+
requests such as "this week" or "the exam", where each kind of course information lives,
|
|
9
|
+
and how to answer as a tutor. `study sync` and `study upgrade` replace an outdated guide
|
|
10
|
+
and keep the student's own text; an edited guide is kept and reported.
|
|
11
|
+
- `tum-mcp study find PROJECT "words"` lists the pages of stored sources that mention every
|
|
12
|
+
word, with a snippet each, and names the sources it could not search. Without words it
|
|
13
|
+
lists every source with its key, title, file and status.
|
|
14
|
+
- New course handbooks have a Conventions section for the textbook, notation, terms and
|
|
15
|
+
answer format the course expects.
|
|
16
|
+
- Agents look at the slide and sheet pages they rely on instead of trusting extracted text,
|
|
17
|
+
which drops figures and scrambles tables and formulas. `study text --images` renders up to
|
|
18
|
+
12 pages to PNGs for hosts that cannot open PDFs (such as Codex), and `study find` and
|
|
19
|
+
`study text` name the PDF file so hosts that can (such as Claude Code) open the page
|
|
20
|
+
directly. The agent guide, the skills and the Moodle and Artemis read tools say so; the
|
|
21
|
+
unused PDF page reader in the extraction worker became this renderer.
|
|
22
|
+
- One unreadable page no longer fails a whole PDF. When pypdf rejects a page (for example a
|
|
23
|
+
slide beyond its parsing limits) or the whole file (a damaged cross-reference table), PDFium
|
|
24
|
+
reads it instead; a page neither can read is listed as needing a visual check. This covers
|
|
25
|
+
`study text`, `study find`, `study import` and Moodle and Artemis material text. `study find`
|
|
26
|
+
also matches words printed with ligatures, so "first" finds "first".
|
|
27
|
+
- Course content can use heading levels 1 to 3 in Study, Exercises, Exam and Lecture.
|
|
28
|
+
A block without a title continues the section above it, so a table or answer frame
|
|
29
|
+
no longer needs a heading of its own. The page outline nests subsections.
|
|
30
|
+
- A multi-part exercise shows one guide per part. The Guide, Solution and "Try another"
|
|
31
|
+
buttons share one row under the problem, and the redundant list of part numbers is gone.
|
|
32
|
+
- `study report` flags a flat Study outline of four or more units, multi-part exercises that
|
|
33
|
+
share one guide, and exercise passages that set assumptions or sources apart.
|
|
34
|
+
- review-course also scores organization and redundancy for each unit and exercise, and the
|
|
35
|
+
course as a whole: the order of its units and groups, what repeats across units and
|
|
36
|
+
workspaces, and, when Exercises, Exam or Lecture sit beside Study, how they
|
|
37
|
+
link to the passages that teach what they need (integration). `study report --section
|
|
38
|
+
structure` prints a course map and flags terms used before they are taught, odd groups,
|
|
39
|
+
repeated passages and practice, and missing links. Each lost point names its rubric
|
|
40
|
+
check, and the report counts the checks that fail most. An existing `review.json` still
|
|
41
|
+
loads and lists the dimensions it lacks.
|
|
42
|
+
- PDF text extraction works for agents running in a macOS sandbox such as Codex's
|
|
43
|
+
`workspace-write`: its memory limit no longer needs to list every process on the machine,
|
|
44
|
+
which the sandbox forbids, so `study text` no longer fails on uncached PDFs there.
|
|
45
|
+
- The skills group Study units by lecture, fold assumptions into the problem statement,
|
|
46
|
+
give verdicts with the source's definitions, cover every presented part of the chosen
|
|
47
|
+
sheet, and take the newest sheet stamped for the current semester when no release date
|
|
48
|
+
is shown.
|
|
49
|
+
- Campus tools that only read from Moodle, Artemis or Zulip and save local files or
|
|
50
|
+
checkpoints (`moodle_download_material`, `moodle_refresh`, `artemis_get_attachment`,
|
|
51
|
+
`zulip_save_checkpoint`) are now marked read-only, so agents that ask before
|
|
52
|
+
non-read-only tools no longer prompt for downloads. Sign-in, sign-out and cache
|
|
53
|
+
clearing keep their warnings.
|
|
54
|
+
- `tum-mcp doctor --live` saves each campus check with its time, and `doctor` and the
|
|
55
|
+
`login` selector show that result for 12 hours instead of "Not verified". Signing in
|
|
56
|
+
again or logging out clears it; only the result, its time and file metadata are stored.
|
|
57
|
+
|
|
58
|
+
## 0.14.2 — 2026-10-30
|
|
59
|
+
|
|
60
|
+
- TUMonline login keeps its browser open when an unauthenticated session refresh
|
|
61
|
+
returns an empty HTTP 204, allowing sign-in to finish instead of reporting
|
|
62
|
+
`INVALID_RESPONSE`.
|
|
63
|
+
|
|
3
64
|
## 0.14.1 — 2026-10-30
|
|
4
65
|
|
|
5
66
|
- TUMonline login keeps waiting while sign-in is incomplete. An empty HTTP 200
|
|
@@ -26,7 +87,7 @@
|
|
|
26
87
|
- Drawings keep 12 px text on a phone: graphs and UML diagrams shrink only that far and
|
|
27
88
|
scroll sideways beyond it; plots redraw at their real width.
|
|
28
89
|
- `tum-mcp study visuals PROJECT` measures every drawn visual of lessons, practice
|
|
29
|
-
questions, exercise steps and Exam
|
|
90
|
+
questions, exercise steps and Exam at 390, 600 and 1280 px (lines through nodes,
|
|
30
91
|
clashing labels, small or clipped text, drawings that differ from their block), writes
|
|
31
92
|
contact sheets to `.tum-mcp/visuals/` and records the result; `study report` gains a
|
|
32
93
|
render section that lists missing, stale and failing checks.
|
|
@@ -65,8 +126,8 @@
|
|
|
65
126
|
graph. **Compare** is now the only reveal: hints stop after the last one, a step
|
|
66
127
|
without a check is compared too, and an explanation may not repeat its model answer.
|
|
67
128
|
- **Review** beside a prerequisite opens that Study passage next to the exercise without
|
|
68
|
-
losing your place; a unit links its Lecture
|
|
69
|
-
the Exam
|
|
129
|
+
losing your place; a unit links its Lecture, the exercises that build on it and
|
|
130
|
+
the Exam patterns that cite it, and Lecture link back. In the local
|
|
70
131
|
preview, a citation opens the stored course file at the cited page.
|
|
71
132
|
- A new `review-course` skill scores each Study unit and exercise from 1 to 3 on
|
|
72
133
|
correctness, clarity, cognitive load, representation, practice and coverage, saves the
|
|
@@ -99,11 +160,11 @@
|
|
|
99
160
|
|
|
100
161
|
## 0.11.0 — 2026-10-28
|
|
101
162
|
|
|
102
|
-
- Add the base `prepare-exams` workflow and the local **Exam
|
|
163
|
+
- Add the base `prepare-exams` workflow and the local **Exam** workspace: a
|
|
103
164
|
cheatsheet with a semester map you can pan, zoom and open full screen, exam patterns
|
|
104
165
|
with solving workflows and a worked practice question each, guided past papers, and
|
|
105
166
|
practice exams with a solution under every question. Statistics, map layout,
|
|
106
|
-
blueprint and novelty checks are derived by code. Exam
|
|
167
|
+
blueprint and novelty checks are derived by code. Exam is never published.
|
|
107
168
|
- Add `tum-mcp study exam-report`, `study text` (page text extracted once per file),
|
|
108
169
|
`study import` (private local files such as past exams you hold) and
|
|
109
170
|
`study duplicates` (identical and near-duplicate copies across Moodle, Artemis,
|
|
@@ -131,7 +192,7 @@
|
|
|
131
192
|
- A page whose sections all cite the same sources shows one citation beside its title
|
|
132
193
|
line, and a cheatsheet section whose entries share sources cites them once; exam
|
|
133
194
|
pages mention past exams only when there are some. Lines that only described a page
|
|
134
|
-
or told students to compare (such as the Exam
|
|
195
|
+
or told students to compare (such as the Exam summary) are gone, and the skills
|
|
135
196
|
ask for text that teaches.
|
|
136
197
|
- A new `tree` block draws hierarchies such as file structures, object trees and call
|
|
137
198
|
trees with icons, connector lines and optional notes.
|
|
@@ -190,9 +251,9 @@
|
|
|
190
251
|
- Improve detail: readable graph edges, fitted phone diagram labels, word-wrapped
|
|
191
252
|
boxes, no dark-mode flash, steady flashcard layout, labelled reset and in-app
|
|
192
253
|
confirmation for deleting comments, and neutral page copy on published sites.
|
|
193
|
-
- Lecture
|
|
254
|
+
- Lecture: recording times open from the sources of each passage and figure
|
|
194
255
|
instead of appearing in the text, and the sidebar lists lectures only.
|
|
195
|
-
- Add a Contents button to Study, Exercises and Lecture
|
|
256
|
+
- Add a Contents button to Study, Exercises and Lecture. It lists the page's
|
|
196
257
|
headings and follows your reading; wide screens can keep it docked beside the
|
|
197
258
|
text. The home resume button shows a play icon with the topic name.
|
|
198
259
|
- Keep queued Contents updates from a previous view from hiding the current
|
|
@@ -227,7 +288,7 @@
|
|
|
227
288
|
`tum-mcp install studocu`. Preserve originals, course bindings and recovery
|
|
228
289
|
history; supplementary personal-use sources are excluded from publication.
|
|
229
290
|
- Add optional `tum-mcp install lecture` and Prepare Lecture for timestamped
|
|
230
|
-
Lecture
|
|
291
|
+
Lecture in the existing course app. Prefer transcripts and supplied
|
|
231
292
|
materials, skip whole-silent recordings, preserve original-time coverage and
|
|
232
293
|
request only critical video frames. Publication remains an explicit opt-in.
|
|
233
294
|
- Support isolated, pinned CPU recognition on Windows x64, Intel Mac and supported
|
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ Run `tum-mcp install` to choose extensions, then reload your client.
|
|
|
51
51
|
|
|
52
52
|
| Extension | Skill added | What it offers |
|
|
53
53
|
| --- | --- | --- |
|
|
54
|
-
| `lecture` | `prepare-lecture` | Lecture
|
|
54
|
+
| `lecture` | `prepare-lecture` | Lecture with the professor's extra explanations, timestamps and selected critical visuals. Prefers transcripts and slides; local recognition is optional. |
|
|
55
55
|
| `audio-notes` | `audio-notes` | Turn prepared Study lessons into concise audio tracks, with resumable generation and coverage tracking. Voice setup happens when used. |
|
|
56
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. |
|
|
57
57
|
|
|
@@ -69,11 +69,11 @@ After initialization, a course project looks something like this:
|
|
|
69
69
|
course/
|
|
70
70
|
AGENTS.md Course instructions and inventory
|
|
71
71
|
materials/ Course content, exams, exercises and other sources
|
|
72
|
-
app/ Study, Exercises, Exam
|
|
72
|
+
app/ Study, Exercises, Exam and optional Lecture website
|
|
73
73
|
content.json Study lessons, flashcards and practice
|
|
74
74
|
exercises.json Guided exercise content
|
|
75
|
-
exam.json Exam
|
|
76
|
-
lectures.json Optional: Lecture
|
|
75
|
+
exam.json Exam: cheatsheet, exam patterns, practice exams (local only)
|
|
76
|
+
lectures.json Optional: Lecture
|
|
77
77
|
lecture-assets/ Optional: selected lecture figures
|
|
78
78
|
.tum-mcp/ Private course state, comments and lecture evidence
|
|
79
79
|
audio/ Optional: scripts, tracks and chapters for Audio Notes
|
package/docs/development.md
CHANGED
|
@@ -28,6 +28,41 @@ Set `TUM_MOODLE_SYSTEM_KEYRING=1` for a unique synthetic native-store round trip
|
|
|
28
28
|
The ordinary campus runtime uses encrypted local files and owner-restricted keys.
|
|
29
29
|
Set `TUM_MCP_BROWSER_INTEGRATION=1` to include the real HTTP static-export browser
|
|
30
30
|
check locally; CI enables it. Set environment variables using your shell's syntax.
|
|
31
|
+
Consumer checks default to full study journeys on every discovered browser.
|
|
32
|
+
CI sets `TUM_MCP_STUDY_BROWSER_JOURNEYS=primary`: the first browser on each desktop
|
|
33
|
+
OS and WSL engine runs the full installed study journey; every additional browser
|
|
34
|
+
runs a short installed UI check. All browsers retain real pipe transport, synthetic
|
|
35
|
+
cookie and encrypted-session checks. The shorter journey covers module loading,
|
|
36
|
+
content/flashcard/practice views, saved progress after reload, keyboard navigation,
|
|
37
|
+
theme switching and phone/desktop overflow under a project URL prefix. Consumer
|
|
38
|
+
JSON names each browser's `studyCoverage` and records `studySeconds`. Unset the
|
|
39
|
+
variable or use `all` for a browser-specific investigation; other values fail
|
|
40
|
+
before consumer installation.
|
|
41
|
+
|
|
42
|
+
Owned loopback browsers use `launch_loopback_browser`, including local visual
|
|
43
|
+
checks and Windows browsers launched through WSL. On Windows it disables
|
|
44
|
+
Chromium's `TcpPortRandomizationWin`, which can fail local module requests with
|
|
45
|
+
`ERR_NO_BUFFER_SPACE` even when socket resources are available
|
|
46
|
+
([upstream issue](https://issuetracker.google.com/issues/572515601)). The launcher
|
|
47
|
+
reads and preserves Playwright's default disabled features before adding this
|
|
48
|
+
opt-out. A native browser regression checks the effective arguments, and installed
|
|
49
|
+
consumer checks verify that the option reaches Windows browsers through WSL.
|
|
50
|
+
|
|
51
|
+
The broad checkout study journey runs on Linux. macOS and Windows deselect only
|
|
52
|
+
`tests/integration/test_study_browser.py::test_study_website_journeys_pass_in_the_checkout`;
|
|
53
|
+
their full installed journeys still exercise that fixture. Other source tests and
|
|
54
|
+
native checks keep their existing coverage. Package builds, upgrades and lifecycle
|
|
55
|
+
tests continue in all five environments. Ruff lint/format runs once on Linux, after dependency
|
|
56
|
+
installation. The existing five exact-revision GitHub checks remain required.
|
|
57
|
+
|
|
58
|
+
During development, run affected tests and focused regressions. Reuse applicable
|
|
59
|
+
passing results instead of running a complete local suite immediately before the
|
|
60
|
+
same required CI suite. Full integration/release coverage may come from that
|
|
61
|
+
exact-revision CI run; a local pass never substitutes for pending or failed native
|
|
62
|
+
checks. Relevant source, test, dependency or environment changes invalidate earlier
|
|
63
|
+
results. `AGENTS.md` is local and ignored; this tracked document carries the policy
|
|
64
|
+
to other checkouts.
|
|
65
|
+
|
|
31
66
|
Verbose test IDs, immediate first-failure output, slowest-test timings and a stack
|
|
32
67
|
dump after 60 seconds make a stalled boundary visible. The dump is diagnostic;
|
|
33
68
|
it does not skip a slow test or extend the CI deadline.
|
|
@@ -108,7 +143,7 @@ tag and artifact integrity before pushing the release documentation.
|
|
|
108
143
|
| `src/tum_mcp/client_*.py` | Host-specific configuration and managed skill installation |
|
|
109
144
|
| `src/tum_mcp/study_*.py` | Course snapshots, teaching, build, preview and project-local passage comments |
|
|
110
145
|
| `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
|
|
146
|
+
| `src/tum_mcp/exam_*.py` | Exam contracts, derived statistics, report and map layout; never published |
|
|
112
147
|
| `src/tum_mcp/study_text.py`, `study_import.py`, `study_duplicates.py` | Page-text cache, private local imports and cross-provider duplicate reports |
|
|
113
148
|
| `src/tum_mcp/video_*.py`, `bundled/video_runtime/` | Video Notes contracts, lint, media checks, orchestration and the isolated render worker |
|
|
114
149
|
| `npm/` | Private-runtime installation, updates, integrity and cleanup |
|
|
@@ -139,7 +174,11 @@ regressions. The preparation skills describe content and point to the app instea
|
|
|
139
174
|
of restating its styling, so app changes need no skill edits unless an authored field
|
|
140
175
|
or its meaning changes. Remove a template file by moving it to
|
|
141
176
|
`RETIRED_TEMPLATE_FILES`: builds then delete unedited copies and publication removes
|
|
142
|
-
them from managed sites. The shipped component preview
|
|
177
|
+
them from managed sites. The shipped component preview demonstrates the three
|
|
178
|
+
heading levels, untitled continuations and guides placed beneath their own exercise
|
|
179
|
+
parts using validated `part_blocks` anchors. Include the optional Lecture
|
|
180
|
+
workspace with `tum-mcp study demo PROJECT --lectures` after selecting the Lecture
|
|
181
|
+
extension. The preview remains deliberately minimal;
|
|
143
182
|
richer learning pilots live in `tests/fixtures/course_app/`. Local agent notes and
|
|
144
183
|
screenshots belong in ignored `docs/local/` or `.omo/`. Keep real course projects,
|
|
145
184
|
session files, databases, downloads and environment files out of artifacts.
|
|
@@ -183,3 +222,20 @@ unmeasured until genuine fresh-session trial records exist. Default tests use
|
|
|
183
222
|
synthetic media and course data. `test:consumer` and `test:upgrade` exercise optional
|
|
184
223
|
install/update/export/removal from an actual local npm artifact. Never publish or
|
|
185
224
|
stage npm as a test.
|
|
225
|
+
|
|
226
|
+
## Explore maintenance boundary
|
|
227
|
+
|
|
228
|
+
`ExploreMaterial` uses existing safe blocks and its own versioned sources. Empty
|
|
229
|
+
`Unit.explore` is omitted for legacy serialization; `unit_revision` excludes it to
|
|
230
|
+
preserve core progress. Full teaching/render reviews include it. The private ledger
|
|
231
|
+
records source-backed enrichment classification and separate pending work; classification
|
|
232
|
+
changes invalidate course-review structure identity. Default global definitions,
|
|
233
|
+
prerequisite maps, Revision and audio/video inputs stay core-only.
|
|
234
|
+
|
|
235
|
+
`explore.mjs` is a packaged template asset. Routes, tab sets, reading outlines and
|
|
236
|
+
comments must be checked with and without optional items. Explore anchors use comment
|
|
237
|
+
schema v4 without rewriting legacy files on read. Keep export source/asset closure
|
|
238
|
+
complete while removing private paths and classification reasons. Extend the existing
|
|
239
|
+
installed browser journey, rather than adding a platform matrix. Focused regressions
|
|
240
|
+
live in `test_study_explore.py` and `test_study_explore_browser.py`; run them plus affected
|
|
241
|
+
study/course-app/exercise tests and installation/migration checks for integration.
|
package/docs/lecture-notes.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Lecture
|
|
1
|
+
# Lecture
|
|
2
2
|
|
|
3
3
|
Install the optional extension only when needed:
|
|
4
4
|
|
|
@@ -13,14 +13,14 @@ tools. Base setup keeps its five skills and existing services. Removing the opti
|
|
|
13
13
|
with `tum-mcp uninstall lecture` preserves course notes, evidence, sessions,
|
|
14
14
|
model caches and customizations. Reinstalling can reuse them.
|
|
15
15
|
|
|
16
|
-
Ask: “Prepare Lecture
|
|
17
|
-
what the professor explains beyond the material.” It adds Lecture
|
|
16
|
+
Ask: “Prepare Lecture from this recording and these slides, focusing on
|
|
17
|
+
what the professor explains beyond the material.” It adds Lecture to the
|
|
18
18
|
same course app, alongside Study and Exercises. Notes have coherent explanations,
|
|
19
19
|
examples, important qualifications, formulas and selective source images. The
|
|
20
20
|
sources of each passage and figure open the recording at the measured time, so the
|
|
21
21
|
text carries no timestamps, and the Contents button lists the lecture's sections. Attribution
|
|
22
22
|
review stays private, so the reading flow is clean.
|
|
23
|
-
Lecture
|
|
23
|
+
Lecture has no quizzes or flashcards; broader teaching/practice stays in Study.
|
|
24
24
|
|
|
25
25
|
## Processing order and cost
|
|
26
26
|
|
|
@@ -136,12 +136,13 @@ receipt/image updates. Local comments support `--view lectures --lecture KEY`.
|
|
|
136
136
|
|
|
137
137
|
Open with `tum-mcp study` from the course folder. For a credential-free synthetic
|
|
138
138
|
preview after installing the extension, use `tum-mcp study demo PROJECT --lectures`.
|
|
139
|
-
The default demo
|
|
139
|
+
The default demo includes Study, Exercises and Exam. The Lecture option
|
|
140
|
+
adds a synthetic recording, source image and nested heading examples. Synthetic teaching/timestamps
|
|
140
141
|
exercise the product and do not establish real lecture accuracy.
|
|
141
142
|
|
|
142
143
|
## Publication
|
|
143
144
|
|
|
144
|
-
Lecture
|
|
145
|
+
Lecture is excluded from publication by default, including old saved
|
|
145
146
|
configurations. After reviewing public exposure, use the existing publish-course
|
|
146
147
|
workflow with `--include-lectures`; Exercises has a separate choice. Exclusion
|
|
147
148
|
removes lecture text, lecture-only sources/math and referenced images from exports,
|
package/docs/study.md
CHANGED
|
@@ -4,8 +4,8 @@ Six base skills cover source reading, course sync, Study preparation, Exercises
|
|
|
4
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
|
-
The optional `prepare-lecture` skill adds a Lecture
|
|
8
|
-
`tum-mcp install lecture`. See [Lecture
|
|
7
|
+
The optional `prepare-lecture` skill adds a Lecture workspace; install it with
|
|
8
|
+
`tum-mcp install lecture`. See [Lecture](lecture-notes.md).
|
|
9
9
|
The optional `audio-notes` skill turns prepared lessons into spoken tracks; install
|
|
10
10
|
it with `tum-mcp install audio-notes`. The optional `video-notes` skill turns prepared
|
|
11
11
|
topics into short narrated explainer videos; install it with `tum-mcp install video-notes`.
|
|
@@ -29,7 +29,7 @@ retrieved source is recorded as a gap rather than an empty course.
|
|
|
29
29
|
|
|
30
30
|
```text
|
|
31
31
|
pse-ws26/
|
|
32
|
-
AGENTS.md
|
|
32
|
+
AGENTS.md Managed agent guide, then your own rules
|
|
33
33
|
materials/
|
|
34
34
|
content/ Lectures, slides and reading
|
|
35
35
|
exams/ Available revision material
|
|
@@ -39,17 +39,26 @@ pse-ws26/
|
|
|
39
39
|
course.md Cited course structure, logistics, rules and unknowns
|
|
40
40
|
state.json Course binding, source versions and coverage
|
|
41
41
|
notes/ Detailed course/agent notes when needed
|
|
42
|
-
app/ Shared Study, Exercises, Exam
|
|
42
|
+
app/ Shared Study, Exercises, Exam and optional Lecture website
|
|
43
43
|
content.json Optional source-backed Study content
|
|
44
44
|
exercises.json Optional prepared exercise guidance
|
|
45
|
-
exam.json Optional Exam
|
|
45
|
+
exam.json Optional Exam 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
|
```
|
|
49
49
|
|
|
50
|
-
`AGENTS.md`
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
`AGENTS.md` starts with a managed agent guide; keep your own rules and standing
|
|
51
|
+
preferences outside it. The guide tells the agent that it works for a student of this
|
|
52
|
+
course, which skill handles which kind of request, how to read short requests such as
|
|
53
|
+
"this week" or "the exam", where each kind of course information lives, and how to
|
|
54
|
+
answer as a tutor: from the course's own sources and notation, with the next step
|
|
55
|
+
before a full solution. `study sync` and `study upgrade` replace an outdated guide and
|
|
56
|
+
keep the rest of the file; an edited guide is kept and reported for review.
|
|
57
|
+
|
|
58
|
+
The guide sends the agent to `.tum-mcp/course.md` first. That short handbook explains
|
|
59
|
+
the course's goals, lectures/tutorials, weekly work and platforms, assessment/bonus
|
|
60
|
+
conditions, conventions (textbook, notation, answer format), communication and
|
|
61
|
+
preparation map. Claims carry source
|
|
53
62
|
links/locators and checked dates; unknowns and conflicting announcements stay visible.
|
|
54
63
|
Detailed source content remains in materials/. All TUM MCP course state, plans and
|
|
55
64
|
agent notes live under .tum-mcp/.
|
|
@@ -68,7 +77,8 @@ comments, publication settings and the full old root instructions as
|
|
|
68
77
|
`.tum-mcp/legacy-AGENTS.md`. Course identity, materials and browser progress stay the
|
|
69
78
|
same. Existing legacy state remains readable until upgrade; two state folders are
|
|
70
79
|
a conflict to reconcile, never silently merged. This differs from the web-folder
|
|
71
|
-
upgrade below.
|
|
80
|
+
upgrade below. In a project that already uses `.tum-mcp/`, `study upgrade` only
|
|
81
|
+
refreshes the agent guide in `AGENTS.md`.
|
|
72
82
|
|
|
73
83
|
## State-based workflow
|
|
74
84
|
|
|
@@ -136,7 +146,7 @@ until you choose) and can focus on cards marked Again and questions you missed.
|
|
|
136
146
|
question you missed stays there after **Try again**; it leaves once you answer it
|
|
137
147
|
correctly from a fresh start. Revision reuses the original items and progress, so
|
|
138
148
|
changing the topic selection never clears results, and it remembers your selection
|
|
139
|
-
for this course. A unit's header links the Lecture
|
|
149
|
+
for this course. A unit's header links the Lecture, exercises and Exam
|
|
140
150
|
patterns that build on it. In the local preview, a citation opens the stored course
|
|
141
151
|
file at the cited page. Formulas and inline
|
|
142
152
|
notation such as `\(v_i\)` compile locally to native MathML; code and dollar signs
|
|
@@ -150,18 +160,36 @@ and reported, so the agent must review compatibility when extending them.
|
|
|
150
160
|
|
|
151
161
|
```sh
|
|
152
162
|
tum-mcp study inspect ./pse-ws26
|
|
163
|
+
tum-mcp study find ./pse-ws26 "observer pattern" # stored pages that mention every word
|
|
164
|
+
tum-mcp study text ./pse-ws26 --key KEY --pages 3-5 --images # page text plus a PNG of each page
|
|
153
165
|
tum-mcp study build ./pse-ws26
|
|
154
|
-
tum-mcp study report ./pse-ws26 # review flags and what the sources leave uncovered
|
|
166
|
+
tum-mcp study report ./pse-ws26 # review flags, the course map and what the sources leave uncovered
|
|
155
167
|
tum-mcp study visuals ./pse-ws26 # measure every drawn visual and draw contact sheets
|
|
156
168
|
```
|
|
157
169
|
|
|
170
|
+
Slide text finds and quotes a page, but it drops figures and scrambles tables and
|
|
171
|
+
formulas, so the agent looks at every slide or sheet page it relies on. Hosts that
|
|
172
|
+
display PDFs, such as Claude Code, open the page directly; for the others, such as
|
|
173
|
+
Codex, `study text --images` renders up to 12 pages to PNGs under `.tum-mcp/cache/`,
|
|
174
|
+
once per file version, without Poppler or any other system tool.
|
|
175
|
+
|
|
158
176
|
The agent records what each lecture states students should learn, and which sheet
|
|
159
177
|
problems are prepared, in `.tum-mcp/coverage.json`. `study report` lists outcomes
|
|
160
178
|
that are not yet taught, sources not yet read and problems still pending, so a request
|
|
161
179
|
to cover a whole course is judged against the course's own outcomes.
|
|
162
180
|
|
|
163
|
-
|
|
164
|
-
|
|
181
|
+
The Study overview shows known core gaps under **Not prepared yet**, including outcomes
|
|
182
|
+
that are partly prepared. Unknown source coverage and optional reading backlog stay
|
|
183
|
+
in the local agent report. They do not create learner-facing panels or count as prepared.
|
|
184
|
+
The core list updates on build after the agent reviews and updates the ledger; it does
|
|
185
|
+
not track the student's progress. Exercises uses the same expandable presentation for
|
|
186
|
+
pending sheets. Hosted Study queues include
|
|
187
|
+
only sources referenced by the published Study units; the local coverage report keeps
|
|
188
|
+
the full preparation inventory.
|
|
189
|
+
|
|
190
|
+
`study visuals` opens every lesson, practice question, exercise step and Exam
|
|
191
|
+
visual, including exercise Solution, Compare and transfer-answer blocks, in an installed
|
|
192
|
+
Chrome, Edge or Chromium at phone (390 px), narrow (600 px) and
|
|
165
193
|
desktop (1280 px) width. It reports lines through nodes, labels that overlap or sit on a
|
|
166
194
|
line, text under 12 px, clipped text and drawings that differ from their block, writes
|
|
167
195
|
contact sheets to `.tum-mcp/visuals/` and records the result in
|
|
@@ -169,15 +197,29 @@ contact sheets to `.tum-mcp/visuals/` and records the result in
|
|
|
169
197
|
and `study report` lists items whose check is missing, stale or failing.
|
|
170
198
|
|
|
171
199
|
Ask `review-course` to score the lessons and exercises the way a student meets them.
|
|
172
|
-
It reads each item in
|
|
173
|
-
gives each unit and exercise 1 to 3 points for correctness, clarity,
|
|
174
|
-
representation, practice, coverage
|
|
175
|
-
from the contact sheets for fidelity,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
200
|
+
It reads each item in six passes (logic, text, visuals, interaction, intuition and
|
|
201
|
+
structure) and gives each unit and exercise 1 to 3 points for correctness, clarity,
|
|
202
|
+
cognitive load, representation, practice, coverage, intuition, organization and
|
|
203
|
+
redundancy. Each drawn visual gets its own score from the contact sheets for fidelity,
|
|
204
|
+
form, layout, legibility, focus and convention, calibrated against a gallery of rated
|
|
205
|
+
examples (`study visuals --gallery`). A course pass then scores the course as a whole:
|
|
206
|
+
the order of its units and groups, what repeats across units and workspaces, and, when
|
|
207
|
+
Exercises, Exam or Lecture are prepared beside Study, how well they link to
|
|
208
|
+
the passages that teach what they need. `study report --section structure` gives that
|
|
209
|
+
pass a course map and flags terms used before they are taught, odd groups, repeated
|
|
210
|
+
passages and practice, and missing links. The agent names the rubric check behind each
|
|
211
|
+
lost point, saves the scores in `.tum-mcp/review.json`, then fixes the findings and
|
|
212
|
+
scores again.
|
|
213
|
+
Editing a unit or exercise makes its score stale, and so does changing the course's
|
|
214
|
+
units, groups or links for the course score, so `study report` lists what needs a new
|
|
215
|
+
review and what is still below the bar. A scorecard saved under an earlier rubric still
|
|
216
|
+
loads; the report lists the dimensions it lacks. The scores are not shown in the app.
|
|
217
|
+
|
|
218
|
+
Workspace profiles keep the shared dimensions but tailor their evidence: exercise
|
|
219
|
+
reviews preserve released statements and assess each part's guide and answer rather
|
|
220
|
+
than requiring a second lesson. Exam checks distinguish cheatsheets, patterns and papers;
|
|
221
|
+
Lecture checks recording fidelity and added explanation without requiring quizzes.
|
|
222
|
+
Exam and Lecture findings currently belong to the course pass, not separate item scores.
|
|
181
223
|
|
|
182
224
|
## Preview the app
|
|
183
225
|
|
|
@@ -201,7 +243,7 @@ locally. Nothing is published by these commands.
|
|
|
201
243
|
|
|
202
244
|
## Passage comments
|
|
203
245
|
|
|
204
|
-
Select text in Content, Flashcards, Practice, Exercises or Lecture
|
|
246
|
+
Select text in Content, Flashcards, Practice, Exercises or Lecture, then click
|
|
205
247
|
**Comment** to record what is unclear. You can also use Ctrl/Command+Alt+M after
|
|
206
248
|
selecting text. The local preview saves notes in `.tum-mcp/comments.json`, separately
|
|
207
249
|
from learning progress. Click a numbered marker or highlighted text to open its notes
|
|
@@ -223,13 +265,16 @@ at the bottom of the outline switches between them and remembers your place; on
|
|
|
223
265
|
it sits inside the open outline. The exercise list groups exercises by sheet and shows
|
|
224
266
|
each sheet's summary and due date when the sources provide them.
|
|
225
267
|
|
|
226
|
-
Each
|
|
227
|
-
|
|
228
|
-
|
|
268
|
+
Each sub-question keeps its statement, supporting blocks, Guide and Solution together.
|
|
269
|
+
Shared givens come first. Work on paper, open that question's Solution directly (as a
|
|
270
|
+
table, graph, formula or code), or use its guide for one step at a time with optional
|
|
271
|
+
hints. Solutions open independently and reveal only their own question's answer;
|
|
272
|
+
shared solution notes appear once after the questions.
|
|
229
273
|
Multiple-choice steps are checked; for every other step you work on paper and press
|
|
230
274
|
**Compare**, the one place that shows the answer, its reasoning and a hint for the
|
|
231
275
|
likeliest mistake. **Review** beside a prerequisite opens the Study passage next to
|
|
232
|
-
the exercise
|
|
276
|
+
the exercise on desktop, or as a full-page view on mobile. Closing it returns to the
|
|
277
|
+
same step and scroll position. A sheet whose problems are not all prepared
|
|
233
278
|
says which ones are still missing. Code steps open the function skeleton in a small editor and
|
|
234
279
|
show the model answer as code; code is never run, and nothing is graded by keywords.
|
|
235
280
|
Finishing the last step marks the exercise completed in the outline; you can also
|
|
@@ -245,7 +290,7 @@ use the existing private comment service; hosted exports do not expose it.
|
|
|
245
290
|
|
|
246
291
|
## Prepare for exams
|
|
247
292
|
|
|
248
|
-
Ask `prepare-exams` to build the **Exam
|
|
293
|
+
Ask `prepare-exams` to build the **Exam** workspace from the course's past exams,
|
|
249
294
|
exercises and materials. Past exams come from `materials/exams` (Moodle) or files you hold yourself:
|
|
250
295
|
|
|
251
296
|
```bash
|
|
@@ -270,7 +315,7 @@ different places count once.
|
|
|
270
315
|
|
|
271
316
|
Right-click any entry in the sidebar, in any workspace, to mark it as completed.
|
|
272
317
|
|
|
273
|
-
Statistics such as "seen in 4 of 6 exams" are history, never a prediction. Exam
|
|
318
|
+
Statistics such as "seen in 4 of 6 exams" are history, never a prediction. Exam
|
|
274
319
|
always stays local: it is never published.
|
|
275
320
|
|
|
276
321
|
Existing `study/` projects continue to work. New projects use `app/`. To upgrade a
|
|
@@ -311,7 +356,7 @@ Study is the default hosted workspace, including for old settings. Exercise
|
|
|
311
356
|
statements, hints and full solutions need explicit `--include-exercises` on the
|
|
312
357
|
publish command after reviewing their public exposure. `--exclude-exercises`
|
|
313
358
|
removes Exercises from subsequent eligible exports, using the same repository and URL. An
|
|
314
|
-
Exercises-only site also requires explicit inclusion. Lecture
|
|
359
|
+
Exercises-only site also requires explicit inclusion. Lecture separately requires
|
|
315
360
|
`--include-lectures`; old settings default to exclusion. `--exclude-lectures` also removes
|
|
316
361
|
previously managed lecture images. A notes-only export with notes excluded is refused.
|
|
317
362
|
|
|
@@ -492,7 +537,7 @@ Imported files stay private: they are never published.
|
|
|
492
537
|
|
|
493
538
|
The shared course app is packaged in `bundled/course_app/site/`, separately from the
|
|
494
539
|
skill instructions. It owns layout, styling and interaction for Study, Exercises and
|
|
495
|
-
Lecture
|
|
540
|
+
Lecture. Agents author only course content; `study build` installs the app,
|
|
496
541
|
preserves customized files and checks sources, so courses gain app improvements
|
|
497
542
|
without rewriting content. `tum-mcp study template` shows the bundled files and
|
|
498
543
|
their combined revision for reproducible development.
|
|
@@ -505,8 +550,10 @@ tum-mcp study serve ./component-preview
|
|
|
505
550
|
```
|
|
506
551
|
|
|
507
552
|
The demo creates one small Study unit and one exercise covering prose, code, tables,
|
|
508
|
-
formulas, graphs, UML diagrams, a flowchart, plots, cards and response controls.
|
|
509
|
-
|
|
553
|
+
formulas, graphs, UML diagrams, a flowchart, plots, cards and response controls.
|
|
554
|
+
It also includes pending Study topics and exercise sheets, plus private report examples
|
|
555
|
+
of unknown coverage and optional backlog. It is a
|
|
556
|
+
format reference, not necessarily a good teaching or question-authoring example; actual
|
|
510
557
|
course authoring follows reviewed sources and the preparation skills. Rich learning
|
|
511
558
|
pilots stay in private test fixtures. It uses no campus account, and an existing
|
|
512
559
|
edited demo is preserved.
|
|
@@ -527,3 +574,20 @@ Import paths are confined to the snapshot directory. Data is stored under the
|
|
|
527
574
|
bound project; credentials and unrelated personal records must never enter it.
|
|
528
575
|
Keep real course projects private and out of package artifacts. Uninstalling the
|
|
529
576
|
package preserves projects; remove your own project directory separately when wanted.
|
|
577
|
+
|
|
578
|
+
## Optional Explore reading
|
|
579
|
+
|
|
580
|
+
Prepared topics can include an **Explore** tab after Practice for useful supporting
|
|
581
|
+
context and further reading. It appears only when that topic has authored material
|
|
582
|
+
and opens directly on the reading. Core Content stays sufficient for the course tasks.
|
|
583
|
+
Explore has no required completion, cards, questions or minutes, and Continue/Next
|
|
584
|
+
keeps the core learning sequence.
|
|
585
|
+
|
|
586
|
+
Authors classify passages against course outcomes and task dependencies, using the
|
|
587
|
+
bundled prepare-study `references/explore.md` policy and private coverage ledger.
|
|
588
|
+
Core gaps, optional backlog and unrecorded coverage remain separate in agent reports;
|
|
589
|
+
only known core gaps appear on the learner overview. Optional items
|
|
590
|
+
carry their own source versions and stable keyed blocks. Changes still need source,
|
|
591
|
+
teaching and visual review but preserve saved core practice progress. Local passage
|
|
592
|
+
comments remain item-scoped; published sites include optional reading with Study and
|
|
593
|
+
exclude private comments/classification reasons. `study demo PROJECT` shows an example.
|
package/docs/tum-mcp.md
CHANGED
|
@@ -191,7 +191,13 @@ The tools resolve one exact mapping; ambiguity never grants broader access.
|
|
|
191
191
|
|
|
192
192
|
`doctor` reads local configuration and checks runtime prerequisites. It does not
|
|
193
193
|
open a browser, contact campus services, decrypt sessions, or read native stores.
|
|
194
|
-
Saved sessions are **Not verified** until checked.
|
|
194
|
+
Saved sessions are **Not verified** until checked. Live campus results are saved
|
|
195
|
+
locally with a timestamp and reused by `doctor` and the `login` selector for
|
|
196
|
+
12 hours. Expiry means verification is stale, not that the session is disconnected.
|
|
197
|
+
A fresh live check replaces the previous result, including failures. Replacing
|
|
198
|
+
credentials or logging out invalidates their saved verification. Only the result,
|
|
199
|
+
timestamp and file metadata are recorded, not credentials or campus responses.
|
|
200
|
+
Git and Docker are not
|
|
195
201
|
prerequisites. Client registration is distinguished
|
|
196
202
|
from activation; the host must confirm a running MCP connection after setup.
|
|
197
203
|
|
|
@@ -208,7 +214,7 @@ in JSON for troubleshooting. Default diagnostics do not create state folders.
|
|
|
208
214
|
uses read-only local status to initialize an explicitly chosen available course or
|
|
209
215
|
reconcile an existing project. Incomplete state is preserved for recovery.
|
|
210
216
|
`prepare-study` authors lessons; `prepare-exercises` authors guided released sheets
|
|
211
|
-
and `prepare-exams` builds a local Exam
|
|
217
|
+
and `prepare-exams` builds a local Exam workspace in the same app. See the
|
|
212
218
|
[study guide](study.md) for examples, state structure and helper commands.
|
|
213
219
|
|
|
214
220
|
One project holds one course. Source revisions, coverage and course knowledge
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wheel": "tum_mcp-0.
|
|
3
|
-
"wheelSha256": "
|
|
2
|
+
"wheel": "tum_mcp-0.15.0-py3-none-any.whl",
|
|
3
|
+
"wheelSha256": "5b63831a3518b0896ec1cd6722faea01cf856c71c2ffde8aab703b30f3fe49ae",
|
|
4
4
|
"requirementsSha256": "39a401b6e606d3292eb91b8fe9ef60367d4852f203eb409dc52f38b76e513ccf"
|
|
5
5
|
}
|
|
Binary file
|