Skip to main content
Glama

smu-rule-mcp

Ein inoffizieller MCP-Server, der es KI-Assistenten ermöglicht, die Vorschriften des Regelverwaltungssystems der Sangmyung-Universität (rule.smu.ac.kr) abzufragen.

Durchsucht 301 Vorschriften, 5.196 Artikel und 2.029 Anhänge/Formulare auf Artikelebene.

⚠️ Dieses Projekt ist ein inoffizielles Tool und steht in keinem Zusammenhang mit der Sangmyung-Universität. Es wurde nicht genehmigt, gesponsert oder zertifiziert. Für den offiziellen Wortlaut der Vorschriften konsultieren Sie bitte stets das Original. Ausführliche Hinweise finden Sie in NOTICE.md.

나: 휴학은 최대 몇 년까지 돼?
AI: 학칙 제28조(휴학기간 및 복학)에 따르면 일반휴학은 1년 또는 학기 단위로…

Schnellstart

Erfordert Node.js 22 oder höher (LTS-Installation unter nodejs.org). Windows, macOS und Linux verwenden denselben Befehl.

git clone https://github.com/gsmtc01/smu-rule-mcp
cd smu-rule-mcp
npm run setup

Ein einziger Befehl npm run setup erledigt die Installation der Abhängigkeiten, den Build, das Herunterladen der Daten und die Client-Registrierung. Während der Ausführung können Sie den zu registrierenden Client auswählen. Die Konfigurationsdatei wird vor Änderungen automatisch gesichert, und bereits registrierte andere MCP-Server bleiben unberührt.

npm run setup -- --client claude-desktop   # 물어보지 않고 바로 등록
npm run setup -- --print                   # 설정 JSON만 출력(직접 붙여넣기)

Nach der Installation schließen Sie den Client vollständig und starten Sie ihn neu. Die MCP-Konfiguration wird nur beim Start gelesen.

Related MCP server: korean-law-mcp

Clientspezifische Einrichtung

Dieser Server arbeitet im lokalen (stdio)-Modus auf Ihrem PC. Der Client startet den Prozess bei Bedarf, daher sind kein separater Server oder Konto erforderlich.

Client

Unterstützt

Vorbereitung

Claude Desktop

Ja

npm run setup

Claude Code

Ja

npm run setup

Codex CLI

Ja

npm run setup -- --print, dann TOML erstellen

Cursor / Windsurf etc.

Ja

npm run setup

Claude Web (claude.ai)

Nein

Siehe unten

ChatGPT (Web, Desktop-App, Work)

Nein

Siehe unten

Claude Desktop

npm run setup -- --client claude-desktop

Für eine manuelle Einrichtung bearbeiten Sie die Konfigurationsdatei direkt.

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "smu-rule": {
      "command": "node",
      "args": ["<저장소 경로>/dist/mcp/server.js"]
    }
  }
}

Es wird empfohlen, für command den absoluten Pfad von node zu verwenden (which node / where node). GUI-Apps übernehmen die PATH-Umgebung der Shell möglicherweise nicht, sodass node nicht gefunden wird. Windows-Pfade müssen mit doppelten Backslashes angegeben werden, z. B. "C:\\Users\\...".

Claude Code

npm run setup -- --client claude-code

Wird in ~/.claude.json unter mcpServers registriert. Das Format ist identisch mit Claude Desktop. Wenn Sie auch Claude Desktop verwenden, registrieren Sie es nur in einer der beiden Konfigurationen. Die Desktop-App-Einstellungen können auf Claude Code-Sitzungen übertragen werden, was zu einer doppelten Registrierung führen kann.

Codex CLI

Codex verwendet TOML. Fügen Sie es zu ~/.codex/config.toml hinzu.

[mcp_servers.smu-rule]
command = "node"
args = ["<저장소 경로>/dist/mcp/server.js"]

Den Pfad können Sie mit npm run setup -- --print ermitteln.

Cursor · Windsurf etc.

npm run setup -- --client cursor

Für Clients, die das mcpServers-Format verwenden, können Sie dasselbe JSON wie für Claude Desktop in die jeweilige Konfigurationsdatei einfügen.

ChatGPT (Web, Desktop-App, Work)

Derzeit nicht nutzbar.

ChatGPT, einschließlich der Desktop-App, unterstützt nur Remote-MCP-Server (HTTPS-Adressen), nicht lokale stdio-Server auf Ihrem PC. Für die Registrierung im Connector-Entwicklermodus ist eine über das Internet erreichbare Adresse erforderlich; dieses Projekt betreibt jedoch keinen öffentlichen Server.

Aus demselben Grund ist es auch im Claude Web (claude.ai) nicht nutzbar. Der im Browser laufende Client kann keine Programme auf Ihrem PC ausführen.

In der ChatGPT-Familie unterstützt nur Codex CLI lokale MCP-Server. Sie können diesen verwenden.

