@jamestesting888/tum-mcp 0.9.1 → 0.9.3
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 +30 -0
- package/README.md +3 -15
- package/docs/development.md +9 -4
- package/docs/lecture-notes.md +4 -2
- package/docs/setup.md +21 -12
- package/docs/study.md +158 -176
- package/docs/tum-mcp.md +7 -7
- package/npm/backend/manifest.json +2 -2
- package/npm/backend/{tum_mcp-0.9.1-py3-none-any.whl → tum_mcp-0.9.3-py3-none-any.whl} +0 -0
- package/npm/tum-mcp.mjs +3 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 0.9.3 — 2026-10-27
|
|
4
|
+
|
|
5
|
+
- Simplify the README setup and extension guidance.
|
|
6
|
+
|
|
7
|
+
## 0.9.2 — 2026-10-27
|
|
8
|
+
|
|
9
|
+
- Combine connection status, extension status and health checks in `doctor`.
|
|
10
|
+
Show only installed or configured clients, including in the setup picker.
|
|
11
|
+
- Rename campus sign-in to `login`, paired with `logout`. Keep `connect` and
|
|
12
|
+
`status` as hidden compatibility aliases, including the previous status JSON.
|
|
13
|
+
- Make the course app consistent across Study and Exercises: one choice style,
|
|
14
|
+
feedback panel, counter format, arrow controls and disclosure chevron. Revision
|
|
15
|
+
covers all topics until you choose, and review links open the view with items.
|
|
16
|
+
- Show exercise goals in Guidance, sheet summaries and due dates in the list, Mark
|
|
17
|
+
reviewed at the end with a visible finish, and a link to the next exercise.
|
|
18
|
+
- Improve detail: readable graph edges, fitted phone diagram labels, word-wrapped
|
|
19
|
+
boxes, no dark-mode flash, steady flashcard layout, labelled reset and in-app
|
|
20
|
+
confirmation for deleting comments, and neutral page copy on published sites.
|
|
21
|
+
- Lecture Notes: recording times open from the sources of each passage and figure
|
|
22
|
+
instead of appearing in the text, and the sidebar lists lectures only.
|
|
23
|
+
- Add a Contents button to Study, Exercises and Lecture Notes. It lists the page's
|
|
24
|
+
headings and follows your reading; wide screens can keep it docked beside the
|
|
25
|
+
text. The home resume button shows a play icon with the topic name.
|
|
26
|
+
- Keep queued Contents updates from a previous view from hiding the current
|
|
27
|
+
page's outline after navigation.
|
|
28
|
+
- Remove unused serif font files. Builds delete unedited copies and publication
|
|
29
|
+
removes them from managed sites; edited copies are kept.
|
|
30
|
+
- Base the study skills on the app: they describe content and checks and point to
|
|
31
|
+
the bundled app instead of restating its styling.
|
|
32
|
+
|
|
3
33
|
## 0.9.1 — 2026-10-27
|
|
4
34
|
|
|
5
35
|
- Make Audio Notes an optional `audio-notes` extension. Keep five base skills,
|
package/README.md
CHANGED
|
@@ -14,20 +14,10 @@ Requires **Node.js 22.14+**, a Chromium browser and your TUM account.
|
|
|
14
14
|
```sh
|
|
15
15
|
npm install --global @jamestesting888/tum-mcp@latest
|
|
16
16
|
tum-mcp setup
|
|
17
|
-
tum-mcp
|
|
17
|
+
tum-mcp login
|
|
18
18
|
tum-mcp doctor
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
Select `codex`, `claude`, `cursor`, `antigravity` or `generic`, or pass `--client NAME`.
|
|
22
|
-
Follow the activation/restart instructions. In `connect`, select services with
|
|
23
|
-
**Space**, then **Enter**, and complete sign-in/MFA in the browser. Never paste
|
|
24
|
-
credentials into chat. Setup supplies its own Python runtime; Git, Docker and a
|
|
25
|
-
native keyring are unnecessary.
|
|
26
|
-
|
|
27
|
-
Works on macOS, Windows, glibc Linux x86_64/ARM64 and WSL. For a Windows client
|
|
28
|
-
using a WSL backend, add `--host windows` to setup.
|
|
29
|
-
[Browser and platform details](docs/setup.md).
|
|
30
|
-
|
|
31
21
|
## Read and study
|
|
32
22
|
|
|
33
23
|
Ask your agent to explain course material, find announcements or catch up on a
|
|
@@ -62,10 +52,8 @@ Run `tum-mcp install` to choose extensions, then reload your client.
|
|
|
62
52
|
| `studocu` | `sync-studocu` | Search and collect selected supplementary PDFs saved in your browser. Personal use only; excluded from published sites. |
|
|
63
53
|
| `audio-notes` | `audio-notes` | Turn prepared Study lessons into concise audio tracks, with resumable generation and coverage tracking. Voice setup happens when used. |
|
|
64
54
|
|
|
65
|
-
Use `tum-mcp
|
|
66
|
-
them.
|
|
67
|
-
`tum-mcp uninstall lecture`. Existing notes, audio and customizations are retained.
|
|
68
|
-
Audio Notes needs no additional campus sign-in. Studocu uses your own browser.
|
|
55
|
+
Use `tum-mcp doctor` to see installed workflows and `tum-mcp uninstall` to remove
|
|
56
|
+
them.
|
|
69
57
|
|
|
70
58
|
[Lecture and recognition](docs/lecture-notes.md) ·
|
|
71
59
|
[Studocu collection](docs/study.md#studocu-materials) · [Setup details](docs/setup.md)
|
package/docs/development.md
CHANGED
|
@@ -127,10 +127,15 @@ native MathML; legacy MathML remains accepted. Unit `path` labels group the outl
|
|
|
127
127
|
without changing learning-progress revisions. Shared modules render all units;
|
|
128
128
|
content changes do not require a framework or per-unit HTML.
|
|
129
129
|
|
|
130
|
-
Shared renderer assets live in `src/tum_mcp/bundled/course_app/site
|
|
131
|
-
|
|
132
|
-
`
|
|
133
|
-
|
|
130
|
+
Shared renderer assets live in `src/tum_mcp/bundled/course_app/site/`; they are the
|
|
131
|
+
source of truth for layout, styling and interaction. Design tokens sit at the top of
|
|
132
|
+
`styles.css`, and the owned-browser fixtures in `tests/integration/` hold the UI
|
|
133
|
+
regressions. The preparation skills describe content and point to the app instead
|
|
134
|
+
of restating its styling, so app changes need no skill edits unless an authored field
|
|
135
|
+
or its meaning changes. Remove a template file by moving it to
|
|
136
|
+
`RETIRED_TEMPLATE_FILES`: builds then delete unedited copies and publication removes
|
|
137
|
+
them from managed sites. The shipped component preview is deliberately minimal;
|
|
138
|
+
richer learning pilots live in `tests/fixtures/course_app/`. Local agent notes and
|
|
134
139
|
screenshots belong in ignored `docs/local/` or `.omo/`. Keep real course projects,
|
|
135
140
|
session files, databases, downloads and environment files out of artifacts.
|
|
136
141
|
|
package/docs/lecture-notes.md
CHANGED
|
@@ -16,8 +16,10 @@ model caches and customizations. Reinstalling can reuse them.
|
|
|
16
16
|
Ask: “Prepare Lecture Notes from this recording and these slides, focusing on
|
|
17
17
|
what the professor explains beyond the material.” It adds Lecture Notes to the
|
|
18
18
|
same course app, alongside Study and Exercises. Notes have coherent explanations,
|
|
19
|
-
examples, important qualifications, formulas
|
|
20
|
-
|
|
19
|
+
examples, important qualifications, formulas and selective source images. The
|
|
20
|
+
sources of each passage and figure open the recording at the measured time, so the
|
|
21
|
+
text carries no timestamps, and the Contents button lists the lecture's sections. Attribution
|
|
22
|
+
review stays private, so the reading flow is clean.
|
|
21
23
|
Lecture Notes has no quizzes or flashcards; broader teaching/practice stays in Study.
|
|
22
24
|
|
|
23
25
|
## Processing order and cost
|
package/docs/setup.md
CHANGED
|
@@ -14,7 +14,7 @@ Linux needs a graphical desktop for native browser sign-in; WSL can use Windows.
|
|
|
14
14
|
```sh
|
|
15
15
|
npm install --global @jamestesting888/tum-mcp@latest
|
|
16
16
|
tum-mcp setup --client codex
|
|
17
|
-
tum-mcp
|
|
17
|
+
tum-mcp login
|
|
18
18
|
tum-mcp doctor
|
|
19
19
|
tum-mcp --help
|
|
20
20
|
```
|
|
@@ -27,7 +27,7 @@ client afterward. Existing MCP-only setups gain the skills through `tum-mcp upda
|
|
|
27
27
|
or another setup run. Generic setup writes configuration for manual installation.
|
|
28
28
|
|
|
29
29
|
Studocu is optional: run `tum-mcp install studocu`, then reload the client. The
|
|
30
|
-
extension adds the `sync-studocu` skill and its tools. `tum-mcp
|
|
30
|
+
extension adds the `sync-studocu` skill and its tools. `tum-mcp doctor`
|
|
31
31
|
reports the local selection; `tum-mcp uninstall studocu` disables it and
|
|
32
32
|
preserves course materials and customized files. Generic clients use
|
|
33
33
|
`tum-mcp skills export DESTINATION` to install the active pack manually.
|
|
@@ -40,14 +40,17 @@ Existing course audio is retained when the extension is disabled.
|
|
|
40
40
|
|
|
41
41
|
## Terminal output
|
|
42
42
|
|
|
43
|
-
`tum-mcp
|
|
44
|
-
|
|
43
|
+
`tum-mcp doctor` is the overview for saved connections, optional extensions,
|
|
44
|
+
client setup and runtime health, including TUMonline. Client rows appear only
|
|
45
|
+
for installed clients or existing TUM MCP registrations; unrelated config
|
|
46
|
+
folders do not count as installations. Setup detects the same clients and
|
|
47
|
+
also offers Generic. Use `--client NAME` for an undetected or nonstandard install.
|
|
45
48
|
Green dots mean ready or enabled, blue means not verified, amber means action
|
|
46
49
|
needed, red means failed, and muted dots mean inactive. Every dot has a text
|
|
47
50
|
label. `NO_COLOR` disables color; narrow terminals use stacked rows.
|
|
48
51
|
|
|
49
52
|
Bare `tum-mcp setup`, `tum-mcp install` and `tum-mcp uninstall` share the same
|
|
50
|
-
keyboard controls as
|
|
53
|
+
keyboard controls as login. Nothing is preselected; Ctrl+C cancels. Uninstall
|
|
51
54
|
also offers **All — TUM MCP**, which removes the package and managed client setup.
|
|
52
55
|
Personal notes, sessions and customized files are retained. Scripts can name one or both:
|
|
53
56
|
`tum-mcp uninstall lecture studocu --json`.
|
|
@@ -55,13 +58,19 @@ Personal notes, sessions and customized files are retained. Scripts can name one
|
|
|
55
58
|
Use `--json` for machine-readable status, named extension removal/installation,
|
|
56
59
|
skill listing/validation, lecture runtime status or TUMonline permissions.
|
|
57
60
|
The default human output changed in 0.9.1; scripts that parsed those commands
|
|
58
|
-
must add `--json`. The former `extensions` group is removed; use `
|
|
61
|
+
must add `--json`. The former `extensions` group is removed; use `doctor` and
|
|
59
62
|
`uninstall NAME`. Named client/extension arguments remain suitable for scripts.
|
|
60
63
|
Data-oriented course authoring commands retain JSON output.
|
|
61
64
|
|
|
62
|
-
|
|
65
|
+
`login` replaces `connect`, and `doctor` replaces the separate status screen.
|
|
66
|
+
The old command names remain hidden compatibility aliases. `status --json`
|
|
67
|
+
retains its previous configuration format; new integrations should use `doctor --json`.
|
|
63
68
|
|
|
64
|
-
|
|
69
|
+
<a id="connect"></a>
|
|
70
|
+
|
|
71
|
+
## Login
|
|
72
|
+
|
|
73
|
+
Run **`tum-mcp login`**, with no arguments, in an interactive terminal:
|
|
65
74
|
|
|
66
75
|
1. Use up/down to move and Space to select services. Installed Lecture adds TUM-Live;
|
|
67
76
|
installed Studocu adds Studocu.
|
|
@@ -79,11 +88,11 @@ connections that already completed. A dumb terminal uses numbered prompts.
|
|
|
79
88
|
Chrome, Edge, Brave, Chromium, Vivaldi and Opera are detected in their standard
|
|
80
89
|
locations. Selected preview channels and Opera GX are detected where installed.
|
|
81
90
|
For another Chromium build, set `TUM_MCP_BROWSER` to its executable path before
|
|
82
|
-
running
|
|
91
|
+
running login. Compatible builds must allow Playwright automation. Safari and
|
|
83
92
|
Firefox are not supported.
|
|
84
93
|
|
|
85
94
|
After sign-in, Artemis and Zulip can read content available to your campus account.
|
|
86
|
-
No local course/channel grants are required. Your agent uses status/
|
|
95
|
+
No local course/channel grants are required. Your agent uses MCP status/discovery and
|
|
87
96
|
course metadata to find relevant current-semester material, then makes bounded reads.
|
|
88
97
|
An account ID identifies a saved service connection; it is not your TUM login.
|
|
89
98
|
TUMonline additionally has a local policy: `tum-mcp manage tumonline --show`
|
|
@@ -105,7 +114,7 @@ Both engines have dedicated CI checks on the current WSL 3.x runner image.
|
|
|
105
114
|
```sh
|
|
106
115
|
npm install --global @jamestesting888/tum-mcp@latest
|
|
107
116
|
tum-mcp setup --client cursor --host windows
|
|
108
|
-
tum-mcp
|
|
117
|
+
tum-mcp login
|
|
109
118
|
tum-mcp doctor
|
|
110
119
|
```
|
|
111
120
|
|
|
@@ -144,7 +153,7 @@ browser discovery still requires functioning interop.
|
|
|
144
153
|
`gh auth login --hostname github.com` interactively on the agent's execution host.
|
|
145
154
|
The [publishing workflow](study.md#publish-a-study-website) uses private repositories
|
|
146
155
|
with public Pages websites and requires an eligible paid GitHub plan.
|
|
147
|
-
- An expired session uses the same `tum-mcp
|
|
156
|
+
- An expired session uses the same `tum-mcp login` selector. Reconnecting the
|
|
148
157
|
same identity preserves saved preferences.
|
|
149
158
|
- If no browser appears, check its installation or `TUM_MCP_BROWSER`. A managed
|
|
150
159
|
or incompatible Chromium build may prevent automation; try another browser.
|
package/docs/study.md
CHANGED
|
@@ -10,98 +10,6 @@ The optional `sync-studocu` skill collects selected student-uploaded material se
|
|
|
10
10
|
The optional `audio-notes` skill turns prepared lessons into spoken tracks; install
|
|
11
11
|
it with `tum-mcp install audio-notes`.
|
|
12
12
|
|
|
13
|
-
## Studocu materials
|
|
14
|
-
|
|
15
|
-
Install the optional extension with `tum-mcp install studocu` and reload your
|
|
16
|
-
client. Ask `sync-studocu` to collect materials for a course project. It can
|
|
17
|
-
initialize a Studocu-only project with a verified course and semester.
|
|
18
|
-
Search is anonymous and bounded; a limited result set is not a complete inventory.
|
|
19
|
-
`tum-mcp studocu connect` explains how to sign in to Studocu in your own browser.
|
|
20
|
-
The extension cannot infer account entitlement or download original files through
|
|
21
|
-
the public MCP. Save an original that your account permits in the browser.
|
|
22
|
-
|
|
23
|
-
The skill records a reviewed selection with `tum-mcp studocu plan PROJECT
|
|
24
|
-
--selection FILE` and tracks it with `tum-mcp studocu status PROJECT --json`.
|
|
25
|
-
Import a selected original with `tum-mcp studocu import PROJECT --document-id ID
|
|
26
|
-
--file FILE`. The document-to-file association is user-selected. Originals go to
|
|
27
|
-
`materials/studocu/summaries`, `materials/studocu/exams` (including mocks and
|
|
28
|
-
solutions), or `materials/studocu/other`. Files remain local and retain their
|
|
29
|
-
original bytes. Consult the skill's collection reference for the selection schema.
|
|
30
|
-
Exact matches in the same group, type and known year share one original through
|
|
31
|
-
a private alias. Each selected document retains its own source identity and URL.
|
|
32
|
-
Changing a document's classification or refreshing its original separates aliases
|
|
33
|
-
when they no longer match; previous versions remain in private history.
|
|
34
|
-
When an existing selection is planned again, unchanged duplicate originals are
|
|
35
|
-
consolidated. Edited or missing files are preserved for review.
|
|
36
|
-
|
|
37
|
-
Local study material can cite student uploads. Publishing rejects included
|
|
38
|
-
Studocu-backed sources; this source check cannot identify uncited copied text or
|
|
39
|
-
replace a review of the published content.
|
|
40
|
-
|
|
41
|
-
## Publish a study website
|
|
42
|
-
|
|
43
|
-
The `publish-course` skill makes a prepared site accessible from a phone
|
|
44
|
-
or another computer. Its GitHub repository is private; the Pages website is
|
|
45
|
-
public. An eligible paid GitHub plan is required for Pages from private repositories.
|
|
46
|
-
This workflow does not provide private website access. Review lesson text,
|
|
47
|
-
quotations and source links for the intended public audience before publishing.
|
|
48
|
-
|
|
49
|
-
Install GitHub CLI on the execution host and run `gh auth login --hostname github.com`.
|
|
50
|
-
`tum-mcp doctor` checks CLI availability without network access; `doctor --live`
|
|
51
|
-
also verifies GitHub authentication. It does not publish anything, open sign-in
|
|
52
|
-
automatically, extract tokens, or change Git credential settings.
|
|
53
|
-
|
|
54
|
-
```sh
|
|
55
|
-
# Preview the chosen name and hosting requirements without GitHub mutations.
|
|
56
|
-
tum-mcp study publish --project PROJECT
|
|
57
|
-
# After choosing public website content; the repository stays private.
|
|
58
|
-
tum-mcp study publish --project PROJECT --public-site
|
|
59
|
-
# Optional account/name override on first setup:
|
|
60
|
-
tum-mcp study publish --project PROJECT --public-site --repository OWNER/NAME
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Names use `study-<course>-<semester>` in lowercase with hyphens. A collision gets
|
|
64
|
-
a stable course suffix; existing repositories are never made public. Settings in
|
|
65
|
-
`.tum-mcp/github.json` bind updates to that course, semester and repository. A
|
|
66
|
-
failed setup retries the same saved repository rather than creating duplicates.
|
|
67
|
-
|
|
68
|
-
Study is the default hosted workspace, including for old settings. Exercise
|
|
69
|
-
statements, hints and full solutions need explicit `--include-exercises` on the
|
|
70
|
-
publish command after reviewing their public exposure. `--exclude-exercises`
|
|
71
|
-
removes Exercises from subsequent eligible exports, using the same repository and URL. An
|
|
72
|
-
Exercises-only site also requires explicit inclusion. Lecture Notes separately requires
|
|
73
|
-
`--include-lectures`; old settings default to exclusion. `--exclude-lectures` also removes
|
|
74
|
-
previously managed lecture images. A notes-only export with notes excluded is refused.
|
|
75
|
-
|
|
76
|
-
Only the selected generated website renderer and data are uploaded. Downloaded
|
|
77
|
-
originals, credentials, AGENTS.md, study inventory, passage comments, progress,
|
|
78
|
-
audio and arbitrary files stay local. Git itself is not required: the publisher
|
|
79
|
-
uses authenticated GitHub API calls through `gh`. Local publication settings do
|
|
80
|
-
not contain credentials.
|
|
81
|
-
|
|
82
|
-
After setup, successful `tum-mcp study build PROJECT` commands update that same
|
|
83
|
-
repository automatically. Unchanged verified exports require no network calls
|
|
84
|
-
or commits. The study skills finish related edits in one build. Remote edits
|
|
85
|
-
are preserved for review; the publisher never force-pushes.
|
|
86
|
-
|
|
87
|
-
```sh
|
|
88
|
-
tum-mcp study publish status PROJECT
|
|
89
|
-
tum-mcp study publish sync PROJECT # retry pending/failed deployment
|
|
90
|
-
tum-mcp study publish pause PROJECT # pause future automatic uploads
|
|
91
|
-
tum-mcp study publish resume PROJECT
|
|
92
|
-
tum-mcp study build PROJECT --local-only # skip uploading this build
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Uploads are verified against the Pages build and GitHub checks for the exact
|
|
96
|
-
commit. Pending deployment exits with code 2 and is resumable; a successful
|
|
97
|
-
repository update alone is not a deployed site. Authentication, plan or network
|
|
98
|
-
failures preserve the local build. Polling has a budget of at most 60 seconds,
|
|
99
|
-
in addition to bounded API requests.
|
|
100
|
-
The `tum-mcp study` launcher prints local, hosted and repository URLs, plus pending
|
|
101
|
-
or paused status. Study progress remains per browser; passage comments require
|
|
102
|
-
the local preview and are disabled in the hosted export. Device synchronization
|
|
103
|
-
and offline support are not included.
|
|
104
|
-
|
|
105
13
|
## Start with one course
|
|
106
14
|
|
|
107
15
|
Use `sync-course` for both initial setup and later source updates. For a new project,
|
|
@@ -192,63 +100,31 @@ restores files when possible and reports any remaining conflict.
|
|
|
192
100
|
|
|
193
101
|
## Prepare the website
|
|
194
102
|
|
|
195
|
-
Ask `prepare-study` to create or extend the Study workspace in `app/`.
|
|
196
|
-
|
|
197
|
-
|
|
103
|
+
Ask `prepare-study` to create or extend the Study workspace in `app/`. The agent
|
|
104
|
+
writes `app/content.json` from your stored course material, and `tum-mcp study build`
|
|
105
|
+
installs the shared course app and checks every cited source. Units follow the
|
|
106
|
+
course's lecture or week sequence when useful, or consistent topics, with at most
|
|
107
|
+
one category level. Every unit has:
|
|
198
108
|
|
|
199
|
-
-
|
|
200
|
-
|
|
201
|
-
-
|
|
202
|
-
- Practice questions with
|
|
109
|
+
- Content: a short lesson with objectives, source links, assumptions and worked
|
|
110
|
+
examples, using formulas, tables, code, diagrams or line graphs where they help.
|
|
111
|
+
- Flashcards for recall. On a keyboard, arrows move, Space flips and 1/2 rate a card.
|
|
112
|
+
- Practice questions with plausible options and feedback for every option.
|
|
203
113
|
|
|
204
114
|
The agent uses stored material first, so local content edits work offline. Ask for
|
|
205
115
|
an upstream refresh when you want new course content; an existing check is reused
|
|
206
|
-
within the same request. Unchanged units and reviewed material are retained.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
Revision combines flashcards and practice from topics you select. Open Revision in
|
|
219
|
-
the outline, choose topics and collapse the checklist when ready. It reuses the
|
|
220
|
-
course's categories; selecting a category includes all its topics, and a mixed
|
|
221
|
-
checkbox shows a partly selected category. Revision reuses the
|
|
222
|
-
original items, sources and progress; selecting or removing topics never clears
|
|
223
|
-
your results. The topic selection is remembered locally for this course.
|
|
224
|
-
|
|
225
|
-
The topic picker and its nested categories collapse independently. You can select a
|
|
226
|
-
whole category while it is closed; its count and mixed state reflect the selection.
|
|
227
|
-
At End of set, outlined question rows include a Review action and chevron. Click
|
|
228
|
-
one to review it in a popup. Closing the popup returns
|
|
229
|
-
you to the same results row without changing progress.
|
|
230
|
-
|
|
231
|
-
The website uses Atkinson Hyperlegible Next for headings, explanations and controls.
|
|
232
|
-
Code and mathematical notation retain their specialist fonts. Equations adapt to
|
|
233
|
-
their container and keep local horizontal scrolling for indivisible wide expressions.
|
|
234
|
-
Use `\(v_i\)` in teaching text for inline variables and short expressions (JSON:
|
|
235
|
-
`"Use \\(v_i\\)."`). They compile locally to native MathML, including in tables,
|
|
236
|
-
glossaries, cards, questions and feedback. Code and dollar signs stay literal.
|
|
237
|
-
|
|
238
|
-
Select text in Content, Flashcards or Practice, then click **Comment** to record what is unclear.
|
|
239
|
-
You can also use Ctrl/Command+Alt+M after selecting text. The local preview saves
|
|
240
|
-
notes in `.tum-mcp/comments.json`, separately from learning progress. Click a
|
|
241
|
-
numbered passage marker or highlighted text to open its notes beside the quote.
|
|
242
|
-
Markers sit beside section headings or the current card/question position.
|
|
243
|
-
Notes can be edited, resolved or reopened; changed passages retain their original quotes.
|
|
244
|
-
Revision notes retain their original topic and card/question identity.
|
|
245
|
-
|
|
246
|
-
Tell your agent: **“Address the open comments in this study project.”** The skill
|
|
247
|
-
reads the notes, checks the cited material, improves the affected explanation and
|
|
248
|
-
verifies the result before recording a resolution. Notes and status changes sync
|
|
249
|
-
automatically while the preview is open. Your draft is kept if a note changes
|
|
250
|
-
elsewhere; choose Use latest or Keep mine before saving. Reload after the agent
|
|
251
|
-
rebuilds the teaching content.
|
|
116
|
+
within the same request. Unchanged units and reviewed material are retained. The
|
|
117
|
+
skill audits objective coverage, technical accuracy and distractors, and writes in
|
|
118
|
+
short, direct sentences that keep necessary terms and conditions.
|
|
119
|
+
|
|
120
|
+
The course home introduces the course, resumes where you left off and lists topics
|
|
121
|
+
with progress. Each view ends with a Next link through cards and practice to the
|
|
122
|
+
next unit. Revision pools cards and questions from the topics you choose (all topics
|
|
123
|
+
until you choose) and can focus on cards marked Again and questions you missed. It
|
|
124
|
+
reuses the original items and progress, so changing the topic selection never clears
|
|
125
|
+
results, and it remembers your selection for this course. Formulas and inline
|
|
126
|
+
notation such as `\(v_i\)` compile locally to native MathML; code and dollar signs
|
|
127
|
+
stay literal. The app has light and dark themes and a phone layout.
|
|
252
128
|
|
|
253
129
|
Content lives in `app/content.json`; shared renderer modules and CSS keep the
|
|
254
130
|
site extensible. Source hashes identify affected units. A stale source stops a
|
|
@@ -261,6 +137,8 @@ tum-mcp study inspect ./pse-ws26
|
|
|
261
137
|
tum-mcp study build ./pse-ws26
|
|
262
138
|
```
|
|
263
139
|
|
|
140
|
+
## Preview the app
|
|
141
|
+
|
|
264
142
|
From the course project folder, launch the prepared app with:
|
|
265
143
|
|
|
266
144
|
```sh
|
|
@@ -279,25 +157,39 @@ same-origin endpoint. It makes no campus requests.
|
|
|
279
157
|
No course credentials are copied into the website. Browser storage holds progress
|
|
280
158
|
locally. Nothing is published by these commands.
|
|
281
159
|
|
|
160
|
+
## Passage comments
|
|
161
|
+
|
|
162
|
+
Select text in Content, Flashcards, Practice, Exercises or Lecture Notes, then click
|
|
163
|
+
**Comment** to record what is unclear. You can also use Ctrl/Command+Alt+M after
|
|
164
|
+
selecting text. The local preview saves notes in `.tum-mcp/comments.json`, separately
|
|
165
|
+
from learning progress. Click a numbered marker or highlighted text to open its notes
|
|
166
|
+
beside the quote. Notes can be edited, resolved or reopened; changed passages retain
|
|
167
|
+
their original quotes, and Revision notes keep their original topic and item.
|
|
168
|
+
|
|
169
|
+
Tell your agent: **“Address the open comments in this study project.”** The skill
|
|
170
|
+
reads the notes, checks the cited material, improves the affected explanation and
|
|
171
|
+
verifies the result before recording a resolution. Notes and status changes sync
|
|
172
|
+
automatically while the preview is open. Your draft is kept if a note changes
|
|
173
|
+
elsewhere; choose Use latest or Keep mine before saving. Reload after the agent
|
|
174
|
+
rebuilds the teaching content.
|
|
175
|
+
|
|
282
176
|
## Prepare weekly exercises
|
|
283
177
|
|
|
284
178
|
Ask `prepare-exercises` to prepare released weekly sheets in the same app. Study
|
|
285
|
-
and Exercises can be prepared in either order. When both exist,
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
graded. Arbitrary graph drawing can use paper and rubric comparison. Typing, hints and step-by-step guidance are optional. Reviewed records an
|
|
300
|
-
action, not mastery or an assessment result.
|
|
179
|
+
and Exercises can be prepared in either order. When both exist, the workspace selector
|
|
180
|
+
at the bottom of the outline switches between them and remembers your place; on phones
|
|
181
|
+
it sits inside the open outline. The exercise list groups exercises by sheet and shows
|
|
182
|
+
each sheet's summary and due date when the sources provide them.
|
|
183
|
+
|
|
184
|
+
Each exercise shows the original statement and subparts first. Work on paper or in
|
|
185
|
+
the app, open the worked solution directly, or open **Guidance** for the exercise's
|
|
186
|
+
goals and one step at a time with optional hints and specific feedback. Checks cover
|
|
187
|
+
numbers with units and tolerance, multiple choice, fillable tables, graph selections
|
|
188
|
+
and paths, and plotted sample points. Long math and programming work use saved drafts
|
|
189
|
+
and prepared rubrics; code is never executed, and symbolic work, proofs and programs
|
|
190
|
+
are not graded automatically. Mark an exercise reviewed when you are done; Reviewed
|
|
191
|
+
records an action, not mastery or an assessment result. A Next link leads to the
|
|
192
|
+
following exercise.
|
|
301
193
|
|
|
302
194
|
Drafts and assistance stay in this browser. Editing a checked answer clears its
|
|
303
195
|
verdict. Semantic changes start fresh progress for only that exercise, while retaining older
|
|
@@ -312,6 +204,70 @@ learning revisions, comments, settings and personal files, and stops on customiz
|
|
|
312
204
|
generated files, an occupied backup or two layouts. Repeating a completed upgrade
|
|
313
205
|
is a no-op. Do not create `app/` alongside an existing `study/` by hand.
|
|
314
206
|
|
|
207
|
+
## Publish a study website
|
|
208
|
+
|
|
209
|
+
The `publish-course` skill makes a prepared site accessible from a phone
|
|
210
|
+
or another computer. Its GitHub repository is private; the Pages website is
|
|
211
|
+
public. An eligible paid GitHub plan is required for Pages from private repositories.
|
|
212
|
+
This workflow does not provide private website access. Review lesson text,
|
|
213
|
+
quotations and source links for the intended public audience before publishing.
|
|
214
|
+
|
|
215
|
+
Install GitHub CLI on the execution host and run `gh auth login --hostname github.com`.
|
|
216
|
+
`tum-mcp doctor` checks CLI availability without network access; `doctor --live`
|
|
217
|
+
also verifies GitHub authentication. It does not publish anything, open sign-in
|
|
218
|
+
automatically, extract tokens, or change Git credential settings.
|
|
219
|
+
|
|
220
|
+
```sh
|
|
221
|
+
# Preview the chosen name and hosting requirements without GitHub mutations.
|
|
222
|
+
tum-mcp study publish --project PROJECT
|
|
223
|
+
# After choosing public website content; the repository stays private.
|
|
224
|
+
tum-mcp study publish --project PROJECT --public-site
|
|
225
|
+
# Optional account/name override on first setup:
|
|
226
|
+
tum-mcp study publish --project PROJECT --public-site --repository OWNER/NAME
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Names use `study-<course>-<semester>` in lowercase with hyphens. A collision gets
|
|
230
|
+
a stable course suffix; existing repositories are never made public. Settings in
|
|
231
|
+
`.tum-mcp/github.json` bind updates to that course, semester and repository. A
|
|
232
|
+
failed setup retries the same saved repository rather than creating duplicates.
|
|
233
|
+
|
|
234
|
+
Study is the default hosted workspace, including for old settings. Exercise
|
|
235
|
+
statements, hints and full solutions need explicit `--include-exercises` on the
|
|
236
|
+
publish command after reviewing their public exposure. `--exclude-exercises`
|
|
237
|
+
removes Exercises from subsequent eligible exports, using the same repository and URL. An
|
|
238
|
+
Exercises-only site also requires explicit inclusion. Lecture Notes separately requires
|
|
239
|
+
`--include-lectures`; old settings default to exclusion. `--exclude-lectures` also removes
|
|
240
|
+
previously managed lecture images. A notes-only export with notes excluded is refused.
|
|
241
|
+
|
|
242
|
+
Only the selected generated website renderer and data are uploaded. Downloaded
|
|
243
|
+
originals, credentials, AGENTS.md, study inventory, passage comments, progress,
|
|
244
|
+
audio and arbitrary files stay local. Git itself is not required: the publisher
|
|
245
|
+
uses authenticated GitHub API calls through `gh`. Local publication settings do
|
|
246
|
+
not contain credentials.
|
|
247
|
+
|
|
248
|
+
After setup, successful `tum-mcp study build PROJECT` commands update that same
|
|
249
|
+
repository automatically. Unchanged verified exports require no network calls
|
|
250
|
+
or commits. The study skills finish related edits in one build. Remote edits
|
|
251
|
+
are preserved for review; the publisher never force-pushes.
|
|
252
|
+
|
|
253
|
+
```sh
|
|
254
|
+
tum-mcp study publish status PROJECT
|
|
255
|
+
tum-mcp study publish sync PROJECT # retry pending/failed deployment
|
|
256
|
+
tum-mcp study publish pause PROJECT # pause future automatic uploads
|
|
257
|
+
tum-mcp study publish resume PROJECT
|
|
258
|
+
tum-mcp study build PROJECT --local-only # skip uploading this build
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Uploads are verified against the Pages build and GitHub checks for the exact
|
|
262
|
+
commit. Pending deployment exits with code 2 and is resumable; a successful
|
|
263
|
+
repository update alone is not a deployed site. Authentication, plan or network
|
|
264
|
+
failures preserve the local build. Polling has a budget of at most 60 seconds,
|
|
265
|
+
in addition to bounded API requests.
|
|
266
|
+
The `tum-mcp study` launcher prints local, hosted and repository URLs, plus pending
|
|
267
|
+
or paused status. Study progress remains per browser; passage comments require
|
|
268
|
+
the local preview and are disabled in the hosted export. Device synchronization
|
|
269
|
+
and offline support are not included.
|
|
270
|
+
|
|
315
271
|
## Create and maintain audio notes
|
|
316
272
|
|
|
317
273
|
Install the optional workflow with `tum-mcp install audio-notes`.
|
|
@@ -383,30 +339,56 @@ for the updated study website”** to reconcile added, changed, removed or moved
|
|
|
383
339
|
material with the previous verified coverage. This is an agent skill, not a new
|
|
384
340
|
`tum-mcp study` CLI subcommand or a built-in speech service.
|
|
385
341
|
|
|
386
|
-
##
|
|
342
|
+
## Studocu materials
|
|
343
|
+
|
|
344
|
+
Install the optional extension with `tum-mcp install studocu` and reload your
|
|
345
|
+
client. Ask `sync-studocu` to collect materials for a course project. It can
|
|
346
|
+
initialize a Studocu-only project with a verified course and semester.
|
|
347
|
+
Search is anonymous and bounded; a limited result set is not a complete inventory.
|
|
348
|
+
`tum-mcp studocu login` explains how to sign in to Studocu in your own browser.
|
|
349
|
+
The extension cannot infer account entitlement or download original files through
|
|
350
|
+
the public MCP. Save an original that your account permits in the browser.
|
|
351
|
+
|
|
352
|
+
The skill records a reviewed selection with `tum-mcp studocu plan PROJECT
|
|
353
|
+
--selection FILE` and tracks it with `tum-mcp studocu status PROJECT --json`.
|
|
354
|
+
Import a selected original with `tum-mcp studocu import PROJECT --document-id ID
|
|
355
|
+
--file FILE`. The document-to-file association is user-selected. Originals go to
|
|
356
|
+
`materials/studocu/summaries`, `materials/studocu/exams` (including mocks and
|
|
357
|
+
solutions), or `materials/studocu/other`. Files remain local and retain their
|
|
358
|
+
original bytes. Consult the skill's collection reference for the selection schema.
|
|
359
|
+
Exact matches in the same group, type and known year share one original through
|
|
360
|
+
a private alias. Each selected document retains its own source identity and URL.
|
|
361
|
+
Changing a document's classification or refreshing its original separates aliases
|
|
362
|
+
when they no longer match; previous versions remain in private history.
|
|
363
|
+
When an existing selection is planned again, unchanged duplicate originals are
|
|
364
|
+
consolidated. Edited or missing files are preserved for review.
|
|
365
|
+
|
|
366
|
+
Local study material can cite student uploads. Publishing rejects included
|
|
367
|
+
Studocu-backed sources; this source check cannot identify uncited copied text or
|
|
368
|
+
replace a review of the published content.
|
|
387
369
|
|
|
388
|
-
The
|
|
389
|
-
It includes the shell, navigation, flip cards, practice, diagrams and styling.
|
|
390
|
-
Agents author course content in `app/content.json`; `study build` installs the
|
|
391
|
-
shared template, preserves customized files and checks sources. This keeps new
|
|
392
|
-
course sites consistent without rebuilding the interface. `tum-mcp study template`
|
|
393
|
-
shows the bundled files and their combined revision for reproducible development.
|
|
370
|
+
## The course app
|
|
394
371
|
|
|
395
|
-
|
|
372
|
+
The shared course app is packaged in `bundled/course_app/site/`, separately from the
|
|
373
|
+
skill instructions. It owns layout, styling and interaction for Study, Exercises and
|
|
374
|
+
Lecture Notes. Agents author only course content; `study build` installs the app,
|
|
375
|
+
preserves customized files and checks sources, so courses gain app improvements
|
|
376
|
+
without rewriting content. `tum-mcp study template` shows the bundled files and
|
|
377
|
+
their combined revision for reproducible development.
|
|
396
378
|
|
|
397
|
-
|
|
379
|
+
To see every component with synthetic data:
|
|
398
380
|
|
|
399
381
|
```sh
|
|
400
382
|
tum-mcp study demo ./component-preview
|
|
401
383
|
tum-mcp study serve ./component-preview
|
|
402
384
|
```
|
|
403
385
|
|
|
404
|
-
|
|
405
|
-
formulas, graph/process diagrams, cards and response controls. It is a
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
386
|
+
The demo creates one small Study unit and one exercise covering prose, code, tables,
|
|
387
|
+
formulas, graph/process diagrams, cards and response controls. It is a format
|
|
388
|
+
reference, not necessarily a good teaching or question-authoring example; actual
|
|
389
|
+
course authoring follows reviewed sources and the preparation skills. Rich learning
|
|
390
|
+
pilots stay in private test fixtures. It uses no campus account, and an existing
|
|
391
|
+
edited demo is preserved.
|
|
410
392
|
|
|
411
393
|
## Local helper inputs
|
|
412
394
|
|
package/docs/tum-mcp.md
CHANGED
|
@@ -96,15 +96,15 @@ browser onboarding. See [setup](setup.md) for browser choices and WSL.
|
|
|
96
96
|
## Connections and read access
|
|
97
97
|
|
|
98
98
|
```sh
|
|
99
|
-
tum-mcp
|
|
100
|
-
tum-mcp
|
|
99
|
+
tum-mcp login
|
|
100
|
+
tum-mcp doctor
|
|
101
101
|
tum-mcp discover artemis ACCOUNT_ID
|
|
102
102
|
tum-mcp discover zulip ACCOUNT_ID
|
|
103
103
|
tum-mcp --help
|
|
104
104
|
tum-mcp study build --help
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
`
|
|
107
|
+
`login` takes no arguments or connection options. Move with up/down, toggle
|
|
108
108
|
services with Space, and press Enter. Choose a browser when more than one is
|
|
109
109
|
installed. Only selected tabs open in one temporary browser context. Moodle,
|
|
110
110
|
Artemis, Zulip and TUMonline all follow this flow.
|
|
@@ -152,7 +152,7 @@ the command offers a numbered text prompt instead.
|
|
|
152
152
|
When multiple accounts exist, add `--account ACCOUNT_ID`. Reconnecting preserves
|
|
153
153
|
the policy. `tum-mcp manage tumonline --disconnect` removes the local TUMonline
|
|
154
154
|
credential and retains the policy; it does not revoke remote sessions. An expired
|
|
155
|
-
session requires `tum-mcp
|
|
155
|
+
session requires `tum-mcp login` again. If the policy is missing or corrupt, use
|
|
156
156
|
`tum-mcp manage tumonline --account ACCOUNT_ID --disconnect` to remove that saved
|
|
157
157
|
session without resetting permissions or affecting other providers.
|
|
158
158
|
|
|
@@ -229,8 +229,8 @@ The base pack contains five skills: `read-content`, `sync-course`,
|
|
|
229
229
|
`prepare-study`, `prepare-exercises` and `publish-course`. Optional extensions add
|
|
230
230
|
`prepare-lecture`, `sync-studocu` and `audio-notes`; choose them with `tum-mcp install`.
|
|
231
231
|
Website-specific retrieval guidance is loaded from references within read-content.
|
|
232
|
-
Teaching
|
|
233
|
-
|
|
232
|
+
Teaching and content guidance lives with prepare-study; the course app and its
|
|
233
|
+
synthetic example ship as reusable assets and define the site's design.
|
|
234
234
|
Audio Notes converts prepared content into category tracks and maintains coverage,
|
|
235
235
|
scripts, voice settings, candidates and archives under the course's `audio/` root.
|
|
236
236
|
Publish Course uses host GitHub CLI authentication to create a private repository
|
|
@@ -320,4 +320,4 @@ course material, local agent notes and screenshots stay under ignored local path
|
|
|
320
320
|
Maintainer checks include a reviewed tarball inventory, integrity checks and an
|
|
321
321
|
isolated consumer install. Never publish or stage npm packages as a test. Registry
|
|
322
322
|
publication is an explicit maintainer action.
|
|
323
|
-
`tum-mcp
|
|
323
|
+
`tum-mcp doctor` reads local configuration and does not check the npm registry.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wheel": "tum_mcp-0.9.
|
|
3
|
-
"wheelSha256": "
|
|
2
|
+
"wheel": "tum_mcp-0.9.3-py3-none-any.whl",
|
|
3
|
+
"wheelSha256": "15601cbdc8b931a64a58eac7aca0be0b4bc7c1df63d11f267d11599d48b29ec2",
|
|
4
4
|
"requirementsSha256": "39a401b6e606d3292eb91b8fe9ef60367d4852f203eb409dc52f38b76e513ccf"
|
|
5
5
|
}
|
|
Binary file
|
package/npm/tum-mcp.mjs
CHANGED
|
@@ -22,9 +22,8 @@ try {
|
|
|
22
22
|
['Options', [['--version', 'Show the installed version.'], ['-h, --help', 'Show this help.']]],
|
|
23
23
|
['Commands', [
|
|
24
24
|
['setup', 'Configure your coding client and managed runtime.'],
|
|
25
|
-
['
|
|
26
|
-
['
|
|
27
|
-
['doctor', 'Check installation and authentication.'],
|
|
25
|
+
['login', 'Sign in to selected campus services.'],
|
|
26
|
+
['doctor', 'Show connections, extensions and relevant client/runtime health.'],
|
|
28
27
|
['install', 'Choose optional Lecture, Studocu or Audio Notes workflows.'],
|
|
29
28
|
['uninstall', 'Choose extensions or All to remove TUM MCP.'],
|
|
30
29
|
['manage', 'Manage TUMonline permissions.'],
|
|
@@ -38,7 +37,7 @@ try {
|
|
|
38
37
|
['serve', 'Run the MCP server over stdio.'],
|
|
39
38
|
['version', 'Show the installed version.'],
|
|
40
39
|
]],
|
|
41
|
-
['Get started', [['tum-mcp setup --client codex', 'Prepare the backend and a client.'], ['tum-mcp
|
|
40
|
+
['Get started', [['tum-mcp setup --client codex', 'Prepare the backend and a client.'], ['tum-mcp login', 'Choose services and sign in.']]],
|
|
42
41
|
]);
|
|
43
42
|
} else if (['--version', 'version'].includes(args[0])) {
|
|
44
43
|
console.log(version);
|