Skip to main content
Glama

iGuat-MCP

Ein schreibgeschützter MCP-Dienst (Model Context Protocol) für die Campusdaten von iGuihang. Das Projekt basiert auf Python, FastMCP und Streamable HTTP und kapselt Abfragen zu Stundenplänen, Klassen und Standorten als Standardwerkzeuge, die von KI-Clients aufgerufen werden können.

Dieses Projekt bietet ausschließlich Abfragefunktionen und ändert weder das WeChat-Miniprogramm noch die übergeordneten Lehrdaten.

Funktionen

  • Abrufen der vollständigen Semesterliste, des aktuellen Semesters und des nächsten Semesters

  • Suche nach Klassen anhand von Studiengang, Jahrgang und Klassenstichwort

  • Abfragen des Stundenplans für eine bestimmte Klasse, ein bestimmtes Semester und eine bestimmte Woche

  • Abfragen des Stundenplans einer bestimmten Person, wobei Identitätsfelder vor der Rückgabe entfernt werden

  • Ableiten des Standorts anhand der Studiengangsinformationen

  • Integrierter TTL-Stundenplan-Cache, Nebenläufigkeitsbegrenzung und Health Check

  • Schutz der MCP- und Admin-Schnittstellen durch Bearer-API-Schlüssel

  • Unterstützung für das heiße Aktualisieren des übergeordneten Tokens über die Admin-Schnittstelle

  • Unterstützung für Docker, Umgebungsvariablen und Docker Secrets

Related MCP server: sanxiao-mcp

MCP-Werkzeuge

Werkzeug

Beschreibung

get_xnxq

Abrufen der vollständigen Semesterliste, einschließlich des aktuellen und des nächsten Semesters

get_current_term

Abrufen des aktuellen Semesters

search_classes

Suche nach Klassen anhand von Bedingungen

get_class_schedule

Abrufen des Stundenplans für eine bestimmte Klasse, ein bestimmtes Semester und eine bestimmte Woche

get_ta_schedule

Abfragen des Stundenplans nach Name oder Matrikelnummer; die Antwort entfernt Identitätsfelder

infer_major_campus

Ableiten des Standorts anhand der Studiengangsinformationen

Technologiestack

  • Python 3.11+

  • MCP / FastMCP

  • HTTPX

  • Uvicorn

  • Pytest

  • Docker

Schnellstart

Lokale Ausführung

git clone https://github.com/Strayed2SE/iGuat-MCP.git
cd iGuat-MCP

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -e ".[test]"

cp .env.example .env
# 按下方说明配置环境变量后启动
python server.py

Der Dienst lauscht standardmäßig auf 0.0.0.0:8000:

  • MCP: http://127.0.0.1:8000/mcp

  • Health Check: http://127.0.0.1:8000/healthz

Anfrageheader des MCP-Clients:

Authorization: Bearer <MCP_PUBLIC_API_KEY>

Docker

docker build -t iguat-mcp .
docker run --rm -p 8000:8000 --env-file .env iguat-mcp

Für die Produktionsumgebung wird empfohlen, sensible Konfigurationen über die NAME_FILE-Form aus Docker Secrets oder schreibgeschützten Dateien zu laden:

docker run --rm -p 8000:8000 \
  -e IGUAT_USER_TOKEN_FILE=/run/secrets/iguat_token \
  -e IGUAT_MAIN_SIGN_KEY_FILE=/run/secrets/main_sign_key \
  -e MCP_PUBLIC_API_KEY_FILE=/run/secrets/public_key \
  -e MCP_ADMIN_API_KEY_FILE=/run/secrets/admin_key \
  --mount type=bind,src=/secure/secrets,dst=/run/secrets,ro \
  iguat-mcp

Konfiguration

Kopieren Sie .env.example und passen Sie es nach Bedarf an:

Variable

Zweck

IGUAT_USER_TOKEN

Übergeordnetes Abfragetoken

IGUAT_MAIN_SIGN_KEY

Signaturschlüssel der Hauptschnittstelle

IGUAT_CLASS_SIGN_KEY

Signaturschlüssel der Klassenschnittstelle

IGUAT_CSM_SIGN_KEY

Signaturschlüssel der CSM-Schnittstelle

IGUAT_ALUMNI_SIGN_KEY

Signaturschlüssel der Alumni-Schnittstelle

IGUAT_SITE_SIGN_KEY

Signaturschlüssel der Standortschnittstelle

MCP_PUBLIC_API_KEY

Zugriffsschlüssel für MCP-Clients

MCP_ADMIN_API_KEY

Zugriffsschlüssel für die Admin-Schnittstelle

MCP_HOST / MCP_PORT

Adresse und Port des Dienstes

MCP_CACHE_TTL

Cache-Dauer des Stundenplans in Sekunden; 0 deaktiviert den Cache

MCP_MAX_CONCURRENCY

Maximale Anzahl gleichzeitiger Anfragen

MCP_MAX_MAJOR_CLASSES

Obergrenze für die Abfrage von Studiengangsklassen

IGUAT_TRUST_ENV

Gibt an, ob System-Proxy- und Zertifikatsumgebungsvariablen gelesen werden

Aktualisieren des übergeordneten Tokens

Wenn das übergeordnete Token ungültig wird, kann der Administrator das Token im Speicher aktualisieren, ohne den Dienst neu zu starten:

curl -X PUT http://127.0.0.1:8000/admin/token \
  -H "Authorization: Bearer <MCP_ADMIN_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"token":"<NEW_TOKEN>"}'

Tests

pip install -e ".[test]"
pytest -q

Sicherheitshinweise

  • Übertragen Sie keine echten Tokens, Signaturschlüssel, API-Schlüssel oder .env-Dateien in das Repository.

  • Der Dienst gibt keine Tokens, Signaturen oder persönlichen Identitätsfelder an MCP-Clients zurück.

  • Standardmäßig werden keine System-Proxy-Umgebungsvariablen gelesen; setzen Sie IGUAT_TRUST_ENV=1 nur, wenn die Bereitstellungsumgebung dies tatsächlich erfordert.

Verwandte Projekte

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    C
    maintenance
    Enables read-only querying of Kingdee's Three-Effect project management system, covering projects, reimbursements, loans, payments, working hours, and budgets, via MCP tools.
    28
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables read-only interaction with CMU Student Information Online data, including student context, schedules, grades, enrollment, account activity, and campus life through MCP tools.
    8
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables querying SCAU dormitory electricity usage, balance, lifetime consumption, and cost calculations through read-only MCP tools.
    4
    MIT