Ansonsten empfehlen wir Claude Desktop oder Claude Code. Die Installation ist einfach, und Anhänge werden direkt auf Ihrem PC gespeichert.

Hinweis: Dieser Server enthält einen Modus, der mit PORT als HTTP-Server gestartet werden kann. Dies ist für diejenigen gedacht, die ihn selbst hosten möchten. Bis ein öffentlicher Server verfügbar ist, muss die Verbindung für Web-Clients selbst bereitgestellt werden. Wenn Sie ihn unter einer öffentlichen Adresse betreiben, wird auch die download_form-Funktion geöffnet, die auf das Originalsystem zugreift. Daher sollten Sie Zugriffsbeschränkungen einrichten.

Werkzeuge

Werkzeug

Beschreibung

Verbindung zum Originalserver

search_regulation

Volltextsuche auf Artikelebene (FTS5)

Keine

get_regulation_text

Vollständigen Vorschriftstext abrufen

Keine

list_regulations

Liste nach Kategorie/Abteilung

Keine

get_recent_amendments

Neueste Änderungen/Erlasse

Keine

list_repealed

Aufgehobene Vorschriften

Keine

list_forms

Metadaten zu Anhängen/Formularen

Keine

download_form

Anhang/Formular als HWP herunterladen

Ja (nur beim ersten Mal)

get_data_status

Zeitpunkt und Anzahl der lokalen DB

Keine

Der Hauptvorteil dieses Tools besteht darin, dass Suchergebnisse nicht auf Vorschriftenebene, sondern auf Artikelebene präzisiert werden.

Sie können es so abfragen.

휴학은 최대 몇 년까지 가능해?
학칙 제27조 보여줘
교원인사팀이 관리하는 규정 목록 뽑아줘
최근 3개월 안에 개정된 규정 알려줘
학칙 별지1 파일 받아줘

Struktur

Eine GitHub-native Struktur mit getrennter Datensammlung und Abfrage. Es ist kein ständig laufender Server erforderlich.

GitHub Actions (야간 크론)          사용자 기기 (stdio, 온디맨드)
  수집 → SQLite FTS 빌드     ──▶     Release에서 DB 내려받아 캐시
  → Release 애셋 업로드              · 검색/목록/전문 → 로컬 DB (원 서버 부담 0)
                                     · 별표 HWP → 필요 시에만 라이브 + 영구 캐시
  • Suche, Volltext und Metadaten werden aus der lokalen DB verarbeitet, sodass der Originalserver auch bei vielen Benutzern nicht belastet wird.

  • Der einzige Zugriff auf den Originalserver erfolgt beim Herunterladen von HWP-Anhängen.

Datenaktualisierung

npm run update-data

Die Datensammlung läuft automatisch jeden frühen Morgen, und die Ergebnisse werden als Release veröffentlicht. Mit dem obigen Befehl erhalten Sie die neuesten Daten. Den aktuellen Datenstand können Sie mit get_data_status abfragen.

Herunterladen von Anhängen/Formularen

Nur download_form greift auf das Originalsystem zu. Die Serverfile-ID fungiert praktisch als Inhaltsadresse, sodass bereits heruntergeladene Dateien dauerhaft zwischengespeichert werden und bei erneuter Anforderung derselben Datei keine Netzwerkverbindung benötigt wird. Wenn der heruntergeladene Inhalt nicht der Signatur eines Hangeul-Dokuments entspricht (z. B. Fehlerseite), wird er nicht gespeichert und als Fehler behandelt.

Der Cache wird nach ID gespeichert, aber die an den Benutzer übergebene Kopie wird unter dem ursprünglichen Dateinamen an einem leicht zugänglichen Ort abgelegt. Der Speicherort wird in der Reihenfolge SMU_FORM_DIR > ~/Claude > ~/Downloads bestimmt und kann beim Aufruf des Tools auch direkt mit output_dir angegeben werden.

Die Originaldateinamen haben meist die Form <Anhang 1> (...). Da < und > unter Windows nicht verwendet werden können, werden sie in [Anhang 1] (...) umbenannt. Dies wird für alle 822 Einträge überprüft (npm run check-filenames).

Umgebungsvariablen

Variable

Bedeutung

SMU_DB_PATH

Legt den Pfad zur Vorschriften-DB direkt fest

SMU_CACHE_DIR

Cache-Verzeichnis (Standard: ~/.cache/smu-rule-mcp, Windows: %LOCALAPPDATA%)

SMU_FORM_DIR

Verzeichnis für heruntergeladene Anhänge

SMU_DATA_URL

Legt die URL für die Datenverteilung direkt fest

PORT

Startet als HTTP-Server statt stdio (für Selbsthosting)

SMU_CRAWLER_DISABLED

Schalter zum Deaktivieren des Crawlers

Fehlerbehebung

Das Tool wird nicht angezeigt Schließen Sie den Client vollständig (⌘Q / Beenden über die Taskleiste) und starten Sie ihn neu. Die Konfiguration wird nur beim Start gelesen.

