bit101-mcp
BIT101 MCP
Ein lokaler, schreibgeschützter Model Context Protocol (MCP)-Dienst für Studierende der Beijing Institute of Technology. Er wandelt BIT101-Community-Inhalte, Kursbewertungen, persönliche Stundenpläne, Noten und Lexue-Kalender in für Agenten leicht verständliche strukturierte Daten um, sodass du direkt in natürlicher Sprache Fragen stellen kannst.
[!IMPORTANT] Dieses Projekt ist ein inoffizielles Community-Projekt und steht in keiner Verbindung zur Beijing Institute of Technology oder zum offiziellen BIT101. Windows wurde mit den wichtigsten Abläufen auf echter Hardware getestet, Fedora 43 + niri wurde als lauffähig verifiziert; das Projekt befindet sich noch in der MVP-Phase. Bitte lies vor der Verwendung Authentifizierung, Sicherheit und Datenschutz.
Funktionen
Zusammenfassen der heutigen BIT101-Beiträge oder Suche nach historischen Diskussionen per Stichwort
Abfragen von Kursen, Dozenten und Bewertungen aus vergangenen Jahren
Abrufen des Stundenplans für heute, diese Woche, nächste Woche oder ein bestimmtes Semester
Abfragen von Noten, Leistungspunkten, Klassen-Durchschnitt und Bestnoten (sofern vom Upstream bereitgestellt)
Abfragen von Lexue-Kalenderereignissen für einen zukünftigen Zeitraum
Kombinieren von Daten aus verschiedenen Quellen zur Beantwortung von Fragen, z. B. „Wie bewerten andere die Dozenten meiner Kurse im nächsten Semester?“
Alle Tools sind schreibgeschützt. Das Projekt kann keine Beiträge verfassen, liken, kommentieren, Aufgaben abgeben, Noten ändern oder Schuldaten modifizieren.
Related MCP server: MCP-Server-CollageAI
Live-Demo
Die folgenden Screenshots stammen aus echten Aufrufen über die OpenCode-CLI auf Windows. Die konkreten Antworten werden vom verwendeten Modell auf Basis der von MCP zurückgegebenen Daten generiert, geben nicht die Meinung der Projektautoren wieder und können sich mit Modell- und Datenaktualisierungen ändern.
Zusammenfassung der heutigen Beiträge
Der Agent ruft list_today_posts auf, um die Beiträge des Tages zu erhalten, und erstellt dann eine kurze Zusammenfassung anhand von Titel, Inhalt und Interaktionen.

Dozenten- und Kursbewertungen
Der Agent sucht zunächst die zugehörigen Kurse des Dozenten und ruft dann get_course_reviews auf, um Kursmetadaten, Bewertungen, Kommentare und historische Informationen zu aggregieren.

Diskussionen zu Studienrichtungen
Wenn der Kurskatalog keinen exakten Treffer enthält, kann der Agent weiter in BIT101-Beiträgen suchen und relevante Diskussionen lesen – ein Beispiel für die Verkettung mehrerer MCP-Tools.

Lexue-Kalender
Der Agent kann Lexue-Ereignisse innerhalb von 7 bis 90 Tagen abfragen. Ein gültiger Kalender ohne anstehende Aufgaben liefert normalerweise eine leere Liste, statt „keine Aufgaben“ fälschlich als Schnittstellenfehler zu werten.

