@jamestesting888/tum-mcp 0.11.0 → 0.14.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 +91 -0
- package/NOTICE +4 -0
- package/README.md +3 -4
- package/docs/development.md +2 -3
- package/docs/setup.md +5 -12
- package/docs/study.md +59 -40
- package/docs/tum-mcp.md +4 -4
- package/npm/backend/manifest.json +2 -2
- package/npm/backend/tum_mcp-0.14.0-py3-none-any.whl +0 -0
- package/npm/tum-mcp.mjs +4 -5
- package/package.json +1 -2
- package/npm/backend/tum_mcp-0.11.0-py3-none-any.whl +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,96 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 0.14.0 — 2026-10-30
|
|
4
|
+
|
|
5
|
+
- Graph diagrams sit on a grid: each node takes a `row` and `col` instead of pixel
|
|
6
|
+
coordinates. The app sizes boxes from their labels (two lines, centred), spaces rows and
|
|
7
|
+
columns, crops to what is drawn, bends a blocked edge around nodes to the side where it
|
|
8
|
+
crosses fewest edges, draws self-loops and bows the two arrows of a two-way pair apart,
|
|
9
|
+
each with its own label, and places every edge label clear of lines and nodes.
|
|
10
|
+
- UML class and state diagrams and a new `flowchart` diagram are laid out by the bundled
|
|
11
|
+
Eclipse Layout Kernel (elkjs, EPL-2.0, loaded only on pages that show such a diagram)
|
|
12
|
+
in the order the author lists elements: an interface above its implementations with one
|
|
13
|
+
joined trunk, state machines with curved transitions and entry activities in a
|
|
14
|
+
compartment, flowcharts with questions inside the diamonds and labelled exits.
|
|
15
|
+
Sequence diagrams keep their renderer.
|
|
16
|
+
- Plots: a series can be a `function` of x that the build samples, split at poles and
|
|
17
|
+
jumps, or data drawn as lines, markers, points, connected steps or stems with their
|
|
18
|
+
values; plots add shaded `areas`, marked `notes`, explicit ticks, a logarithmic y
|
|
19
|
+
axis labelled with real values and labels at the line ends. Axis labels are Unicode.
|
|
20
|
+
- Drawings keep 12 px text on a phone: graphs and UML diagrams shrink only that far and
|
|
21
|
+
scroll sideways beyond it; plots redraw at their real width.
|
|
22
|
+
- `tum-mcp study visuals PROJECT` measures every drawn visual of lessons, practice
|
|
23
|
+
questions, exercise steps and Exam Prep at 390, 600 and 1280 px (lines through nodes,
|
|
24
|
+
clashing labels, small or clipped text, drawings that differ from their block), writes
|
|
25
|
+
contact sheets to `.tum-mcp/visuals/` and records the result; `study report` gains a
|
|
26
|
+
render section that lists missing, stale and failing checks.
|
|
27
|
+
- `review-course` reviews in five passes (logic, text, visuals, interaction and
|
|
28
|
+
intuition), scores a new intuition dimension and each drawn visual on a six-criterion
|
|
29
|
+
visual rubric, and calibrates against a gallery of rated examples
|
|
30
|
+
(`study visuals --gallery`). A review passes only when every visual is scored, and
|
|
31
|
+
representation never scores above the item's weakest visual.
|
|
32
|
+
- prepare-study gains guides for diagrams and plots, and the study skills run the render
|
|
33
|
+
check after each build. The component demo shows each new diagram and plot form.
|
|
34
|
+
|
|
35
|
+
## 0.13.0 — 2026-10-29
|
|
36
|
+
|
|
37
|
+
- 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.
|
|
38
|
+
- 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.
|
|
39
|
+
- Study lessons gain definitions that sit inside the section introducing them, as the
|
|
40
|
+
term in bold beside its meaning; a `{{term}}` mention anywhere in the app opens the
|
|
41
|
+
definition in place, and blocks can carry a `key` that links lead to.
|
|
42
|
+
- Text sections can give a hard idea as numbered `steps`, and a new `figure` block shows
|
|
43
|
+
a drawing (checked SVG that follows the light and dark theme, cropped to what is drawn)
|
|
44
|
+
or an image from the app's `figures/` folder, in lessons, questions, exercises and
|
|
45
|
+
published sites.
|
|
46
|
+
- Diagram labels never hide behind nodes: a label wider than its edge moves above the
|
|
47
|
+
shapes, and a single picture shows its caption once instead of a description and a
|
|
48
|
+
caption. The exercise outline drops its separators, and the completed mark stays on
|
|
49
|
+
the entry's line.
|
|
50
|
+
- Algorithm traces show the algorithm's state beside the drawing (a queue, the domains),
|
|
51
|
+
mark what changed at each step and highlight the edge being worked on.
|
|
52
|
+
- Practice questions that are about a situation show it (a graph, drawing, table,
|
|
53
|
+
formula or code) beside the question, and a question about a concept may stand alone;
|
|
54
|
+
options appear in a stable shuffled order and a question can offer one optional hint. A
|
|
55
|
+
question missed at the first attempt stays in To review after **Try again** until it
|
|
56
|
+
is answered correctly from a fresh start.
|
|
57
|
+
- Exercise solutions give one short, labelled answer per part, in the form the part asks
|
|
58
|
+
for; model answers can be tables, lists or formulas, and graph answers are drawn on the
|
|
59
|
+
graph. **Compare** is now the only reveal: hints stop after the last one, a step
|
|
60
|
+
without a check is compared too, and an explanation may not repeat its model answer.
|
|
61
|
+
- **Review** beside a prerequisite opens that Study passage next to the exercise without
|
|
62
|
+
losing your place; a unit links its Lecture Notes, the exercises that build on it and
|
|
63
|
+
the Exam Prep patterns that cite it, and Lecture Notes link back. In the local
|
|
64
|
+
preview, a citation opens the stored course file at the cited page.
|
|
65
|
+
- A new `review-course` skill scores each Study unit and exercise from 1 to 3 on
|
|
66
|
+
correctness, clarity, cognitive load, representation, practice and coverage, saves the
|
|
67
|
+
scores with their findings in `.tum-mcp/review.json` (`study schema review`) and fixes
|
|
68
|
+
what falls below the bar; `study report` lists unreviewed, stale and low items.
|
|
69
|
+
prepare-study and prepare-exercises finish with it.
|
|
70
|
+
- `tum-mcp study report` flags dense paragraphs, sections of more than about 90 words of
|
|
71
|
+
prose, sentences about the material instead of the subject ("the lecture groups…"),
|
|
72
|
+
question pictures that repeat the prompt, exercise statements pasted as one block,
|
|
73
|
+
thin lessons, untraced procedures, questions too long for a phone screen, slide
|
|
74
|
+
numbers left in titles instead of `pages`,
|
|
75
|
+
answer tables Compare never answers, wrong arithmetic, large steps with one hint and
|
|
76
|
+
feedback that names no mistake. A coverage ledger (`.tum-mcp/coverage.json`,
|
|
77
|
+
`study schema coverage`) records each source's stated outcomes, sheet problems and
|
|
78
|
+
course state, so the report lists what is not yet taught, read or prepared; learners
|
|
79
|
+
see which problems are not prepared yet. The study skills share one review gate and
|
|
80
|
+
one writing guide (plain, direct sentences after ASD-STE100, without AI phrasing), and
|
|
81
|
+
they show two-input rules as decision matrices and released exercise statements split
|
|
82
|
+
by part with their givens and setting drawn.
|
|
83
|
+
- The exercise outline names a category only when it adds to the set titles, and the
|
|
84
|
+
outline keeps its scroll position when you open a lesson.
|
|
85
|
+
- Codex picks up changed or newly enabled skills: the plugin version follows the
|
|
86
|
+
installed skills, and `tum-mcp doctor` names the refresh step when Codex still loads
|
|
87
|
+
an older copy.
|
|
88
|
+
|
|
89
|
+
## 0.12.0 — 2026-10-29
|
|
90
|
+
|
|
91
|
+
- Remove the optional Studocu extension, its `sync-studocu` skill and `tum-mcp studocu`
|
|
92
|
+
commands. Download such material yourself and add it with `tum-mcp study import`.
|
|
93
|
+
|
|
3
94
|
## 0.11.0 — 2026-10-28
|
|
4
95
|
|
|
5
96
|
- Add the base `prepare-exams` workflow and the local **Exam Prep** workspace: a
|
package/NOTICE
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
The project's original code and documentation are provided under the MIT License.
|
|
2
2
|
|
|
3
|
+
The course app ships third-party files under their own licenses, each beside it: the
|
|
4
|
+
interface fonts (`fonts-license.txt`) and elkjs, the Eclipse Layout Kernel compiled to
|
|
5
|
+
JavaScript, under the Eclipse Public License 2.0 (`elk-license.txt`).
|
|
6
|
+
|
|
3
7
|
No TUM logo is distributed. TUM names and trademarks belong to their respective
|
|
4
8
|
owners; no trademark rights or university endorsement are granted by this project.
|
package/README.md
CHANGED
|
@@ -31,11 +31,13 @@ submissions, posting and exercise execution are unavailable.
|
|
|
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
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.” |
|
|
34
35
|
| `publish-course` | “Publish my reviewed study site for phone access.” |
|
|
35
36
|
|
|
36
37
|
Each project holds one course. Run `tum-mcp study` in its folder to open the app.
|
|
37
38
|
Ask the agent to refresh it when sources change or address comments left in the
|
|
38
|
-
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).
|
|
39
41
|
|
|
40
42
|
TUMonline currently provides study names/degrees, public course catalog metadata
|
|
41
43
|
and partial course curriculum positions. The catalog does not show enrollments.
|
|
@@ -50,7 +52,6 @@ Run `tum-mcp install` to choose extensions, then reload your client.
|
|
|
50
52
|
| Extension | Skill added | What it offers |
|
|
51
53
|
| --- | --- | --- |
|
|
52
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. |
|
|
53
|
-
| `studocu` | `sync-studocu` | Search and collect selected supplementary PDFs saved in your browser. Personal use only; excluded from published sites. |
|
|
54
55
|
| `audio-notes` | `audio-notes` | Turn prepared Study lessons into concise audio tracks, with resumable generation and coverage tracking. Voice setup happens when used. |
|
|
55
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. |
|
|
56
57
|
|
|
@@ -58,7 +59,6 @@ Use `tum-mcp doctor` to see installed workflows and `tum-mcp uninstall` to remov
|
|
|
58
59
|
them.
|
|
59
60
|
|
|
60
61
|
[Lecture and recognition](docs/lecture-notes.md) ·
|
|
61
|
-
[Studocu collection](docs/study.md#studocu-materials) ·
|
|
62
62
|
[Video Notes](docs/study.md#create-and-maintain-video-notes) · [Setup details](docs/setup.md)
|
|
63
63
|
|
|
64
64
|
## Course project
|
|
@@ -69,7 +69,6 @@ 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
|
-
studocu/ Optional: summaries/, exams/ and other/ PDFs
|
|
73
72
|
app/ Study, Exercises, Exam Prep and optional Lecture Notes website
|
|
74
73
|
content.json Study lessons, flashcards and practice
|
|
75
74
|
exercises.json Guided exercise content
|
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
|
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
|
@@ -6,7 +6,6 @@ MCP tools to read course sources. The CLI validates and stores the resulting loc
|
|
|
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`.
|
|
@@ -110,9 +109,19 @@ course's lecture or week sequence when useful, or consistent topics, with at mos
|
|
|
110
109
|
one category level. Every unit has:
|
|
111
110
|
|
|
112
111
|
- Content: a short lesson with objectives, source links, assumptions and worked
|
|
113
|
-
examples, using formulas, tables, code,
|
|
112
|
+
examples, using formulas, tables, code, graphs, UML diagrams, flowcharts, drawn figures
|
|
113
|
+
or plots where they help. Graphs keep the rows and columns the author chose; UML
|
|
114
|
+
diagrams and flowcharts are laid out automatically; plots draw functions from their
|
|
115
|
+
formula. On a phone a drawing shrinks only until its text reaches 12 px and scrolls
|
|
116
|
+
sideways beyond that. A hard idea comes as short numbered steps instead of a long paragraph. A
|
|
117
|
+
term to learn appears in bold beside its meaning, inside the section that introduces
|
|
118
|
+
it; a dotted term anywhere in the app opens its definition in place. Algorithm traces
|
|
119
|
+
step through one operation at a time and show the algorithm's state (a queue, the
|
|
120
|
+
domains) beside the drawing, marking what changed.
|
|
114
121
|
- Flashcards for recall. On a keyboard, arrows move, Space flips and 1/2 rate a card.
|
|
115
|
-
- Practice questions with
|
|
122
|
+
- Practice questions with options in a stable shuffled order, an optional hint and
|
|
123
|
+
feedback for every option. A question about a situation shows it (a graph, a
|
|
124
|
+
drawing, a table, a formula) beside the question and states each fact once.
|
|
116
125
|
|
|
117
126
|
The agent uses stored material first, so local content edits work offline. Ask for
|
|
118
127
|
an upstream refresh when you want new course content; an existing check is reused
|
|
@@ -123,9 +132,13 @@ short, direct sentences that keep necessary terms and conditions.
|
|
|
123
132
|
The course home introduces the course, resumes where you left off and lists topics
|
|
124
133
|
with progress. Each view ends with a Next link through cards and practice to the
|
|
125
134
|
next unit. Revision pools cards and questions from the topics you choose (all topics
|
|
126
|
-
until you choose) and can focus on cards marked Again and questions you missed.
|
|
127
|
-
|
|
128
|
-
|
|
135
|
+
until you choose) and can focus on cards marked Again and questions you missed. A
|
|
136
|
+
question you missed stays there after **Try again**; it leaves once you answer it
|
|
137
|
+
correctly from a fresh start. Revision reuses the original items and progress, so
|
|
138
|
+
changing the topic selection never clears results, and it remembers your selection
|
|
139
|
+
for this course. A unit's header links the Lecture Notes, exercises and Exam Prep
|
|
140
|
+
patterns that build on it. In the local preview, a citation opens the stored course
|
|
141
|
+
file at the cited page. Formulas and inline
|
|
129
142
|
notation such as `\(v_i\)` compile locally to native MathML; code and dollar signs
|
|
130
143
|
stay literal. The app has light and dark themes and a phone layout.
|
|
131
144
|
|
|
@@ -138,8 +151,34 @@ and reported, so the agent must review compatibility when extending them.
|
|
|
138
151
|
```sh
|
|
139
152
|
tum-mcp study inspect ./pse-ws26
|
|
140
153
|
tum-mcp study build ./pse-ws26
|
|
154
|
+
tum-mcp study report ./pse-ws26 # review flags and what the sources leave uncovered
|
|
155
|
+
tum-mcp study visuals ./pse-ws26 # measure every drawn visual and draw contact sheets
|
|
141
156
|
```
|
|
142
157
|
|
|
158
|
+
The agent records what each lecture states students should learn, and which sheet
|
|
159
|
+
problems are prepared, in `.tum-mcp/coverage.json`. `study report` lists outcomes
|
|
160
|
+
that are not yet taught, sources not yet read and problems still pending, so a request
|
|
161
|
+
to cover a whole course is judged against the course's own outcomes.
|
|
162
|
+
|
|
163
|
+
`study visuals` opens every lesson, practice question, exercise step and Exam Prep
|
|
164
|
+
visual in an installed Chrome, Edge or Chromium at phone (390 px), narrow (600 px) and
|
|
165
|
+
desktop (1280 px) width. It reports lines through nodes, labels that overlap or sit on a
|
|
166
|
+
line, text under 12 px, clipped text and drawings that differ from their block, writes
|
|
167
|
+
contact sheets to `.tum-mcp/visuals/` and records the result in
|
|
168
|
+
`.tum-mcp/visual-check.json`. Editing an item or updating the app makes its result stale,
|
|
169
|
+
and `study report` lists items whose check is missing, stale or failing.
|
|
170
|
+
|
|
171
|
+
Ask `review-course` to score the lessons and exercises the way a student meets them.
|
|
172
|
+
It reads each item in five passes (logic, text, visuals, interaction and intuition) and
|
|
173
|
+
gives each unit and exercise 1 to 3 points for correctness, clarity, cognitive load,
|
|
174
|
+
representation, practice, coverage and intuition. Each drawn visual gets its own score
|
|
175
|
+
from the contact sheets for fidelity, form, layout, legibility, focus and convention,
|
|
176
|
+
calibrated against a gallery of rated examples (`study visuals --gallery`). The agent
|
|
177
|
+
names what costs each point, saves the scores in `.tum-mcp/review.json`, then fixes the
|
|
178
|
+
findings and scores again.
|
|
179
|
+
Editing a unit or exercise makes its score stale, so `study report` lists what needs a
|
|
180
|
+
new review and what is still below the bar. The scores are not shown in the app.
|
|
181
|
+
|
|
143
182
|
## Preview the app
|
|
144
183
|
|
|
145
184
|
From the course project folder, launch the prepared app with:
|
|
@@ -185,10 +224,13 @@ it sits inside the open outline. The exercise list groups exercises by sheet and
|
|
|
185
224
|
each sheet's summary and due date when the sources provide them.
|
|
186
225
|
|
|
187
226
|
Each exercise shows the original statement and subparts first. Work on paper, open the
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
the
|
|
227
|
+
solution directly (one short answer per part, as a table, graph, formula or code), or
|
|
228
|
+
open **Guidance** for the exercise's goals and one step at a time with optional hints.
|
|
229
|
+
Multiple-choice steps are checked; for every other step you work on paper and press
|
|
230
|
+
**Compare**, the one place that shows the answer, its reasoning and a hint for the
|
|
231
|
+
likeliest mistake. **Review** beside a prerequisite opens the Study passage next to
|
|
232
|
+
the exercise without losing your place. A sheet whose problems are not all prepared
|
|
233
|
+
says which ones are still missing. Code steps open the function skeleton in a small editor and
|
|
192
234
|
show the model answer as code; code is never run, and nothing is graded by keywords.
|
|
193
235
|
Finishing the last step marks the exercise completed in the outline; you can also
|
|
194
236
|
right-click any entry to mark it. A Next link leads to the following exercise. Large
|
|
@@ -204,8 +246,7 @@ use the existing private comment service; hosted exports do not expose it.
|
|
|
204
246
|
## Prepare for exams
|
|
205
247
|
|
|
206
248
|
Ask `prepare-exams` to build the **Exam Prep** workspace from the course's past exams,
|
|
207
|
-
exercises and materials. Past exams come from `materials/exams` (Moodle)
|
|
208
|
-
`materials/studocu/exams` (Studocu) or files you hold yourself:
|
|
249
|
+
exercises and materials. Past exams come from `materials/exams` (Moodle) or files you hold yourself:
|
|
209
250
|
|
|
210
251
|
```bash
|
|
211
252
|
tum-mcp study import ./pse-ws26 --file "Klausur WS23.pdf" --kind exam --title "Endterm WS23/24"
|
|
@@ -441,33 +482,11 @@ compiler. `runtime status` prints the exact command and never runs it for you.
|
|
|
441
482
|
Windows on ARM, Intel Macs, Linux ARM64 and musl Linux are not supported: Manim's
|
|
442
483
|
OpenGL dependencies publish no wheels there.
|
|
443
484
|
|
|
444
|
-
##
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
Search is anonymous and bounded; a limited result set is not a complete inventory.
|
|
450
|
-
`tum-mcp studocu login` explains how to sign in to Studocu in your own browser.
|
|
451
|
-
The extension cannot infer account entitlement or download original files through
|
|
452
|
-
the public MCP. Save an original that your account permits in the browser.
|
|
453
|
-
|
|
454
|
-
The skill records a reviewed selection with `tum-mcp studocu plan PROJECT
|
|
455
|
-
--selection FILE` and tracks it with `tum-mcp studocu status PROJECT --json`.
|
|
456
|
-
Import a selected original with `tum-mcp studocu import PROJECT --document-id ID
|
|
457
|
-
--file FILE`. The document-to-file association is user-selected. Originals go to
|
|
458
|
-
`materials/studocu/summaries`, `materials/studocu/exams` (including mocks and
|
|
459
|
-
solutions), or `materials/studocu/other`. Files remain local and retain their
|
|
460
|
-
original bytes. Consult the skill's collection reference for the selection schema.
|
|
461
|
-
Exact matches in the same group, type and known year share one original through
|
|
462
|
-
a private alias. Each selected document retains its own source identity and URL.
|
|
463
|
-
Changing a document's classification or refreshing its original separates aliases
|
|
464
|
-
when they no longer match; previous versions remain in private history.
|
|
465
|
-
When an existing selection is planned again, unchanged duplicate originals are
|
|
466
|
-
consolidated. Edited or missing files are preserved for review.
|
|
467
|
-
|
|
468
|
-
Local study material can cite student uploads. Publishing rejects included
|
|
469
|
-
Studocu-backed sources; this source check cannot identify uncited copied text or
|
|
470
|
-
replace a review of the published content.
|
|
485
|
+
## Materials you download yourself
|
|
486
|
+
|
|
487
|
+
Files from other websites are not downloaded for you. Save them yourself and add them
|
|
488
|
+
with `tum-mcp study import PROJECT --file FILE --kind exam --title TITLE`.
|
|
489
|
+
Imported files stay private: they are never published.
|
|
471
490
|
|
|
472
491
|
## The course app
|
|
473
492
|
|
|
@@ -486,7 +505,7 @@ tum-mcp study serve ./component-preview
|
|
|
486
505
|
```
|
|
487
506
|
|
|
488
507
|
The demo creates one small Study unit and one exercise covering prose, code, tables,
|
|
489
|
-
formulas,
|
|
508
|
+
formulas, graphs, UML diagrams, a flowchart, plots, cards and response controls. It is a format
|
|
490
509
|
reference, not necessarily a good teaching or question-authoring example; actual
|
|
491
510
|
course authoring follows reviewed sources and the preparation skills. Rich learning
|
|
492
511
|
pilots stay in private test fixtures. It uses no campus account, and an existing
|
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
|
-
six base course workflows and
|
|
5
|
+
six base course workflows and three optional extensions.
|
|
6
6
|
|
|
7
7
|
## Current capabilities
|
|
8
8
|
|
|
@@ -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`, `prepare-exams` 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.14.0-py3-none-any.whl",
|
|
3
|
+
"wheelSha256": "67fdca4a299b3fae25fd16700ee120cceba08de0542daec000cff65fc72f98a7",
|
|
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.14.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
|
}
|
|
Binary file
|