"Vorschriften-DB nicht gefunden" Führen Sie npm run update-data aus. Die Daten müssen einmalig heruntergeladen werden.

Der Server startet nur in der GUI-App nicht Ersetzen Sie command durch den absoluten Pfad von node (which node / where node). GUI-Apps übernehmen die PATH-Umgebung der Shell nicht.

Fehler: node:sqlite kann nicht verwendet werden Node-Version unter 22.5 oder eine Version, die ein Flag benötigt. Node 24 oder höher wird empfohlen. npm run setup prüft dies zu Beginn.

Anhangsdatei heruntergeladen, aber nicht gefunden Überprüfen Sie den von download_form angegebenen Pfad. Der Standard ist ~/Downloads. Sie können mit output_dir einen gewünschten Speicherort angeben.

Crawling-Richtlinie

Das Zielsystem ist nicht für großen automatischen Datenverkehr ausgelegt. Wir halten uns an die folgenden Richtlinien, um eine Last zu erzeugen, die der eines einzelnen normalen Benutzers entspricht oder darunter liegt. Die Werte sind fest im Code in src/crawler/config.ts hinterlegt und sollten nicht willkürlich gelockert werden.

Punkt

Wert

Gleichzeitigkeit

1 (serielle Verarbeitung, keine parallelen Anfragen)

Verzögerung zwischen Anfragen

Standard 2s, für schwere Anfragen (Volltext, Anhänge) 3s

Zufällige Verzögerung

Zusätzliche zufällige Zeit zur obigen Verzögerung (Standard max. 1s, bei schweren Anfragen max. 2s)

Wiederholungsversuche

Nur bei 5xx-, Timeout- und Netzwerkfehlern, 3 Versuche, Wartezeit 2s → 4s → 8s

429/503

Retry-After wird beachtet, falls nicht vorhanden 60s warten

Circuit Breaker

Abbruch bei 5 aufeinanderfolgenden Fehlern oder 3 kumulierten Timeouts

Crawling-Zeitfenster

Täglich zwischen 2:00 und 5:00 Uhr (KST)

User-Agent

Ehrlicher UA mit Repository-Adresse (kein Spoofing)

Anhangsdateien

Lazy: Keine Massensammlung, nur auf Anfrage einzeln, dauerhafter Cache

Kill-Switch

Umgebungsvariable SMU_CRAWLER_DISABLED

Anfragebudget: Einmalige initiale Texterfassung, danach nur noch inkrementelle tägliche Aktualisierungen. Ein Massendownload von Anhangsdateien wird aus Richtliniengründen nicht durchgeführt.

Daten-Pipeline

Die Sammlung wird täglich um 02:00 KST von .github/workflows/crawl.yml durchgeführt.

이전 Release 복원 → 증분 수집 → 무결성 검증 → gzip → Release(data-latest) 배포
  • Das vorherige Distributionspaket wird zuerst wiederhergestellt. Ohne dies würde jede Ausführung eine vollständige Neuerfassung bedeuten. Dies ist eine Voraussetzung für die inkrementelle Sammlung (nur Vorschriften, deren Revision geändert wurde, werden erneut vollständig erfasst).

  • Wenn der Crawler sich selbst stoppt (außerhalb des Zeitfensters, Kill-Switch aktiv, Circuit Breaker ausgelöst), wird die Verteilung übersprungen und der Workflow nicht als fehlgeschlagen markiert.

  • scripts/verifyDb.mjs überprüft die Mindestanzahl von Einträgen, die Indexintegrität und ob es einen starken Rückgang im Vergleich zum vorherigen Lauf gibt, bevor die Verteilung erfolgt. Dies verhindert, dass teilweise fehlgeschlagene Ergebnisse die korrekten Daten überschreiben.

Kill-Switch: Setzen Sie die Repository-Variable SMU_CRAWLER_DISABLED auf true, um die Sammlung zu stoppen.

Eine manuelle Ausführung ist über den Reiter ActionscrawlRun workflow möglich, wobei die Option force die Zeitfensterbeschränkung umgeht.

Daten und Lizenz

  • Quellcode: MIT

  • Vorschriftendaten: Das Urheberrecht liegt bei der Sangmyung-Universität und unterliegt nicht der MIT-Lizenz. Um die Lizenzgrenzen zu wahren, werden die Daten nicht im Repository committet, sondern nur als Release-Asset separat verteilt. → NOTICE.md

Kontakt

Sollten Vertreter der Sangmyung-Universität eine Anpassung oder Einstellung des Betriebs wünschen, teilen Sie uns dies bitte über Issues mit. Wir werden umgehend reagieren.

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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

  • Korean public procurement law: rule-engine rulings, statutes search, live court precedents

  • Korean public procurement law: rule-engine rulings, statutes search, live court precedents

  • Search company disclosures and financial statements from the Korean market. Retrieve stock profile…

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/gsmtc01/smu-rule-mcp'

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