Vorbereitung vor der Verwendung
Derzeit empfohlene Umgebung:
Windows 10/11 oder Linux mit Desktop-Browser und verfügbarem System-Keyring (Fedora 43 + niri getestet)
Python 3.11 oder höher
Ein Client mit lokalem stdio-MCP-Support, z. B. Codex, OpenCode, Cursor oder Claude Code
BIT101-Konto
Für Stundenplan- und Notenabfragen zusätzlich ein Konto der einheitlichen Authentifizierung der Beijing Institute of Technology; bei manchen Anmeldungen kann eine SMS-Verifizierung erforderlich sein
Für Lexue-Abfragen muss einmalig eine private Kalender-Abonnement-URL aus Lexue exportiert werden
Installation
Deinem Agenten mitteilen (empfohlen)
Wenn dein Agent Terminalbefehle ausführen und seine eigene MCP-Konfiguration ändern kann, kannst du ihm direkt den folgenden Text senden:
请帮我安装并配置 BIT101 MCP:
https://github.com/tiny-paris/BIT101-mcp
要求:
1. 先阅读仓库 README,尤其是“认证、安全与隐私”部分,并告诉我它会访问哪些服务。
2. 检查本机是否安装 Python 3.11+、Git 和 uv;缺少时说明后再安装。
3. 优先使用以下命令安装为用户级工具:
uv tool install "git+https://github.com/tiny-paris/BIT101-mcp.git"
4. 识别我当前使用的 MCP 客户端,将 bit101-mcp 配置为用户级/全局 stdio MCP,
名称使用 bit101,单次工具执行超时至少设置为 360 秒。
5. 如果找不到命令,运行 uv tool dir --bin,并在 MCP 配置中使用
bit101-mcp(Windows 为 bit101-mcp.exe)的绝对路径。
6. 重启或重新加载 MCP,验证服务器已连接并能列出工具。
7. 不要在聊天、命令行参数、配置文件或环境变量中向我索要或写入账号、密码、
短信验证码、Cookie、token 或乐学订阅 URL。需要认证时,只让我在 MCP 自动打开的
127.0.0.1 临时页面中操作。
8. 不要修改默认上游地址。完成后告诉我修改了哪些配置文件以及验证结果。Nach Abschluss der Installation durch den Agenten genügt in einem neuen Gespräch die Frage „Fasse die heutigen BIT101-Beiträge zusammen“, um die erste bedarfsgesteuerte Authentifizierung auszulösen.
Installation aus dem Quellcode
Sobald das Repository öffentlich ist, kann Folgendes ausgeführt werden:
git clone https://github.com/tiny-paris/BIT101-mcp.git
cd BIT101-mcp
uv sync --all-groups
uv tool install .uv tool install . installiert bit101-mcp als benutzerweiten Befehl. Mit dem folgenden Befehl kannst du das ausführbare Verzeichnis von uv anzeigen:
uv tool dir --binWenn der MCP-Client bit101-mcp nicht findet, starte den Client neu oder verwende in der Konfiguration den absoluten Pfad zu bit101-mcp.exe in diesem Verzeichnis.
Nur im Quellcode-Verzeichnis ausführen
Für Entwicklung oder Tests kann der Befehl auch ohne Installation verwendet werden:
uv sync --all-groups
uv run bit101-mcpEin stdio-MCP wartet nach dem normalen Start still auf Protokollnachrichten; ein „Einfrieren“ ist normal. Behandle es nicht wie ein normales interaktives Kommando und gib keine Kontodaten oder Passwörter in sein Terminal ein.
[!NOTE] Ein einfaches
uvx bit101-mcpwird erst unterstützt, wenn das Projekt auf PyPI veröffentlicht ist. Die aktuelle README setzt nicht voraus, dass ein PyPI-Paket bereits existiert.
Hinweise zu Abhängigkeiten
Das Projekt deklariert 7 direkte Laufzeitabhängigkeiten. Sie sind nicht alle „durch das MCP-Protokoll erzwungen“, sondern jeweils für die aktuell vollständigen Funktionen erforderlich:
Abhängigkeit | Verwendung im Projekt | Derzeit entfernbar? |
| MCP-stdio-Server, Tool-Registrierung, Kontext und Protokolltypen | Nein; dies ist die Kernabhängigkeit |
| Asynchroner/synchroner HTTPS-Client für BIT101, BIT-Login und Lexue-Kalender | Nein; alle Daten und die Authentifizierung benötigen Netzwerk |
| Speichert Sitzungen und Lexue-Abonnement-URLs im Betriebssystem-Schlüsselspeicher | Nein; ohne dies können Sitzungen nicht sicher prozessübergreifend wiederverwendet werden |
| Validierung und Parsing von aus Lexue exportierten ICS/iCalendar-Dateien | Nein; die Lexue-Funktion und der Import beim Start verwenden es |
| Expandiert Wiederholungsregeln (RRULE) im Lexue-Kalender | Nein; für wiederkehrende Ereignisse erforderlich |
| MCP-Tool-Parameterbereiche und JSON-Schema, z. B. Beitragsanzahl, Wochenversatz, Abfragetage | Nein; direkt im Quellcode verwendet, und das MCP-SDK basiert ebenfalls darauf |
| Stellt auf Windows die Zeitzonendatenbank | Nicht empfohlen zu entfernen; sonst können einige Windows/Python-Umgebungen „heute“ und Unterrichtswochen nicht korrekt berechnen |
Daher sind für die aktuelle Einzelpaketversion alle 7 Laufzeitabhängigkeiten; funktional gesehen dienen icalendar und python-dateutil jedoch nur Lexue. Falls sie in Zukunft als optionale Funktionen ausgegliedert werden, könnten sie zu zusätzlichen Abhängigkeiten werden. Eine Aufteilung jetzt würde die Installations- und Fehlerkomplexität erhöhen, während der eingesparte Umfang sehr begrenzt ist.
In uv.lock sind außerdem indirekte Abhängigkeiten wie anyio, httpcore, certifi zu sehen; sie werden automatisch von den oben genannten Bibliotheken mitgebracht, sind keine vom Projekt direkt aufgerufenen Top-Level-Komponenten und sollten nicht manuell installiert oder entfernt werden.
Die folgenden Abhängigkeiten dienen nur der Entwicklung und Veröffentlichung und werden nicht als normale Laufzeitabhängigkeiten installiert:
Abhängigkeit | Verwendung |
| Automatisierte Tests |
| Code- und Formatprüfung |
| Erstellung von Quell- und Wheel-Paketen |
MCP-Client konfigurieren
Die erste Schulauthentifizierung kann bis zu einigen Minuten dauern. Daher wird empfohlen, das Timeout für einzelne Tool-Aufrufe auf 360 Sekunden zu setzen. Nach der Konfiguration muss der MCP-Client neu gestartet werden, damit er einen neuen Dienstprozess startet.
Codex
Die Codex-CLI, die Codex-IDE-Erweiterung und der Codex-Host im ChatGPT-Desktop teilen sich die MCP-Konfiguration in config.toml. Offizielle Anleitung siehe Codex-MCP-Dokumentation.
Zuerst über die CLI hinzufügen:
codex mcp add bit101 -- bit101-mcp
codex mcp listDann die benutzerweite %USERPROFILE%\.codex\config.toml prüfen und das Tool-Timeout ergänzen:
[mcp_servers.bit101]
command = "bit101-mcp"
tool_timeout_sec = 360Wenn es nur in einem vertrauenswürdigen Projekt aktiviert werden soll, kann dieselbe Konfiguration in die .codex/config.toml dieses Projekts gelegt werden. Die benutzerweite Konfiguration funktioniert in beliebigen Verzeichnissen und neuen Gesprächen.
Wenn der Befehl nicht im PATH von Codex liegt, kann ein absoluter Pfad verwendet werden:
[mcp_servers.bit101]
command = 'C:\path\to\bit101-mcp.exe'
tool_timeout_sec = 360OpenCode
Dieses Projekt wurde mit der folgenden traditionellen OpenCode-Konfiguration auf Windows mit echter Hardware getestet. Eine opencode.json im Projektstammverzeichnis gilt nur für dieses Projekt; für die Verwendung in beliebigen Verzeichnissen lege sie in die benutzerweite ~/.config/opencode/opencode.json (unter Windows üblicherweise %USERPROFILE%\.config\opencode\opencode.json).
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bit101": {
"type": "local",
"command": ["bit101-mcp"],
"enabled": true,
"timeout": 360000
}
}
}Verbindung prüfen:
opencode mcp listWenn der Start nur im Quellcode-Verzeichnis möglich ist, liegt das meist daran, dass die Konfiguration einen relativen Befehl verwendet und keine globale Installation vorliegt. Installiere bit101-mcp oder ändere command auf den absoluten Pfad von .venv\Scripts\bit101-mcp.exe.
OpenCode V2 hat eine andere Konfigurationsstruktur: Dienste liegen unter mcp.servers, das Ausführungs-Timeout unter mcp.timeout.execution. Maßgeblich ist die offizielle OpenCode-MCP-Dokumentation:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"timeout": {
"execution": 360000
},
"servers": {
"bit101": {
"type": "local",
"command": ["bit101-mcp"]
}
}
}
}Cursor
Gemäß der Cursor-MCP-Dokumentation liegt die globale Konfiguration in ~/.cursor/mcp.json, die Projektkonfiguration in .cursor/mcp.json:
{
"mcpServers": {
"bit101": {
"command": "bit101-mcp",
"args": []
}
}
}Nach dem Speichern Cursor neu starten und in der Liste der verfügbaren Tools des Agenten prüfen, dass bit101 aktiviert ist.
Claude Code
Gemäß der Claude-Code-MCP-Dokumentation einen benutzerweiten stdio-Dienst hinzufügen:
claude mcp add --scope user bit101 -- bit101-mcp
claude mcp listAllgemeine stdio-Konfiguration
Andere MCP-Clients müssen lediglich einen lokalen stdio-Prozess konfigurieren:
{
"command": "bit101-mcp",
"args": []
}Schreibe keine Kontodaten, Passwörter, Cookies, Tokens oder Lexue-URLs in die MCP-Konfiguration, Umgebungsvariablen oder Tool-Parameter.
Erste Schritte
Nach der Konfiguration kannst du direkt Fragen im Agenten-Gespräch stellen; ein manueller Start eines Hintergrunddienstes ist nicht erforderlich. Zum Beispiel:
BIT101-Community und Kurse
总结一下今天 BIT101 都有哪些帖子。
查找最近关于“数据结构”的讨论。
如何评价某某老师的某门课?请区分普遍评价和少数意见。
查找“特立自动化”相关讨论,并列出信息来源。Stundenplan und Noten
我今天有什么课?
我下周有什么课?按实际日期和开始时间排序。
列出本学期完整课表。
列出我的所有成绩,包括课程、学期、学分、成绩、班级平均分和最高分。Bei Fragen zu „diese/nächste Woche“ berechnet der Server die genaue Kalenderwoche anhand des aktuellen Datums und liefert vollständige Zeiten wie starts_at, ends_at; der Agent muss Unterrichtswochen oder Zeitfenster nicht selbst erraten.
Lexue
未来 14 天有哪些乐学任务?按截止时间排序。
看看未来 30 天的乐学日历。Verfügbare Tools
Tool | Funktion | Erforderliche Authentifizierung |
| Ruft BIT101-Beiträge des aktuellen Tages in der Zeitzone Shanghai ab | BIT101 |
| Sucht BIT101-Beiträge | BIT101 |
| Liest einen bestimmten Beitrag und zugehörige Informationen | BIT101 |
| Sucht Kurse und Dozenten | BIT101 |
| Aggregiert Kurs-, Dozenten-, Bewertungs- und historische Kursinformationen | BIT101 |
| Ruft die Kurse des heutigen Tages ab | Einheitliche Schulauthentifizierung |
| Ruft den datierten Stundenplan für diese, nächste oder eine relative Woche ab | Einheitliche Schulauthentifizierung |
| Ruft den vollständigen Stundenplan des aktuellen oder eines bestimmten Semesters ab | Einheitliche Schulauthentifizierung |
| Ruft Noten und verfügbare Klassenstatistiken ab | Einheitliche Schulauthentifizierung |
| Parst Lexue-Kalenderereignisse der nächsten 1–90 Tage | Schulauthentifizierung + Lexue-Abonnement-URL |
Erfolgreiche Ergebnisse haben einheitlich folgende Form:
{
"ok": true,
"data": {}
}Fehlerergebnisse enthalten keine Upstream-Stapelverfolgungen oder Authentifizierungsinformationen:
{
"ok": false,
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"service": "bit101",
"message": "BIT101 is temporarily unavailable.",
"retryable": true
}
}Technische Grundlagen
Der Kern ist in vier Schichten gegliedert:
MCP-Tool-Schicht: Setzt nur Benutzerkonzepte wie Beiträge, Kurse, Stundenpläne, Noten und Aufgaben aus; keine Cookies, Challenge-Tokens oder interne Dienstkennungen.
Client-Schicht: Behandelt BIT101-API und Schuldatengateway getrennt; bei Anfragefehlern wird geprüft, ob die Sitzung abgelaufen ist, und genau ein wiederherstellbarer Wiederholungsversuch unternommen.
Standardisierungsschicht: Wandelt verschiedene Upstream-Formate in stabile, JSON-freundliche Felder um; zuständig für Shanghai-Zeitzonendaten, Unterrichtswochen, Kurszeiten, Noten und ICS-Ereignisparsing.
Authentifizierungs- und Speicherschicht: Öffnet nur bei Bedarf eine lokale Seite; Passwörter gelangen nicht in MCP-Parameter; nach Erfolg wird nur die wiederverwendbare Sitzung gespeichert.
MCP verwendet den stdio-Transport. Die Standardausgabe sendet nur MCP-Protokolldaten, Laufzeitprotokolle werden ausschließlich auf die Standardfehlerausgabe geschrieben, damit Protokolle die Protokollkommunikation nicht stören.
Authentifizierungsablauf
Warum kann die BIT101-Anmeldung im Browser nicht direkt wiederverwendet werden?
Browser-Cookies gehören zum eigenen Sicherheitsbereich des Browsers; MCP ist ein unabhängiger lokaler Prozess. Das Projekt liest bewusst nicht die Cookie-Datenbank von Chrome/Edge und verlangt auch keine Browser-Erweiterung. Das bedeutet eine zusätzliche Erstauthentifizierung, vermeidet aber, dass MCP alle Browser-Anmeldedaten des Benutzers durchsucht.
Ein neues Agenten-Gespräch löscht den Anmeldestatus nicht. Beim MCP-Start werden gespeicherte Sitzungen gelesen und validiert; eine erneute Anmeldung erfolgt nur, wenn die Sitzung nicht existiert, der Upstream sie als ungültig einstuft, die temporäre Challenge des Authentifizierungsgateways abgelaufen ist oder der System-Schlüsselspeicher nicht verfügbar ist.
BIT101
Beim ersten Aufruf eines Community-Tools:
MCP startet eine temporäre Seite auf einem zufälligen Port von
127.0.0.1.Der Benutzer gibt auf der lokalen Seite Matrikelnummer und BIT101-Passwort ein.
Der lokale Prozess verarbeitet das Passwort gemäß dem bestehenden BIT101-Anmeldeprotokoll und sendet es per HTTPS an die BIT101-API.
Nach erfolgreicher Anmeldung wird nur die zurückgegebene BIT101-Sitzung im System-Schlüsselspeicher abgelegt; das ursprüngliche Passwort wird nicht dauerhaft gespeichert.
Die temporäre Seite wird geschlossen, der ursprüngliche Tool-Aufruf wird fortgesetzt.
Schulstundenplan und Noten
Stundenplan und Noten stammen aus der persönlichen Datenschnittstelle der Schule und sind nicht derselbe „Schlüssel“ wie die BIT101-Community-Sitzung. Beim ersten Aufruf sammelt die lokale Seite Konto, Passwort der einheitlichen Authentifizierung sowie bei Bedarf den SMS-Code und übergibt sie per HTTPS an das bestehende BIT-Login-REST-Gateway. MCP speichert die vom Gateway zurückgegebene kurzlebige Challenge-Sitzung, nicht das Schulpasswort.
Lexue-Kalender
Das aktuelle BIT-Login-REST-Gateway bietet keine Lexue-Kalenderschnittstelle, die dieses Projekt aufrufen könnte, und das Projekt implementiert auch das Schul-CAS/SSO nicht neu. Daher muss der Benutzer im MVP auf der Seite Kalender → Kalender exportieren in Lexue eine private Abonnement-URL erzeugen und sie einmal in der lokalen Verbindungsseite einfügen.
Die Verbindungsseite lädt den iCalendar-Inhalt tatsächlich herunter und validiert ihn; nur ein gültiges Abonnement zeigt Connected an. Eine normale calendar/view.php-Seite wird abgelehnt. Die Abonnement-URL gelangt nicht in Agenten- oder MCP-Tool-Ergebnisse und wird im System-Schlüsselspeicher abgelegt. Ein gültiger Kalender ohne anstehende Ereignisse liefert eine leere Liste.
Authentifizierung, Sicherheit und Datenschutz
Das Wichtigste zuerst
Dieses Projekt verringert das Risiko, dass Passwörter in Agenten, Chatverläufe und Protokolle gelangen, kann aber keine „Null-Risiko“-Garantie geben. Die Installation eines lokalen MCP entspricht der Installation eines netzwerkfähigen lokalen Programms; der Benutzer muss dem Projektquellcode, den Installationspaketen, den Abhängigkeiten und den konfigurierten entfernten Authentifizierungsdiensten vertrauen.
Besonders zu unterscheiden sind zwei Aussagen:
Passwörter werden nicht an den Agenten/LLM gesendet: Das ist eine explizit umgesetzte Grenze dieses Projekts.
Passwörter existieren nur auf diesem Rechner: Das ist nicht der Fall. Das Passwort der einheitlichen Schulauthentifizierung muss vom lokalen MCP per HTTPS an das konfigurierte entfernte BIT-Login-Gateway übermittelt werden, um die Authentifizierung abzuschließen.
Welche Informationen gehen wohin?
Information | Wer hat Zugriff | Wird dauerhaft gespeichert |
BIT101-Passwort | Lokaler Authentifizierungscode; nach dem Upstream-Protokoll verarbeitet und an die BIT101-API übermittelt | Passwort wird nicht gespeichert |
Passwort der einheitlichen Schulauthentifizierung | Lokaler Authentifizierungscode und konfiguriertes BIT-Login-Gateway | Wird nicht gespeichert |
SMS-Verifizierungscode | Lokaler Authentifizierungscode und BIT-Login-Gateway | Wird nicht gespeichert |
BIT101/Schulsitzung | Lokales MCP und entsprechender Upstream | Betriebssystem-Schlüsselspeicher |
Private Lexue-Abonnement-URL | Lokales MCP und der | Betriebssystem-Schlüsselspeicher |
Beiträge, Kurse, Stundenpläne, Noten, Lexue-Ereignisse | MCP und aktueller Agent | Gelangt in den Kontext des aktuellen Agenten |
Standardmäßige Upstream-Adressen:
BIT101-API:
https://bit101.flwfdd.xyzBIT-Login-REST:
https://login.bit101.flwfdd.xyz
HTTPS verhindert allgemeines Netzwerk-Mithören, ersetzt aber nicht das Vertrauen in den Serverbetreiber. Benutzer, die Bedenken haben, dass das Schulpasswort ein entferntes Gateway passiert, sollten die Stundenplan- und Noten-Tools nicht aktivieren.
Umgesetzte Schutzmaßnahmen
Der temporäre HTTP-Dienst bindet nur an
127.0.0.1und verwendet einen vom Betriebssystem zugewiesenen zufälligen Port.Jede Authentifizierung verwendet einen 256-Bit-Zufalls-
stateund einen Vergleich in konstanter Zeit gegen gefälschte Übermittlungen.Die Seite deaktiviert Cache, externe Inhalte, iframes, Referrer und MIME-Erraten.
Die Seite beendet das Lauschen nach Erfolg, Abbruch oder Timeout.
Passwörter und Verifizierungscodes werden nicht in Dateien geschrieben; der Code räumt die entsprechenden Variablenreferenzen so bald wie möglich nach der Anfrage auf.
Sitzungen werden über das Python-
keyringim Betriebssystem-Schlüsselspeicher abgelegt (Windows Credential Manager oder Linux Secret Service/Keyring-Backend); ist dies nicht verfügbar, werden sie nur im Speicher des aktuellen Prozesses gehalten, ohne Rückfall auf Klartextdateien.Protokolle maskieren Passwörter, Verifizierungscodes, Cookies, Bearer-Tokens und Authorization-Header.
Die Lexue-URL muss HTTPS unter der Domäne
bit.edu.cnverwenden und gültiges iCalendar zurückgeben.Alle Tools sind als schreibgeschützt markiert und bieten keine Möglichkeit, Schul- oder Community-Daten zu ändern.
Worauf der Benutzer achten sollte
Nur aus vertrauenswürdigen Repositories oder vertrauenswürdigen Veröffentlichungsseiten installieren und nach Möglichkeit Quellcode und Veröffentlichungshashes prüfen.
Die lokale Authentifizierungsseiten-URL sollte mit
http://127.0.0.1:<zufälliger Port>/connectbeginnen.Niemals Passwörter, Verifizierungscodes, Cookies, Tokens oder Lexue-URLs im Agenten-Chatfeld, in MCP-Parametern, Issues oder Protokollen senden.
Persönliche Schulkonten nicht auf nicht vertrauenswürdigen öffentlichen Computern verwenden.
Die Lexue-Abonnement-URL ist ein privater Link, der „beim Besitz lesbar“ ist; sie sollte wie ein Passwort geschützt werden. Bei Verdacht auf Offenlegung in Lexue neu erzeugen.
Bei Noten- und Stundenplanabfragen werden die entsprechenden Daten dem aktuellen Agenten bereitgestellt. Entscheide anhand der Datenrichtlinie des verwendeten Modells und Clients selbst, ob du sie aktivierst.
Lokale Sitzungen löschen
Unter Windows Systemsteuerung → Anmeldeinformationsverwaltung → Windows-Anmeldeinformationen öffnen; unter Linux das Secret-Service-Verwaltungstool der aktuellen Desktop-Umgebung (üblicherweise GNOME Keyring oder KDE Wallet). Die folgenden Einträge mit dem Dienstnamen bit101-mcp löschen:
bit101-sessionschool-sessionlexue-calendar-url
Nach dem Löschen authentifiziert sich der nächste Aufruf des entsprechenden Tools erneut. Das Deinstallieren des Python-Pakets löscht diese Systemanmeldeinformationen nicht automatisch. Wenn unter Linux kein Keyring-Backend verfügbar ist, wird die Sitzung nur im Speicher des aktuellen Prozesses gehalten; nach einem MCP-Neustart ist eine erneute Anmeldung erforderlich.
Konfigurationsoptionen
Nicht-geheime Parameter dürfen nur über Umgebungsvariablen konfiguriert werden:
Variable | Standardwert | Verwendung |
|
| BIT101-API-Basisadresse |
|
| BIT-Login-REST-Basisadresse |
|
| Timeout für einzelne Upstream-HTTP-Anfragen, in Sekunden |
|
| Maximale Wartezeit der lokalen Authentifizierungsseite, in Sekunden |
Anmeldeinformationen und Sitzungen können nicht über Tool-Parameter oder Umgebungsvariablen konfiguriert werden. Das Ändern der Upstream-Adresse bedeutet, einem neuen Dienstbetreiber zu vertrauen; bitte vorsichtig verwenden.
Häufig gestellte Fragen
Muss der Agent im Projektverzeichnis gestartet werden?
Nein. Nach der Installation des Befehls mit uv tool install . und dem Eintrag des MCP in die benutzerweite Client-Konfiguration kann er aus beliebigen Verzeichnissen verwendet werden. Die opencode.json, .cursor/mcp.json oder .codex/config.toml im Projektstammverzeichnis gelten nur für das jeweilige Projekt.
Warum öffnet sich beim ersten Mal ein Browser?
Die Authentifizierung wird bedarfsgesteuert ausgelöst. Die erste Beitragsabfrage benötigt eine BIT101-Sitzung; die erste Stundenplan-/Notenabfrage benötigt eine Schulsitzung; die erste Lexue-Abfrage benötigt zusätzlich ein privates Kalenderabonnement. Passwörter und Abonnement-URLs dürfen nicht über den Chat laufen, daher wird eine temporäre lokale Seite zur Erfassung verwendet.
Warum verlangt MCP eine Anmeldung, obwohl die BIT101-Webseite bereits angemeldet ist?
Die Websitzung liegt in Browser-Cookies. MCP liest keine Browser-Cookies und muss daher eine eigene minimale Sitzung aufbauen. Das opfert den Komfort der einmaligen Erstanmeldung, vermeidet aber den direkten Zugriff auf alle Browser-Anmeldedaten.
Warum ist in neuen Gesprächen gelegentlich eine erneute Anmeldung nötig?
Neue Gespräche löschen Sitzungen nicht aktiv, aber MCP validiert die Upstream-Sitzung. Eine erneute Anmeldung erfolgt, wenn die Sitzung abgelaufen ist, vom Server widerrufen wurde, die Gateway-Challenge ungültig ist oder der System-Schlüsselspeicher nicht verfügbar ist. Wenn direkt nach erfolgreicher Anmeldung und sofortigem Neustart erneut gefragt wird, prüfe, ob im System-Schlüsselspeicher Einträge für bit101-mcp existieren.
Lexue zeigt Connected, warum gibt es keine Aufgaben?
Wenn die Abonnement-URL die iCalendar-Validierung besteht, bedeutet eine leere Liste in der Regel nur, dass im gewählten Zeitraum tatsächlich keine Ereignisse liegen. Du kannst den Abfragezeitraum von 7 auf 30 Tage erweitern, um das zu bestätigen.
Warum wirken die Schultools langsam?
Die erste Schulauthentifizierung, SMS-Verifizierung und der Abruf von Notendetails können länger dauern. Setze das MCP-Tool-Timeout auf 360 Sekunden und warte, bis der aktuelle Aufruf abgeschlossen ist; starte nicht mehrere Schultools gleichzeitig neu.
Der Befehl bit101-mcp wird nicht gefunden?
Führe uv tool dir --bin aus, um das Installationsverzeichnis zu finden, füge es zum PATH hinzu oder trage in der MCP-Konfiguration direkt den absoluten Pfad zu bit101-mcp.exe ein. Starte den Client nach der Änderung neu.
Fehlercodes
Code | Bedeutung |
| Eine BIT101-Sitzung muss aufgebaut werden |
| Eine Schulsitzung muss aufgebaut werden |
| Die gespeicherte Sitzung ist abgelaufen |
| Die Anmeldung war nicht erfolgreich oder die Anmeldeinformationen wurden vom Upstream nicht akzeptiert |
| Timeout beim Warten auf die lokale Authentifizierungsseite |
| Das Lexue-Abonnement existiert nicht, ist ungültig oder kein gültiger Kalender |
| Der angegebene Beitrag oder Datensatz existiert nicht |
| Der Upstream-Dienst ist vorübergehend nicht verfügbar; später erneut versuchen |
| Der Upstream hat unerkennbare Daten zurückgegeben |
Alle Fehler werden bereinigt; es werden keine Passwörter, Cookies, Tokens, Authorization-Header, rohe Stapelverfolgungen oder vollständige sensible Anfragen zurückgegeben.
Entwicklung
Projektstruktur:
src/bit101_mcp/
├── server.py # MCP 入口、工具注册和服务器说明
├── tools/ # Agent 可见的只读工具
├── clients/ # BIT101 与学校上游客户端
├── auth/ # 本地浏览器认证、状态机和凭据存储
├── models/ # 数据标准化、周次和 ICS 解析
└── logging_utils.py # stderr 日志和秘密脱敏Entwicklungsabhängigkeiten installieren und Prüfungen ausführen:
uv sync --all-groups
uv run ruff check .
uv run ruff format --check .
uv buildVor der Veröffentlichung validieren die Maintainer mit Mock-Tests, die nicht mit dem öffentlichen Repository verteilt werden, Datenstandardisierung, Authentifizierungsstatus, Geheimnis-Maskierung und Wiederholungsabläufe; diese Tests benötigen keine echten Konten. Integrationstests mit echten Konten bleiben manuell und optional; Testanmeldeinformationen sollten nicht in das Repository oder CI eingecheckt werden.
Danksagungen
Dank an das BIT101-Projekt und alle seine Mitwirkenden. Die von älteren Studierenden langjährig gepflegte Community, Kursbewertungen, Campus-Datenschnittstellen und Authentifizierungswerkzeuge haben das Campusleben der Studierenden erheblich erleichtert und bilden eine wichtige Grundlage für dieses Projekt.
Dieses Projekt bezieht sich insbesondere auf folgende Projekte und nutzt deren Schnittstellen und Dokumentationen:
BIT101 MCP ist ein unabhängig entwickelter inoffizieller MCP-Client, der über Netzwerkschnittstellen mit den zugehörigen Diensten interagiert. Die MIT-Lizenz dieses Repositories gilt nur für den originären Code dieses Projekts und ersetzt oder ändert keine Lizenzen der Upstream-Projekte.
Aktuelle Einschränkungen
Windows wurde mit den wichtigsten Abläufen auf echter Hardware getestet; Fedora 43 + niri wurde als lauffähig verifiziert, andere Linux-Desktop-Umgebungen wurden noch nicht einzeln verifiziert.
Lexue erfordert weiterhin das einmalige manuelle Einfügen einer exportierten privaten Kalender-Abonnement-URL.
Die Gültigkeitsdauer der Schulsitzung wird vom Upstream-Gateway bestimmt; eine dauerhafte Anmeldung ohne erneute Anmeldung kann nicht garantiert werden.
Notendurchschnitt und Bestnoten hängen davon ab, ob der Upstream für jeden Kurs Details bereitstellt.
Es wurden noch kein PyPI-Paket und keine eigenständige Windows-ausführbare Datei veröffentlicht.
Es werden keine Schreiboperationen angeboten.
Lizenz
Dieses Projekt verwendet die MIT License. Sie sind willkommen, es unter Beibehaltung der Urheberrechts- und Lizenzhinweise zu verwenden, zu modifizieren, zu verteilen und Verbesserungen einzureichen.
Beiträge
Issues und Pull Requests sind willkommen. Bitte geben Sie beim Melden eines Problems Folgendes an:
Betriebssystem, Python-, uv- und MCP-Client-Versionen
Verwendete Toolnamen und maskierte Fehlercodes
Ob eine lokale Authentifizierungsseite angezeigt wird
Reproduzierbare Schritte
Bitte übermitteln Sie keine Studentenausweisnummern, Passwörter, Verifizierungscodes, Cookies, Tokens, vollständige Anfrage-Header, 乐学-URLs oder andere persönliche Informationen.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables University of Toronto students to access academic data from ACORN and Quercus via AI assistants. It provides tools to retrieve course schedules, enrollment details, syllabi, assignments, and announcements.
- FlicenseNot gradedqualityCmaintenanceProvides tools for querying student academic data such as subjects, marks, performance reports, timetable, exams, fees, events, holidays, and assignments via natural language.
- AlicenseAqualityAmaintenanceProvides read-only access to StudyLife data including courses, notes, sessions, and learning goals, enabling MCP clients to query study information via natural language.7AGPL 3.0
- FlicenseAqualityCmaintenanceProvides read-only access to Canvas LMS, enabling users to view active courses, grades, and upcoming assignments through natural language queries.2
Related MCP Connectors
Read-only China A-share data for AI agents: market, limit-up, capital flow and disclosures.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tiny-paris/BIT101-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server