@jamestesting888/tum-mcp 0.6.1 → 0.8.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 +33 -0
- package/README.md +19 -14
- package/docs/development.md +6 -4
- package/docs/setup.md +10 -8
- package/docs/study.md +92 -27
- package/docs/tum-mcp.md +24 -19
- package/npm/backend/manifest.json +2 -2
- package/npm/backend/{tum_mcp-0.6.1-py3-none-any.whl → tum_mcp-0.8.0-py3-none-any.whl} +0 -0
- package/npm/tum-mcp.mjs +19 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 0.8.0 — 2026-10-26
|
|
4
|
+
|
|
5
|
+
- Read Artemis courses, lectures, exercises, own feedback and accessible Zulip
|
|
6
|
+
channels after sign-in without separate local scope grants. Preserve server
|
|
7
|
+
permissions, bounded queries and disabled remote writes.
|
|
8
|
+
- Keep standard `--help` for command discovery and guide agents toward relevant
|
|
9
|
+
current-semester metadata before retrieving course content.
|
|
10
|
+
|
|
11
|
+
## 0.7.0 — 2026-10-26
|
|
12
|
+
|
|
13
|
+
- Share one course app between Study and Exercises, with a single workspace
|
|
14
|
+
selector in the sidebar footer and a responsive mobile outline.
|
|
15
|
+
- Add `prepare-exercises` for source-backed weekly exercises with optional hints,
|
|
16
|
+
explanations, solutions and prepared checks. Support editable tables, long math
|
|
17
|
+
and code drafts, graph selections/paths and line graph sample points. Open work
|
|
18
|
+
uses rubric comparison; the app does not execute code or grade proofs.
|
|
19
|
+
- Keep step navigation in place, shorten controls and show section sources through
|
|
20
|
+
compact reference icons. Preserve browser progress, drafts and passage comments.
|
|
21
|
+
- Use `.tum-mcp/` for private course state and a cited agent course handbook covering
|
|
22
|
+
course organization, schedules, coursework/platforms, assessment and bonus rules.
|
|
23
|
+
Track reviewed source versions, coverage gaps and changed supporting sources.
|
|
24
|
+
- Rename `sync-study` to `sync-course` and `publish-study` to `publish-course`;
|
|
25
|
+
retain managed migration for previous skill names and preserve personal overrides.
|
|
26
|
+
- Keep the shipped app a minimal reusable component template, explicitly distinct
|
|
27
|
+
from an example of good course teaching. Keep rich synthetic tests out of the package.
|
|
28
|
+
|
|
29
|
+
New projects use `app/`; existing `study/` websites remain supported. Run
|
|
30
|
+
`tum-mcp study upgrade PROJECT` explicitly to rename legacy `.study/` metadata;
|
|
31
|
+
it preserves private records and archives the old root instructions. The separate
|
|
32
|
+
`study build PROJECT --upgrade-layout` moves a verified legacy web folder to `app/`
|
|
33
|
+
with a backup. Neither package installation nor update migrates course folders or
|
|
34
|
+
rebuilds personal sites automatically. Exercise publication is opt-in.
|
|
35
|
+
|
|
3
36
|
## 0.6.1 — 2026-10-25
|
|
4
37
|
|
|
5
38
|
- Make `tum-mcp update` download and validate the latest npm release before
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Connect your coding agent to Moodle, Artemis and Zulip. Read course content and
|
|
4
4
|
build a private, source-backed study workspace. Unofficial; independent of TUM.
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**Package: [@jamestesting888/tum-mcp](https://www.npmjs.com/package/@jamestesting888/tum-mcp).**
|
|
7
7
|
[Release notes](CHANGELOG.md).
|
|
8
8
|
|
|
9
9
|
## Agent setup
|
|
@@ -30,14 +30,16 @@ npm install --global @jamestesting888/tum-mcp@latest
|
|
|
30
30
|
tum-mcp setup --client codex
|
|
31
31
|
tum-mcp connect
|
|
32
32
|
tum-mcp doctor
|
|
33
|
+
tum-mcp --help
|
|
33
34
|
```
|
|
34
35
|
|
|
35
36
|
Select services with **Space**, then **Enter**. Choose an installed browser and
|
|
36
37
|
complete sign-in there. Only selected tabs open; Zulip needs no API key.
|
|
37
|
-
|
|
38
|
+
Read access follows your campus account's permissions; no course/channel scope setup is needed.
|
|
39
|
+
Use `tum-mcp study build --help` for a command's options.
|
|
38
40
|
|
|
39
41
|
Choose a client with `--client`: `codex`, `claude`, `cursor` or `antigravity`.
|
|
40
|
-
Setup configures MCP and installs all
|
|
42
|
+
Setup configures MCP and installs all six skills; follow any activation or
|
|
41
43
|
restart prompts. Use `generic` for manual MCP setup.
|
|
42
44
|
|
|
43
45
|
For existing Cursor and Antigravity setups, run `tum-mcp update` to add the skills.
|
|
@@ -63,15 +65,16 @@ posting and read-state changes are unavailable.
|
|
|
63
65
|
|
|
64
66
|
### Skills and example requests
|
|
65
67
|
|
|
66
|
-
The package includes
|
|
68
|
+
The package includes six skills. Once you've chosen a course from
|
|
67
69
|
your connections, try requests like these:
|
|
68
70
|
|
|
69
71
|
| Skill | Use it to | Example request |
|
|
70
72
|
| --- | --- | --- |
|
|
71
73
|
| `read-content` | Read and explain course sources with citations | "Can you explain what we covered in last week's lecture?" |
|
|
72
|
-
| `sync-
|
|
74
|
+
| `sync-course` | Create or refresh a course project | "Set up a study project for this course." |
|
|
73
75
|
| `prepare-study` | Build lessons, flashcards and practice | "Make me a study website with flashcards and practice questions." |
|
|
74
|
-
| `
|
|
76
|
+
| `prepare-exercises` | Prepare optional hints, checks and worked solutions | "Help me work through this week's exercises in the same app." |
|
|
77
|
+
| `publish-course` | Put a prepared website on GitHub Pages | "Put my study site online so I can open it on my phone." |
|
|
75
78
|
| `audio-notes` | Save spoken lessons under `audio/` | "Turn this into audio notes I can listen to on the go." |
|
|
76
79
|
|
|
77
80
|
Useful follow-ups in an existing project:
|
|
@@ -86,11 +89,12 @@ Client setup installs managed copies of the
|
|
|
86
89
|
|
|
87
90
|
### Recommended study flow
|
|
88
91
|
|
|
89
|
-
1. **`sync-
|
|
92
|
+
1. **`sync-course`**: Set up a project for your course and collect its material.
|
|
90
93
|
Use it again when new material is available.
|
|
91
94
|
2. **`prepare-study`**: Turn that material into a study website with explanations,
|
|
92
|
-
flashcards and practice questions.
|
|
93
|
-
|
|
95
|
+
flashcards and practice questions. Use **`prepare-exercises`** for released sheets
|
|
96
|
+
with prepared interactive guidance. Both workspaces share one app; either can come first.
|
|
97
|
+
3. **`publish-course`** (optional): Put the website online so you can study on your
|
|
94
98
|
phone. Check the [publishing requirements](#publish-for-phone-access-optional) first.
|
|
95
99
|
4. **`audio-notes`** (optional): Turn the prepared content into spoken lessons.
|
|
96
100
|
Use them to revisit prepared topics while walking or commuting.
|
|
@@ -130,7 +134,7 @@ See [publishing details](docs/study.md#publish-a-study-website).
|
|
|
130
134
|
Sign-in and MFA happen in a temporary browser window. Only service-owned session
|
|
131
135
|
cookies are retained; identity-provider cookies are discarded when it closes.
|
|
132
136
|
Sessions stay on your computer in encrypted files with owner-restricted keys.
|
|
133
|
-
Configured local clients share those connections and
|
|
137
|
+
Configured local clients share those connections and saved preferences.
|
|
134
138
|
|
|
135
139
|
## Your study project
|
|
136
140
|
|
|
@@ -139,19 +143,20 @@ your project looks like this, with audio added when requested:
|
|
|
139
143
|
|
|
140
144
|
```text
|
|
141
145
|
my-course/
|
|
142
|
-
├── AGENTS.md
|
|
146
|
+
├── AGENTS.md Your rules and a short pointer to agent context
|
|
143
147
|
├── materials/
|
|
144
148
|
│ ├── content/ Lectures, slides and reading
|
|
145
149
|
│ ├── exercises/ Exercise sheets and practice material
|
|
146
150
|
│ ├── exams/ Available exam and revision material
|
|
147
151
|
│ └── other/ Announcements and course information
|
|
148
|
-
├──
|
|
152
|
+
├── app/
|
|
149
153
|
│ ├── content.json Lessons, flashcards and practice questions
|
|
150
154
|
│ └── index.html Your study website
|
|
151
155
|
├── audio/ Optional audio notes
|
|
152
156
|
│ ├── scripts/ Narration text
|
|
153
157
|
│ └── tracks/ Audio lessons
|
|
154
|
-
└── .
|
|
158
|
+
└── .tum-mcp/
|
|
159
|
+
├── course.md Cited course orientation, rules and unknowns
|
|
155
160
|
├── state.json Course identity and source versions
|
|
156
161
|
└── comments.json Passage comments, when added
|
|
157
162
|
```
|
|
@@ -170,7 +175,7 @@ tum-mcp update
|
|
|
170
175
|
same npm location and refreshes configured clients. It never downgrades a newer
|
|
171
176
|
installation. Use `tum-mcp update --local` to refresh the installed version without checking npm.
|
|
172
177
|
From 0.6.0 or earlier, upgrade the npm package once to obtain this command.
|
|
173
|
-
Sessions,
|
|
178
|
+
Sessions, preferences and downloads carry forward. User-edited entries and skills are
|
|
174
179
|
preserved and reported for review. Reload the client; refresh its cached plugin
|
|
175
180
|
if needed. Study sites are updated separately through the study workflows.
|
|
176
181
|
|
package/docs/development.md
CHANGED
|
@@ -40,7 +40,7 @@ Each layer owns a different failure boundary:
|
|
|
40
40
|
| Public upgrade | Earlier published versions, repair, ownership conflicts and removal |
|
|
41
41
|
| Native platform | OS credential/ACL behavior; WSL Windows browser transport on both engines |
|
|
42
42
|
|
|
43
|
-
Study integration fixtures build the
|
|
43
|
+
Study integration fixtures build the private rich regression fixture once, then copy it into a fresh
|
|
44
44
|
project for each test. Launcher tests only need an HTML entry point. Neither
|
|
45
45
|
shares mutable course state. Client transaction tests use five small synthetic
|
|
46
46
|
skills, including nested binary assets; full-pack export, migration and installed
|
|
@@ -56,7 +56,7 @@ CI runs macOS, Windows and Linux, plus both distribution engines on WSL 3.x.
|
|
|
56
56
|
Consumer checks install the actual npm artifact, discover tools, build a study
|
|
57
57
|
site and test available Chromium browsers with temporary profiles and synthetic
|
|
58
58
|
pages. WSL verifies Windows browser transport. No live account is used.
|
|
59
|
-
Upgrade checks cover public 0.
|
|
59
|
+
Upgrade checks cover public 0.7.0, client refresh, customized-file conflicts,
|
|
60
60
|
failed preparation, runtime repair and removal that preserves work/credentials.
|
|
61
61
|
The package-lifecycle check uses a local synthetic registry and real isolated
|
|
62
62
|
global npm prefixes to verify downloads, backend validation, replacement,
|
|
@@ -110,12 +110,14 @@ material remain untrusted data for the skill.
|
|
|
110
110
|
|
|
111
111
|
## Study renderer
|
|
112
112
|
|
|
113
|
-
Author `
|
|
113
|
+
Author `app/content.json` and optional `app/exercises.json`; legacy `study/` remains supported. Formula blocks use LaTeX compiled locally into safe
|
|
114
114
|
native MathML; legacy MathML remains accepted. Unit `path` labels group the outline
|
|
115
115
|
without changing learning-progress revisions. Shared modules render all units;
|
|
116
116
|
content changes do not require a framework or per-unit HTML.
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
Shared renderer assets live in `src/tum_mcp/bundled/course_app/site/`. The shipped
|
|
119
|
+
component preview is deliberately minimal; richer learning pilots live in
|
|
120
|
+
`tests/fixtures/course_app/`. The distributed design/teaching/verification contracts live under
|
|
119
121
|
`src/tum_mcp/bundled/skills/prepare-study/references/`. Local agent notes and
|
|
120
122
|
screenshots belong in ignored `docs/local/` or `.omo/`. Keep real course projects,
|
|
121
123
|
session files, databases, downloads and environment files out of artifacts.
|
package/docs/setup.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Setup and troubleshooting
|
|
2
2
|
|
|
3
|
-
[README](../README.md) · [Tools and
|
|
3
|
+
[README](../README.md) · [Tools and access](tum-mcp.md) · [Development](development.md)
|
|
4
4
|
|
|
5
5
|
Use the latest package for the connection, managed update and removal flows below.
|
|
6
6
|
|
|
@@ -16,11 +16,12 @@ npm install --global @jamestesting888/tum-mcp@latest
|
|
|
16
16
|
tum-mcp setup --client codex
|
|
17
17
|
tum-mcp connect
|
|
18
18
|
tum-mcp doctor
|
|
19
|
+
tum-mcp --help
|
|
19
20
|
```
|
|
20
21
|
|
|
21
22
|
Use `--client claude`, `cursor`, `antigravity`, or `generic` for another client.
|
|
22
23
|
Codex needs the plugin enabled and a restart when prompted. Cursor and
|
|
23
|
-
Antigravity setup installs all
|
|
24
|
+
Antigravity setup installs all six skills and MCP configuration; restart each
|
|
24
25
|
client afterward. Existing MCP-only setups gain the skills through `tum-mcp update`
|
|
25
26
|
or another setup run. Generic setup writes configuration for manual installation.
|
|
26
27
|
Setup preserves unrelated settings and refuses to
|
|
@@ -46,10 +47,11 @@ For another Chromium build, set `TUM_MCP_BROWSER` to its executable path before
|
|
|
46
47
|
running connect. Compatible builds must allow Playwright automation. Safari and
|
|
47
48
|
Firefox are not supported.
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
After sign-in, Artemis and Zulip can read content available to your campus account.
|
|
51
|
+
No local course/channel grants are required. Your agent uses status/discover and
|
|
52
|
+
course metadata to find relevant current-semester material, then makes bounded reads.
|
|
52
53
|
An account ID identifies a saved service connection; it is not your TUM login.
|
|
54
|
+
`tum-mcp --help` lists commands; `tum-mcp study build --help` shows command options.
|
|
53
55
|
|
|
54
56
|
## WSL
|
|
55
57
|
|
|
@@ -102,7 +104,7 @@ browser discovery still requires functioning interop.
|
|
|
102
104
|
The [publishing workflow](study.md#publish-a-study-website) uses private repositories
|
|
103
105
|
with public Pages websites and requires an eligible paid GitHub plan.
|
|
104
106
|
- An expired session uses the same `tum-mcp connect` selector. Reconnecting the
|
|
105
|
-
same identity preserves
|
|
107
|
+
same identity preserves saved preferences.
|
|
106
108
|
- If no browser appears, check its installation or `TUM_MCP_BROWSER`. A managed
|
|
107
109
|
or incompatible Chromium build may prevent automation; try another browser.
|
|
108
110
|
- Git and Docker are optional. Neither is needed for course reads or the
|
|
@@ -111,7 +113,7 @@ browser discovery still requires functioning interop.
|
|
|
111
113
|
|
|
112
114
|
Sessions are encrypted with owner-restricted local key files. This avoids native
|
|
113
115
|
credential-store prompts, but anyone obtaining both key and ciphertext can
|
|
114
|
-
decrypt them. [Storage locations and recovery](tum-mcp.md#connections-and-
|
|
116
|
+
decrypt them. [Storage locations and recovery](tum-mcp.md#connections-and-read-access)
|
|
115
117
|
explain where sessions are saved and how to back them up.
|
|
116
118
|
|
|
117
119
|
## Update and remove
|
|
@@ -123,7 +125,7 @@ tum-mcp update
|
|
|
123
125
|
From 0.6.1, `update` retrieves the latest npm release, validates its backend in a
|
|
124
126
|
temporary installation, replaces the invoked package and refreshes previously
|
|
125
127
|
configured clients. It preserves the installation prefix and global/local mode.
|
|
126
|
-
It does not connect services, change
|
|
128
|
+
It does not connect services, change preferences or register additional clients.
|
|
127
129
|
It never downgrades a newer installation. `update --local` skips npm and repairs
|
|
128
130
|
or refreshes the installed version. Source/pinned builds use this local mode;
|
|
129
131
|
temporary npx and linked source installations are not replaced automatically.
|
package/docs/study.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Course study projects
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Six focused skills cover source reading, course sync, Study preparation, Exercises preparation, audio and publishing.
|
|
4
4
|
They run in your local agent, using the connected
|
|
5
5
|
MCP tools to read course sources. The CLI validates and stores the resulting local
|
|
6
6
|
files; it does not run an AI model.
|
|
7
7
|
|
|
8
8
|
## Publish a study website
|
|
9
9
|
|
|
10
|
-
The optional `publish-
|
|
10
|
+
The optional `publish-course` skill makes a prepared site accessible from a phone
|
|
11
11
|
or another computer. Its GitHub repository is private; the Pages website is
|
|
12
12
|
public. An eligible paid GitHub plan is required for Pages from private repositories.
|
|
13
13
|
This workflow does not provide private website access. Review lesson text,
|
|
@@ -29,10 +29,16 @@ tum-mcp study publish --project PROJECT --public-site --repository OWNER/NAME
|
|
|
29
29
|
|
|
30
30
|
Names use `study-<course>-<semester>` in lowercase with hyphens. A collision gets
|
|
31
31
|
a stable course suffix; existing repositories are never made public. Settings in
|
|
32
|
-
`.
|
|
32
|
+
`.tum-mcp/github.json` bind updates to that course, semester and repository. A
|
|
33
33
|
failed setup retries the same saved repository rather than creating duplicates.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Study is the default hosted workspace, including for old settings. Exercise
|
|
36
|
+
statements, hints and full solutions need explicit `--include-exercises` on the
|
|
37
|
+
publish command after reviewing their public exposure. `--exclude-exercises`
|
|
38
|
+
returns a combined site to Study only, using the same repository and URL. An
|
|
39
|
+
Exercises-only site also requires explicit inclusion.
|
|
40
|
+
|
|
41
|
+
Only the selected generated website renderer and data are uploaded. Downloaded
|
|
36
42
|
originals, credentials, AGENTS.md, study inventory, passage comments, progress,
|
|
37
43
|
audio and arbitrary files stay local. Git itself is not required: the publisher
|
|
38
44
|
uses authenticated GitHub API calls through `gh`. Local publication settings do
|
|
@@ -63,7 +69,7 @@ and offline support are not included.
|
|
|
63
69
|
|
|
64
70
|
## Start with one course
|
|
65
71
|
|
|
66
|
-
Use `sync-
|
|
72
|
+
Use `sync-course` for both initial setup and later source updates. For a new project,
|
|
67
73
|
provide the course title and semester when known. The agent verifies
|
|
68
74
|
its availability, resolves source IDs and asks about ambiguous mappings. A project
|
|
69
75
|
cannot switch course or semester. Use a separate directory for another course.
|
|
@@ -86,18 +92,42 @@ pse-ws26/
|
|
|
86
92
|
exams/ Available revision material
|
|
87
93
|
exercises/ Released statements and practice references
|
|
88
94
|
other/ Announcements and course information
|
|
89
|
-
.
|
|
90
|
-
|
|
95
|
+
.tum-mcp/
|
|
96
|
+
course.md Cited course structure, logistics, rules and unknowns
|
|
97
|
+
state.json Course binding, source versions and coverage
|
|
98
|
+
notes/ Detailed course/agent notes when needed
|
|
99
|
+
app/ Shared Study and Exercises website
|
|
100
|
+
content.json Optional source-backed Study content
|
|
101
|
+
exercises.json Optional prepared exercise guidance
|
|
91
102
|
audio/ Optional category audio derived from the prepared website
|
|
92
103
|
```
|
|
93
104
|
|
|
94
|
-
`AGENTS.md`
|
|
95
|
-
|
|
96
|
-
|
|
105
|
+
`AGENTS.md` retains user rules and points agents to `.tum-mcp/course.md`. That short
|
|
106
|
+
handbook explains the course's goals, lectures/tutorials, weekly work and platforms,
|
|
107
|
+
assessment/bonus conditions, communication and preparation map. Claims carry source
|
|
108
|
+
links/locators and checked dates; unknowns and conflicting announcements stay visible.
|
|
109
|
+
Detailed source content remains in materials/. All TUM MCP course state, plans and
|
|
110
|
+
agent notes live under .tum-mcp/.
|
|
111
|
+
|
|
112
|
+
`sync-course` reads the relevant authoritative sources and maintains the handbook;
|
|
113
|
+
the CLI scaffolds it without pretending to understand the course. Its review receipt
|
|
114
|
+
records the local generation and hashes of supporting sources. `study inspect`
|
|
115
|
+
reports changed supporting sources and coverage gaps so refreshes can focus on
|
|
116
|
+
affected claims. A reviewed local snapshot does not establish live freshness or
|
|
117
|
+
complete understanding. See the bundled sync-course context reference for the full
|
|
118
|
+
source-review workflow.
|
|
119
|
+
|
|
120
|
+
To rename existing private `.study/` state explicitly, close other course processes
|
|
121
|
+
and run `tum-mcp study upgrade PROJECT`. It preserves unknown private files,
|
|
122
|
+
comments, publication settings and the full old root instructions as
|
|
123
|
+
`.tum-mcp/legacy-AGENTS.md`. Course identity, materials and browser progress stay the
|
|
124
|
+
same. Existing legacy state remains readable until upgrade; two state folders are
|
|
125
|
+
a conflict to reconcile, never silently merged. This differs from the web-folder
|
|
126
|
+
upgrade below.
|
|
97
127
|
|
|
98
128
|
## State-based workflow
|
|
99
129
|
|
|
100
|
-
`sync-
|
|
130
|
+
`sync-course` starts with `tum-mcp study status PROJECT`, a read-only local check:
|
|
101
131
|
|
|
102
132
|
| Mode | Action |
|
|
103
133
|
| --- | --- |
|
|
@@ -112,7 +142,7 @@ The underlying `study init` and `study sync` commands remain separate.
|
|
|
112
142
|
|
|
113
143
|
## Keep it current
|
|
114
144
|
|
|
115
|
-
Ask `sync-
|
|
145
|
+
Ask `sync-course` to compare the project with connected upstream sources. It
|
|
116
146
|
reuses the saved course, semester, source IDs and reliable revisions. It retrieves
|
|
117
147
|
changed material and updates course knowledge. Incomplete listings never imply withdrawal. Withdrawn sources
|
|
118
148
|
keep their local originals; edited or deleted managed files are reported for review.
|
|
@@ -127,10 +157,9 @@ restores files when possible and reports any remaining conflict.
|
|
|
127
157
|
|
|
128
158
|
## Prepare the website
|
|
129
159
|
|
|
130
|
-
Ask `prepare-study` to create or extend `
|
|
160
|
+
Ask `prepare-study` to create or extend the Study workspace in `app/`. Units follow the course's
|
|
131
161
|
lecture/week sequence when useful, or use consistent topics. For a single course, use a flat list or one category level followed by topics,
|
|
132
|
-
including several topics in one week.
|
|
133
|
-
legacy hierarchies. Every unit has:
|
|
162
|
+
including several topics in one week. Every unit has:
|
|
134
163
|
|
|
135
164
|
- A concise explanation with source links, assumptions and worked examples.
|
|
136
165
|
- Editable LaTeX formulas and inline variables, diagrams, code or comparison tables where they explain the concept.
|
|
@@ -173,7 +202,7 @@ glossaries, cards, questions and feedback. Code and dollar signs stay literal.
|
|
|
173
202
|
|
|
174
203
|
Select text in Content, Flashcards or Practice, then click **Comment** to record what is unclear.
|
|
175
204
|
You can also use Ctrl/Command+Alt+M after selecting text. The local preview saves
|
|
176
|
-
notes in `.
|
|
205
|
+
notes in `.tum-mcp/comments.json`, separately from learning progress. Click a
|
|
177
206
|
numbered passage marker or highlighted text to open its notes beside the quote.
|
|
178
207
|
Markers sit beside section headings or the current card/question position.
|
|
179
208
|
Notes can be edited, resolved or reopened; changed passages retain their original quotes.
|
|
@@ -186,7 +215,7 @@ automatically while the preview is open. Your draft is kept if a note changes
|
|
|
186
215
|
elsewhere; choose Use latest or Keep mine before saving. Reload after the agent
|
|
187
216
|
rebuilds the teaching content.
|
|
188
217
|
|
|
189
|
-
Content lives in `
|
|
218
|
+
Content lives in `app/content.json`; shared renderer modules and CSS keep the
|
|
190
219
|
site extensible. Source hashes identify affected units. A stale source stops a
|
|
191
220
|
build until the explanation is reviewed. Unchanged units retain their revision;
|
|
192
221
|
revised questions receive separate progress. Customized templates are preserved
|
|
@@ -210,11 +239,44 @@ or an unattended preview, use `tum-mcp study serve ./pse-ws26 --port 8765`.
|
|
|
210
239
|
If port 8765 is busy, stop the other preview or choose `tum-mcp study --port 8766`.
|
|
211
240
|
Keep the same address and port between sessions so browser progress remains available.
|
|
212
241
|
|
|
213
|
-
The preview binds `127.0.0.1`, serves `study/` and saves comments through a bounded
|
|
242
|
+
The preview binds `127.0.0.1`, serves `app/` (or the existing legacy `study/`) and saves comments through a bounded
|
|
214
243
|
same-origin endpoint. It makes no campus requests.
|
|
215
244
|
No course credentials are copied into the website. Browser storage holds progress
|
|
216
245
|
locally. Nothing is published by these commands.
|
|
217
246
|
|
|
247
|
+
## Prepare weekly exercises
|
|
248
|
+
|
|
249
|
+
Ask `prepare-exercises` to prepare released weekly sheets in the same app. Study
|
|
250
|
+
and Exercises can be prepared in either order. When both exist, a selector at the bottom of the sidebar
|
|
251
|
+
switches workspaces and remembers the current place. On phones it lives inside the
|
|
252
|
+
open course outline; there is no second switch in the reading area. Exercises are
|
|
253
|
+
listed directly under sheets, optionally grouped by category.
|
|
254
|
+
|
|
255
|
+
The original statement and subparts come first. Students can solve on paper, mark
|
|
256
|
+
an exercise Reviewed, reveal a worked solution directly, or open **Guidance**.
|
|
257
|
+
Prepared guidance offers one conceptual step, requested hints and specific repair
|
|
258
|
+
feedback. Numeric checks state units/tolerance; choice checks have four options.
|
|
259
|
+
Fillable tables check numeric cells and explicit text variants individually. Graph
|
|
260
|
+
questions support node/edge selections and ordered paths with a visible diagram.
|
|
261
|
+
Line graphs allow sample-point placement, coordinate edits and keyboard adjustment.
|
|
262
|
+
Long math and programming work use saved writing areas and prepared rubrics; code
|
|
263
|
+
is never executed, and symbolic work, proofs and programs are not automatically
|
|
264
|
+
graded. Arbitrary graph drawing can use paper and rubric comparison. Typing, hints and step-by-step guidance are optional. Reviewed records an
|
|
265
|
+
action, not mastery or an assessment result.
|
|
266
|
+
|
|
267
|
+
Drafts and assistance stay in this browser. Editing a checked answer clears its
|
|
268
|
+
verdict. Semantic changes start fresh progress for only that exercise, while retaining older
|
|
269
|
+
browser records; source-hash review alone preserves progress.
|
|
270
|
+
Reset on each workspace home affects only that workspace. Exercise passage comments
|
|
271
|
+
use the existing private comment service; hosted exports do not expose it.
|
|
272
|
+
|
|
273
|
+
Existing `study/` projects continue to work. New projects use `app/`. To upgrade a
|
|
274
|
+
verified legacy layout explicitly, run `tum-mcp study build PROJECT --upgrade-layout`.
|
|
275
|
+
It keeps the original tree at `.tum-mcp/layout-backup/`, preserves the course identity,
|
|
276
|
+
learning revisions, comments, settings and personal files, and stops on customized
|
|
277
|
+
generated files, an occupied backup or two layouts. Repeating a completed upgrade
|
|
278
|
+
is a no-op. Do not create `app/` alongside an existing `study/` by hand.
|
|
279
|
+
|
|
218
280
|
## Create and maintain audio notes
|
|
219
281
|
|
|
220
282
|
Use `prepare-study` to author the interactive course, then ask `audio-notes` to
|
|
@@ -225,7 +287,7 @@ Create audio notes from this prepared study website, one file per category.
|
|
|
225
287
|
Keep course outputs under audio/; prefer free ElevenLabs with local Kokoro fallback.
|
|
226
288
|
```
|
|
227
289
|
|
|
228
|
-
Audio Notes reads `
|
|
290
|
+
Audio Notes reads `app/content.json`, retaining the course's language, examples,
|
|
229
291
|
assumptions and limitations. It turns tables, formulas, code and diagram sequences
|
|
230
292
|
into explanations that work without a screen. It does not independently research
|
|
231
293
|
the course or create new subject matter. An audio-only request reuses the prepared
|
|
@@ -287,29 +349,32 @@ material with the previous verified coverage. This is an agent skill, not a new
|
|
|
287
349
|
|
|
288
350
|
## Packaged app template
|
|
289
351
|
|
|
290
|
-
The
|
|
352
|
+
The shared web-app template is packaged in `bundled/course_app/site/`, separately from skill instructions.
|
|
291
353
|
It includes the shell, navigation, flip cards, practice, diagrams and styling.
|
|
292
|
-
Agents author course content in `
|
|
354
|
+
Agents author course content in `app/content.json`; `study build` installs the
|
|
293
355
|
shared template, preserves customized files and checks sources. This keeps new
|
|
294
356
|
course sites consistent without rebuilding the interface. `tum-mcp study template`
|
|
295
357
|
shows the bundled files and their combined revision for reproducible development.
|
|
296
358
|
|
|
297
|
-
## Try the
|
|
359
|
+
## Try the component template
|
|
298
360
|
|
|
299
361
|
After installing a locally built development artifact:
|
|
300
362
|
|
|
301
363
|
```sh
|
|
302
|
-
tum-mcp study demo ./
|
|
303
|
-
tum-mcp study serve ./
|
|
364
|
+
tum-mcp study demo ./component-preview
|
|
365
|
+
tum-mcp study serve ./component-preview
|
|
304
366
|
```
|
|
305
367
|
|
|
306
|
-
This creates
|
|
307
|
-
|
|
368
|
+
This creates one small Study unit and one exercise covering prose, code, tables,
|
|
369
|
+
formulas, graph/process diagrams, cards and response controls. It is a reusable
|
|
370
|
+
component template, not necessarily a good teaching or question-authoring example.
|
|
371
|
+
Actual course authoring follows reviewed sources and the preparation skills. Rich
|
|
372
|
+
learning pilots stay in private test fixtures.
|
|
308
373
|
It uses no campus account. An existing edited demo is preserved.
|
|
309
374
|
|
|
310
375
|
## Local helper inputs
|
|
311
376
|
|
|
312
|
-
Agents use `tum-mcp study schema snapshot` and `
|
|
377
|
+
Agents use `tum-mcp study schema snapshot`, `schema content` and `schema exercises` for
|
|
313
378
|
validated input schemas. After authenticated tools verify availability, the agent
|
|
314
379
|
stages a source snapshot with exact course identity, coverage and resource revisions.
|
|
315
380
|
The helper does not authenticate the snapshot or grant any campus access itself.
|
package/docs/tum-mcp.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# TUM MCP guide
|
|
2
2
|
|
|
3
3
|
Package: `@jamestesting888/tum-mcp`, CLI: `tum-mcp`, backend: Python 3.13.
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
The package combines read-only course retrieval, managed client installation and
|
|
5
|
+
six local course workflows.
|
|
6
6
|
|
|
7
7
|
## Current capabilities
|
|
8
8
|
|
|
9
9
|
The sixteen `moodle_*` tools provide materials, announcements, forums and
|
|
10
|
-
|
|
10
|
+
own grades, feedback and submission reads. Artemis adds
|
|
11
11
|
available-course metadata, lectures and learning units, student PDF attachments,
|
|
12
12
|
released non-quiz statements and permitted exact-commit feedback. Zulip provides
|
|
13
|
-
|
|
13
|
+
bounded channel/topic search and cited discussion reads.
|
|
14
14
|
|
|
15
15
|
Website access is read-only. There are no public exercise workspace, test-run,
|
|
16
16
|
submission, start, deployment, rebuild or push workflows.
|
|
@@ -28,7 +28,7 @@ Lecture routes were checked against the
|
|
|
28
28
|
[Artemis source](https://github.com/ls1intum/Artemis/blob/88824427f7ea38512606824c58b8858e539eb2eb/src/main/java/de/tum/cit/aet/artemis/lecture/web/LectureResource.java)
|
|
29
29
|
and the
|
|
30
30
|
[student file boundary](https://github.com/ls1intum/Artemis/blob/88824427f7ea38512606824c58b8858e539eb2eb/src/main/java/de/tum/cit/aet/artemis/core/web/FileResource.java).
|
|
31
|
-
Synthetic fixtures are the default. Live checks remain private and
|
|
31
|
+
Synthetic fixtures are the default. Live checks remain private and relevant to the requested task.
|
|
32
32
|
|
|
33
33
|
## Build and test the local package
|
|
34
34
|
|
|
@@ -91,15 +91,17 @@ Python 3.13+, uv, and Git: run `uv sync --locked`, then
|
|
|
91
91
|
`uv run tum-mcp setup --client generic` from the checkout. An installed Chromium browser is needed for
|
|
92
92
|
browser onboarding. See [setup](setup.md) for browser choices and WSL.
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
<a id="connections-and-scopes"></a>
|
|
95
|
+
|
|
96
|
+
## Connections and read access
|
|
95
97
|
|
|
96
98
|
```sh
|
|
97
99
|
tum-mcp connect
|
|
98
100
|
tum-mcp status
|
|
99
101
|
tum-mcp discover artemis ACCOUNT_ID
|
|
100
102
|
tum-mcp discover zulip ACCOUNT_ID
|
|
101
|
-
tum-mcp
|
|
102
|
-
tum-mcp
|
|
103
|
+
tum-mcp --help
|
|
104
|
+
tum-mcp study build --help
|
|
103
105
|
```
|
|
104
106
|
|
|
105
107
|
`connect` takes no arguments or connection options. Move with up/down, toggle
|
|
@@ -119,10 +121,12 @@ when the temporary browser closes. Existing browser profiles are never imported.
|
|
|
119
121
|
Zulip uses its read-only `/json/` routes with the browser session; no API key is
|
|
120
122
|
required. Reconnect through the same selector when a session expires.
|
|
121
123
|
See [Zulip's dispatcher](https://github.com/zulip/zulip/blob/12.0/zerver/lib/rest.py).
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
Read access follows the authenticated account's server permissions. No local course,
|
|
125
|
+
channel, private-channel or personal-feedback grant is required. Older saved grant
|
|
126
|
+
fields remain readable for compatibility and do not restrict read access. Agents
|
|
127
|
+
prefer relevant current-semester courses and channels, inspect metadata first, and
|
|
128
|
+
page through only the content needed for the request. Explicit older-course requests
|
|
129
|
+
remain supported. Server-denied content, staff-only material and remote writes stay unavailable.
|
|
126
130
|
|
|
127
131
|
Settings live outside the installed package in `TUMMCP/config/preferences.json`.
|
|
128
132
|
Moodle sessions live under `TUMMoodle/local-session/`; Artemis and Zulip credentials
|
|
@@ -156,16 +160,17 @@ from activation; the host must confirm a running MCP connection after setup.
|
|
|
156
160
|
Use `doctor --live` for bounded authenticated identity checks on saved local
|
|
157
161
|
sessions and optional GitHub CLI authentication. Campus checks read Moodle's
|
|
158
162
|
course overview and Artemis/Zulip identity only;
|
|
159
|
-
it does not
|
|
163
|
+
it does not change server permissions. `doctor --json` emits schema-versioned JSON
|
|
160
164
|
without terminal styling; combine both flags for live automation. Paths appear
|
|
161
165
|
in JSON for troubleshooting. Default diagnostics do not create state folders.
|
|
162
166
|
|
|
163
167
|
## Study workflows
|
|
164
168
|
|
|
165
|
-
`read-content` retrieves course information across the three websites. `sync-
|
|
169
|
+
`read-content` retrieves course information across the three websites. `sync-course`
|
|
166
170
|
uses read-only local status to initialize an explicitly chosen available course or
|
|
167
171
|
reconcile an existing project. Incomplete state is preserved for recovery.
|
|
168
|
-
`prepare-study`
|
|
172
|
+
`prepare-study` authors lessons; `prepare-exercises` authors guided released sheets
|
|
173
|
+
in the same local app. See the
|
|
169
174
|
[study guide](study.md) for examples, state structure and helper commands.
|
|
170
175
|
|
|
171
176
|
One project holds one course. Source revisions, coverage and course knowledge
|
|
@@ -182,13 +187,13 @@ writing files with activation.
|
|
|
182
187
|
|
|
183
188
|
The Codex adapter uses a contained Node launcher to pin the managed Python in
|
|
184
189
|
isolated mode; portable stdio manifests require a bare or contained executable.
|
|
185
|
-
The shipped pack contains
|
|
186
|
-
`prepare-study`, `audio-notes` and `publish-
|
|
190
|
+
The shipped pack contains six skills: `read-content`, `sync-course`,
|
|
191
|
+
`prepare-study`, `prepare-exercises`, `audio-notes` and `publish-course`. Website-specific retrieval
|
|
187
192
|
guidance is loaded from references within read-content. Teaching, schema and design contracts live
|
|
188
193
|
with prepare-study; the renderer and synthetic example ship as reusable assets.
|
|
189
194
|
Audio Notes converts prepared content into category tracks and maintains coverage,
|
|
190
195
|
scripts, voice settings, candidates and archives under the course's `audio/` root.
|
|
191
|
-
Publish
|
|
196
|
+
Publish Course uses host GitHub CLI authentication to create a private repository
|
|
192
197
|
and a public Pages website after explicit publication consent. It chooses a course
|
|
193
198
|
and semester name, updates the same site after successful study builds, and shows
|
|
194
199
|
the hosted URL alongside the local launcher URL. No tokens or original course
|
|
@@ -203,7 +208,7 @@ routing quality is a separate evaluation from structural and discovery checks.
|
|
|
203
208
|
Claude's invocation metadata follows each workflow's selected policy; automatic
|
|
204
209
|
selection is enabled by default and never grants permission for a mutation.
|
|
205
210
|
|
|
206
|
-
`setup --client cursor` writes `~/.cursor/mcp.json` and installs all
|
|
211
|
+
`setup --client cursor` writes `~/.cursor/mcp.json` and installs all six skills
|
|
207
212
|
under `~/.cursor/skills/`.
|
|
208
213
|
`setup --client antigravity` installs the same skills under `~/.gemini/config/skills/`
|
|
209
214
|
and writes `~/.gemini/config/mcp_config.json`; an existing
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wheel": "tum_mcp-0.
|
|
3
|
-
"wheelSha256": "
|
|
2
|
+
"wheel": "tum_mcp-0.8.0-py3-none-any.whl",
|
|
3
|
+
"wheelSha256": "30615a22c87ec1bf74ca02b6adb1c7345f066a5d3c0047beabe60e1472fa7fdd",
|
|
4
4
|
"requirementsSha256": "25f9efa7a4ffb0b97abcfeb9d4706d04808273ab1b35abcfaa1ef0b66e87591b"
|
|
5
5
|
}
|
|
Binary file
|
package/npm/tum-mcp.mjs
CHANGED
|
@@ -9,7 +9,25 @@ let args = process.argv.slice(2);
|
|
|
9
9
|
const version = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')).version;
|
|
10
10
|
try {
|
|
11
11
|
if (args.length === 0 || (args.length === 1 && ['--help', '-h'].includes(args[0]))) {
|
|
12
|
-
console.log(`TUM MCP ${version}
|
|
12
|
+
console.log(`TUM MCP ${version}
|
|
13
|
+
Usage: tum-mcp COMMAND [OPTIONS]
|
|
14
|
+
|
|
15
|
+
setup Configure your coding client and managed runtime
|
|
16
|
+
connect Sign in to selected campus services
|
|
17
|
+
status Show saved connections
|
|
18
|
+
discover List accessible courses or channels
|
|
19
|
+
doctor Check installation and authentication
|
|
20
|
+
update Update the package and configured clients
|
|
21
|
+
uninstall Remove managed setup and the npm package
|
|
22
|
+
logout Remove one saved connection
|
|
23
|
+
serve Run the MCP server over stdio
|
|
24
|
+
version Show the installed version
|
|
25
|
+
skills Manage local workflow skills
|
|
26
|
+
study Prepare, preview and publish a course app
|
|
27
|
+
|
|
28
|
+
Use --help for options, for example: tum-mcp study build --help
|
|
29
|
+
Run setup to provision the managed backend, then connect to sign in.
|
|
30
|
+
Reads use your campus account permissions; no local scope selection is needed.`);
|
|
13
31
|
} else if (['--version', 'version'].includes(args[0])) {
|
|
14
32
|
console.log(version);
|
|
15
33
|
} else if (['setup', 'update', 'uninstall'].includes(args[0]) && args.some(arg => ['--help', '-h'].includes(arg))) {
|