@jamestesting888/tum-mcp 0.7.0 → 0.8.1

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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changes
2
2
 
3
+ ## 0.8.1 — 2026-10-26
4
+
5
+ - Give every doctor/update status a dot: yellow for unverified or attention-needed
6
+ states, green for ready/updated, neutral for information/disabled, and red only
7
+ for failures. Keep status labels readable with terminal colors disabled.
8
+
9
+ ## 0.8.0 — 2026-10-26
10
+
11
+ - Read Artemis courses, lectures, exercises, own feedback and accessible Zulip
12
+ channels after sign-in without separate local scope grants. Preserve server
13
+ permissions, bounded queries and disabled remote writes.
14
+ - Keep standard `--help` for command discovery and guide agents toward relevant
15
+ current-semester metadata before retrieving course content.
16
+
3
17
  ## 0.7.0 — 2026-10-26
4
18
 
5
19
  - Share one course app between Study and Exercises, with a single workspace
package/README.md CHANGED
@@ -30,11 +30,13 @@ 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
- Enable the [course and channel scopes](docs/tum-mcp.md#connections-and-scopes) you want to use.
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
42
  Setup configures MCP and installs all six skills; follow any activation or
@@ -132,7 +134,7 @@ See [publishing details](docs/study.md#publish-a-study-website).
132
134
  Sign-in and MFA happen in a temporary browser window. Only service-owned session
133
135
  cookies are retained; identity-provider cookies are discarded when it closes.
134
136
  Sessions stay on your computer in encrypted files with owner-restricted keys.
135
- Configured local clients share those connections and selected scopes.
137
+ Configured local clients share those connections and saved preferences.
136
138
 
137
139
  ## Your study project
138
140
 
@@ -173,7 +175,7 @@ tum-mcp update
173
175
  same npm location and refreshes configured clients. It never downgrades a newer
174
176
  installation. Use `tum-mcp update --local` to refresh the installed version without checking npm.
175
177
  From 0.6.0 or earlier, upgrade the npm package once to obtain this command.
176
- Sessions, scopes and downloads carry forward. User-edited entries and skills are
178
+ Sessions, preferences and downloads carry forward. User-edited entries and skills are
177
179
  preserved and reported for review. Reload the client; refresh its cached plugin
178
180
  if needed. Study sites are updated separately through the study workflows.
179
181
 
@@ -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.6.1, client refresh, customized-file conflicts,
59
+ Upgrade checks cover public 0.8.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,
package/docs/setup.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Setup and troubleshooting
2
2
 
3
- [README](../README.md) · [Tools and scopes](tum-mcp.md) · [Development](development.md)
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,6 +16,7 @@ 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.
@@ -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
- New Artemis/Zulip accounts start without content scopes. Your agent can use
50
- status/discover to show account IDs and available course/channel metadata, then
51
- help you choose [explicit scopes](tum-mcp.md#connections-and-scopes).
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 course/channel scopes.
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-scopes)
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 scopes or register additional clients.
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/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
- Development version **0.6.1 (unreleased)** adds npm package management to the
5
- read-only course retrieval and six local course workflows.
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
- explicitly scoped private-record reads. Artemis adds
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
- scoped channel/topic search and cited discussion reads.
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 use explicit scopes.
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
- ## Connections and scopes
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 scope artemis ACCOUNT_ID --course COURSE_ID --sensitive
102
- tum-mcp scope zulip ACCOUNT_ID --channel CHANNEL_ID
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
- Existing scopes survive reconnection; new identities start with empty scopes.
123
- Private Zulip channels require `--private-channel ID` as well as `--channel ID`.
124
- `--sensitive` enables own Artemis participation/feedback reads. It grants no
125
- website mutation or local execution permission.
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,7 +160,7 @@ 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 broaden content scopes. `doctor --json` emits schema-versioned JSON
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
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "wheel": "tum_mcp-0.7.0-py3-none-any.whl",
3
- "wheelSha256": "dabe306ea1695fa03fa119b2673cc93c0ee705b34ebabc6674958fe77f5757a6",
2
+ "wheel": "tum_mcp-0.8.1-py3-none-any.whl",
3
+ "wheelSha256": "eb55c85f6b1edfb538ff19ddad3b020625dbaf91df7790f5efd4294f337363d8",
4
4
  "requirementsSha256": "25f9efa7a4ffb0b97abcfeb9d4706d04808273ab1b35abcfaa1ef0b66e87591b"
5
5
  }
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}\nCommands: setup [--client codex|claude|cursor|antigravity|generic], connect, scope, discover, status, doctor [--json] [--live], serve, skills, study, logout, uninstall, update\nRun connect without arguments to select services and an installed Chromium browser. Run setup explicitly to provision the managed Python backend.`);
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))) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jamestesting888/tum-mcp",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "Read-only TUM Moodle, Artemis and Zulip integration with source-backed study workflows",
5
5
  "license": "MIT",
6
6
  "type": "module",