smu-rule-mcp
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 setupEin 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 |
|
Claude Code | Ja |
|
Codex CLI | Ja |
|
Cursor / Windsurf etc. | Ja |
|
Claude Web (claude.ai) | Nein | Siehe unten |
ChatGPT (Web, Desktop-App, Work) | Nein | Siehe unten |
Claude Desktop
npm run setup -- --client claude-desktopFür eine manuelle Einrichtung bearbeiten Sie die Konfigurationsdatei direkt.
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%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-codeWird 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 cursorFü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
PORTals 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 diedownload_form-Funktion geöffnet, die auf das Originalsystem zugreift. Daher sollten Sie Zugriffsbeschränkungen einrichten.
Werkzeuge
Werkzeug | Beschreibung | Verbindung zum Originalserver |
| Volltextsuche auf Artikelebene (FTS5) | Keine |
| Vollständigen Vorschriftstext abrufen | Keine |
| Liste nach Kategorie/Abteilung | Keine |
| Neueste Änderungen/Erlasse | Keine |
| Aufgehobene Vorschriften | Keine |
| Metadaten zu Anhängen/Formularen | Keine |
| Anhang/Formular als HWP herunterladen | Ja (nur beim ersten Mal) |
| 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-dataDie 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 |
| Legt den Pfad zur Vorschriften-DB direkt fest |
| Cache-Verzeichnis (Standard: |
| Verzeichnis für heruntergeladene Anhänge |
| Legt die URL für die Datenverteilung direkt fest |
| Startet als HTTP-Server statt stdio (für Selbsthosting) |
| 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 |
|
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 |
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 Actions → crawl → Run 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.
This server cannot be installed
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
- FlicenseAqualityBmaintenanceEnables AI systems to search, retrieve, and analyze Korean legal information from the National Law Information API (law.go.kr), including laws, administrative rules, English translations, and law-ordinance linkages.261
- Flicense-qualityDmaintenanceEnables searching and retrieving Korean laws, precedents, and administrative rules through the National Law Information Center Open API, optimized for AI agents.
- AlicenseAqualityDmaintenanceEnables searching and retrieving regulations from the Hansung University regulation management system.49MIT
- AlicenseBqualityBmaintenanceEnables AI to search and retrieve regulations from Dongguk University's integrated rule management system.5MIT
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…
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/gsmtc01/smu-rule-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server