Skip to main content
Glama

smu-rule-mcp

상명대학교 규정관리시스템(rule.smu.ac.kr)の規定を AIアシスタントから参照できるようにする非公式MCPサーバー。

規定301件、条文5,196件、別表・様式2,029件を条文単位で検索します。

⚠️ このプロジェクトは상명대학교とは無関係の非公式ツールです。 承認・後援・認証を受けていません。公式規定の内容は必ず 原文をご確認ください。 詳細な告知はNOTICE.mdを参照してください。

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

クイックスタート

Node.js 22以上が必要です(nodejs.orgからLTSをインストール)。 Windows・macOS・Linuxすべて同じコマンドを使用します。

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

npm run setupを一度実行すれば、依存関係のインストール、ビルド、データダウンロード、クライアント登録まで 完了します。登録するクライアントは実行中に選択してください。設定ファイルは編集前に 自動的にバックアップされ、すでに登録されている他のMCPサーバーには影響しません。

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

インストールが完了したら、クライアントを完全に終了してから再度実行してください。 MCP設定は起動時にのみ読み込まれます。

Related MCP server: korean-law-mcp

クライアント別設定

このサーバーは自分のPCで動作する**ローカル(stdio)**方式です。クライアントが必要なときに プロセスを起動して使用するため、別途サーバーやアカウントは必要ありません。

クライアント

サポート

準備物

Claude Desktop

サポート

npm run setup

Claude Code

サポート

npm run setup

Codex CLI

サポート

npm run setup -- --print 後にTOMLを作成

Cursor / Windsurf など

サポート

npm run setup

Claude Web(claude.ai)

非サポート

下記参照

ChatGPT(Web・デスクトップアプリ・Work)

非サポート

下記参照

Claude Desktop

npm run setup -- --client claude-desktop

手動で行う場合は、設定ファイルを直接編集します。

  • 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"]
    }
  }
}

command**nodeの絶対パス**を推奨します(which node / where node)。 GUIアプリはシェルのPATHを継承しないため、nodeが見つからない場合があります。 Windowsパスのバックスラッシュは"C:\\Users\\..."のように二重に記述します。

Claude Code

npm run setup -- --client claude-code

~/.claude.jsonmcpServersに登録されます。形式はClaude Desktopと同じです。 Claude Desktopを併用する場合は、どちらか一方にのみ登録してください。デスクトップアプリの設定が Claude Codeセッションにも適用され、重複登録される可能性があります。

Codex CLI

CodexはTOMLを使用します。~/.codex/config.tomlに追加してください。

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

パスはnpm run setup -- --printで確認できます。

Cursor · Windsurf など

npm run setup -- --client cursor

mcpServers形式を使用するクライアントであれば、上記Claude Desktopと同じJSONを 各クライアントの設定ファイルに記述すれば使用できます。

ChatGPT(Web · デスクトップアプリ · Work)

現在使用できません。

ChatGPTはデスクトップアプリを含め、リモートMCPサーバー(HTTPSアドレス)のみをサポートしており、 自分のPCで動作するローカルstdioサーバーはサポートしていません。コネクタ開発者モードに 登録するにはインターネットからアクセス可能なアドレスが必要ですが、このプロジェクトは公開サーバーを 運用していません。

同様の理由で、Claude Web(claude.ai)でも使用できません。 ブラウザで動作する クライアントは自分のPCのプログラムを実行できないためです。

ChatGPT系ではCodex CLIのみローカルMCPをサポートしているため、そちらを使用してください。 それ以外の場合は、Claude DesktopやClaude Codeをお勧めします。インストールが簡単で、別表 ファイルも自分のPCに直接保存されます。

参考:このサーバーにはPORTを指定するとHTTPで起動するモードが含まれています。 自分でホスティングして使用したい場合のためのものであり、公開サーバーができるまではWeb クライアント接続は各自でデプロイする必要があります。公開アドレスで起動すると、元のシステムに アクセスするdownload_formも同時に公開されるため、アクセス制限を設けてください。

ツール

ツール

説明

元サーバーへのアクセス

search_regulation

条文単位の全文検索(FTS5)

なし

get_regulation_text

規定全文の参照

なし

list_regulations

分類別・部署別の一覧

なし

get_recent_amendments

最新の制定・改正情報

なし

list_repealed

廃止規定

なし

list_forms

別表・様式のメタデータ

なし

download_form

別表・様式のHWPダウンロード

あり(初回のみ)

get_data_status

ローカルDBの収集時点・件数

なし

検索結果を規定単位ではなく条文単位で特定することが、このツールの主な利点です。

このように質問すれば使用できます。

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

構造

収集とクエリを分離したGitHubネイティブ構造です。常時サーバーは必要ありません。

GitHub Actions (야간 크론)          사용자 기기 (stdio, 온디맨드)
  수집 → SQLite FTS 빌드     ──▶     Release에서 DB 내려받아 캐시
  → Release 애셋 업로드              · 검색/목록/전문 → 로컬 DB (원 서버 부담 0)
                                     · 별표 HWP → 필요 시에만 라이브 + 영구 캐시
  • 検索・全文・メタデータはローカルDBで処理するため、ユーザーが増えても元サーバーに負荷がかかりません。

  • 元サーバーに実際にアクセスするのは別表HWPのダウンロードのみです。

