hisinone-mcp
# hisinone-mcp
MCP-Server für HISinOne-Campusportale: öffentlich Veranstaltungen suchen und
Details lesen, nach dem Login den persönlichen Stundenplan und die
Leistungsübersicht abrufen. Ausschließlich lesend.
Der Server ist eine dünne Hülle um den Kern der
[`hisinone-cli`](https://github.com/smlfg/hisinone-cli): Er importiert
`hisinone.client`, `hisinone.config` und `hisinone.parse` und ruft dieselben
Funktionen wie `hisinone suche`, `hisinone veranstaltung`,
`hisinone stundenplan` und `hisinone noten` auf.
## Schnellstart
```bash
uvx hisinone-mcp
```
Für Stundenplan und Noten vorher einmal im Terminal anmelden; die Sitzung liegt
unter `~/.config/hisinone-cli/` (0600):
```bash
uvx --from hisinone-cli hisinone login
```
Danach startet der MCP-Client den Server selbst. Suche und
Veranstaltungsdetails funktionieren ohne Login.
## In Claude Desktop / Cursor nutzen
```json
{"mcpServers":{"hisinone":{"command":"uvx","args":["hisinone-mcp"],"env":{"HISINONE_BASE_URL":"https://campus.uni-freiburg.de/qisserver/pages/cs/sys/portal/hisinoneStartPage.faces"}}}}
```
`HISINONE_BASE_URL` ist optional und überschreibt das Standardportal. Für eine
andere Hochschule die Basis-URL der dortigen HISinOne-Instanz eintragen.
## Claude Code
```bash
claude mcp add hisinone -e HISINONE_BASE_URL=https://campus.uni-freiburg.de/qisserver/pages/cs/sys/portal/hisinoneStartPage.faces -- uvx hisinone-mcp
```
## Tools
| Tool | Beschreibung | Login |
|---|---|---|
| `search_courses` | Veranstaltungen nach Titel, Nummer oder Lehrperson suchen | nein |
| `get_course` | Veranstaltung per Titel oder numerischer Unit-ID anzeigen | nein |
| `get_timetable` | Persönlichen Stundenplan für heute oder die Woche lesen | ja |
| `get_grades` | Persönliche Leistungsübersicht lesen | ja |
Alle Tools sind lesend (`readOnlyHint`) und liefern strukturierte Daten plus
lesbaren Text. Es gibt keine schreibenden Aktionen wie Belegung oder
Prüfungsanmeldung. Fehler kommen als lesbare Meldung mit nächstem Schritt
zurück, nie als Traceback und nie mit Noten oder Personendaten im Log.
## Anmeldung und Konfiguration
Der MCP-Server fragt nie nach Passwörtern und nimmt keine Zugangsdaten als
Tool-Argument an. Er nutzt die Sitzung, die `hisinone login` anlegt. Alternativ
können `HISINONE_USER` und `HISINONE_PASSWORD` wie bei der CLI in der Umgebung
stehen; ohne Sitzung und ohne diese Variablen nennen `get_timetable` und
`get_grades` den nächsten Schritt `hisinone login`.
| Variable | Default | Bedeutung |
|---|---|---|
| `HISINONE_BASE_URL` | Universität Freiburg | Portal-Basis-URL (andere Hochschule, Fake-Server) |
| `HISINONE_USER` | – | Benutzername für die Anmeldung ohne gespeicherte Sitzung |
| `HISINONE_PASSWORD` | – | Passwort nur für Agenten/Tests, wird nie gespeichert oder geloggt |
## Datenquelle
Die Daten stammen aus dem jeweiligen HISinOne-Campusportal über dessen
Weboberfläche. Das Projekt ist inoffiziell, nicht mit den Hochschulen
verbunden und greift ausschließlich lesend zu. Portaländerungen können die
Auswertung brechen.
## Lizenz
MIT, Copyright 2026 smlfg. Siehe `LICENSE`.
<!-- mcp-name: io.github.smlfg/hisinone-mcp -->
TDQS
Scored across 4 tools
Each tool targets a distinct task: course discovery (search_courses), course detail (get_course), personal timetable (get_timetable), and personal grades (get_grades). The split between search and detail is natural rather than ambiguous, and the personal/read-only tools are clearly separated from the public catalog tools.
All four tools follow a consistent snake_case verb_noun pattern: search_courses, get_course, get_timetable, get_grades. The only variation is plural vs singular object naming, which matches the semantics and does not impair predictability.
Four tools is well-scoped for a focused read-only HISinOne client covering course search, course detail, timetable, and grades. Each tool has a clear reason to exist, and there is no redundant or filler surface.
The surface covers the core read-only student workflows implied by the descriptions: discovering courses, inspecting details, checking the timetable, and reading grades. Minor gaps might include explicit semester or exam-date queries, but the main lifecycle is well covered and login is handled outside the MCP tool set.