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: gaokao-helper-worker-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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • XFA's remote MCP server — query device posture, compliance, policies & CVEs. Read-only.

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

View all MCP Connectors

Latest Blog Posts

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/Strayed2SE/iGuat-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server