データ更新

npm run update-data

収集は毎日早朝に自動で実行され、結果がReleaseとして配布されます。上記のコマンドで 最新データを取得してください。現在のデータ時点はget_data_statusで確認できます。

別表・様式のダウンロード

download_formのみ元のシステムにアクセスします。serverfile IDは事実上コンテンツアドレスであるため、 一度受信したファイルは永続的にキャッシュされ、同じファイルを再度要求してもネットワークを使用しません。 ダウンロードした内容がハングル文書のシグネチャと異なる場合(エラーページなど)は保存せず、失敗として処理します。

キャッシュはIDで保存されますが、ユーザーに渡すコピーは元のファイル名でアクセスしやすい 場所に配置されます。保存場所はSMU_FORM_DIR > ~/Claude > ~/Downloads の順に決定され、ツール呼び出し時にoutput_dirで直接指定することもできます。

元のファイル名はほとんどが<別表1> (...)の形式ですが、<>はWindowsで使用できないため、 [別表1] (...)に変更して保存します。全822件について検査します (npm run check-filenames)。

環境変数

変数

意味

SMU_DB_PATH

規定DBのパスを直接指定

SMU_CACHE_DIR

キャッシュの場所(デフォルト:~/.cache/smu-rule-mcp、Windowsは%LOCALAPPDATA%

SMU_FORM_DIR

ダウンロードした別表を配置する場所

SMU_DATA_URL

データ配布URLを直接指定

PORT

指定するとstdioの代わりにHTTPサーバーとして実行(直接ホスティング用)

SMU_CRAWLER_DISABLED

クローラーのキルスイッチ

トラブルシューティング

ツールが表示されません クライアントを完全に終了(⌘Q / タスクバーから終了)してから再度実行してください。 設定は起動時にのみ読み込まれます。

「規定DBが見つかりません」 npm run update-dataを実行してください。初回はデータを取得する必要があります。

GUIアプリでのみサーバーが起動しません commandnodeの代わりに絶対パスに変更してください(which node / where node)。 GUIアプリはシェルのPATHを継承しません。

node:sqliteが使用できないというエラー Node 22.5未満、またはフラグが必要なバージョンです。Node 24以上を推奨します。 npm run setupが起動時にこの部分を最初に確認します。

別表ファイルを受信したが見つかりません download_formが通知したパスを確認してください。デフォルトは~/Downloadsです。 output_dirで任意の場所を指定することもできます。

収集ポリシー

対象システムは大規模な自動トラフィックを想定して運用されていません。 「通常ユーザー1名以下」の負荷を目標に、以下のポリシーを遵守します。 数値はsrc/crawler/config.tsにコードとして固定されており、 任意に緩和しないでください。

項目

同時実行数

1(直列処理、並列リクエスト禁止)

リクエスト間の遅延

デフォルト2秒、全文・添付など重いリクエストは3秒

遅延のランダム化

上記遅延にランダム時間を追加(デフォルト最大1秒、重いリクエスト最大2秒)

リトライ

5xx・タイムアウト・ネットワークエラーのみ3回、待機2秒 → 4秒 → 8秒

429/503

Retry-Afterに従い、ない場合は60秒待機

サーキットブレーカー

連続5回失敗またはタイムアウト累積3回で即時停止

収集時間帯

毎日早朝2時から5時まで(KST)

User-Agent

リポジトリアドレスを含む正直なUA(スプーフィング禁止)

別表ファイル

lazy:一括収集禁止、リクエスト時に1件ずつ受信し永続キャッシュ

キルスイッチ

SMU_CRAWLER_DISABLED環境変数

リクエスト予算:初期テキスト収集1回、以降の日次増分は変更分のみに限定します。 別表ファイルの一括ダウンロードはポリシー上実行しません。

データパイプライン

収集は.github/workflows/crawl.ymlが毎日02:00 KSTに実行します。

이전 Release 복원 → 증분 수집 → 무결성 검증 → gzip → Release(data-latest) 배포
  • 以前の配布物をまず復元します。これがないと毎回の実行が全再収集になるため、 増分収集(改訂版が変わった規定のみ全文再収集)の前提条件です。

  • クローラーが自ら停止した場合(時間帯外・キルスイッチ・サーキットブレーカー)は、 配布をスキップし、ワークフローを失敗として扱いません。

  • scripts/verifyDb.mjsが最小件数・インデックス整合性・ 前回比急減の有無を確認した後にのみ配布します。部分失敗した結果が 正常データを上書きするのを防ぎます。

キルスイッチ:リポジトリ変数SMU_CRAWLER_DISABLEDtrueに設定すると収集が停止されます。

手動実行はActionsタブのcrawlRun workflowから可能で、 forceオプションで時間帯制限を回避できます。

データとライセンス

  • ソースコードMIT

  • 規定データ:著作権は상명대학교にあり、MITの適用対象ではありません。 ライセンスの境界を維持するため、データはリポジトリにコミットせず、 Releaseアセットとしてのみ分離配布します。→ NOTICE.md

お問い合わせ

상명대학교関係者様で運用方法の調整や停止をご依頼される場合は、 Issuesまでお知らせいただければ、迅速に対応いたします。

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