Skip to main content
Glama

smu-rule-mcp

这是一个非官方 MCP 服务器,允许 AI 助手查询祥明大学校规管理系统(rule.smu.ac.kr)中的校规。

可搜索 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 网页版(claude.ai)

不支持

见下文

ChatGPT (网页·桌面应用·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 应用不会继承 shell 的 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 (网页 · 桌面应用 · Work)

目前无法使用。

ChatGPT(包括桌面应用)仅支持远程 MCP 服务器(HTTPS 地址),不支持本地 PC 上运行的 stdio 服务器。要注册到连接器开发者模式,需要互联网可访问的地址,而本项目不运营公共服务器。

出于同样原因,Claude 网页版(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

本地数据库收集时间/数量

此工具的主要优势在于能够将搜索结果精确到条款级别,而非校规级别。

可以这样提问。

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

结构

采用收集与查询分离的 GitHub 原生结构。无需常驻服务器。

GitHub Actions (야간 크론)          사용자 기기 (stdio, 온디맨드)
  수집 → SQLite FTS 빌드     ──▶     Release에서 DB 내려받아 캐시
  → Release 애셋 업로드              · 검색/목록/전문 → 로컬 DB (원 서버 부담 0)
                                     · 별표 HWP → 필요 시에만 라이브 + 영구 캐시
  • 搜索、全文、元数据均在本地数据库中处理,因此即使用户增加也不会给原始服务器带来负担。

  • 实际连接原始服务器的操作仅限于下载附表 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

直接指定校规数据库路径

SMU_CACHE_DIR

缓存位置(默认:~/.cache/smu-rule-mcp,Windows 为 %LOCALAPPDATA%

SMU_FORM_DIR

放置下载的附表的位置

SMU_DATA_URL

直接指定数据发布 URL

PORT

指定后以 HTTP 服务器模式运行(替代 stdio,用于自行托管)

SMU_CRAWLER_DISABLED

收集器终止开关

故障排除

工具不显示 请完全关闭客户端(⌘Q / 从任务栏退出)后重新启动。配置仅在启动时读取。

"找不到校规数据库" 请运行 npm run update-data。首次需要获取数据。

仅在 GUI 应用中服务器无法启动 请将 command 替换为 node 的绝对路径(which node / where node)。GUI 应用不会继承 shell 的 PATH。

出现无法使用 node:sqlite 的错误 这是 Node 版本低于 22.5 或需要标志的版本。建议使用 Node 24 或更高版本。npm run setup 在启动时会首先检查此项。

下载了附表文件但找不到 请检查 download_form 告知的路径。默认路径为 ~/Downloads。也可以通过 output_dir 指定所需位置。

收集策略

目标系统并非为应对大规模自动流量而设计。我们以 "不超过一名正常用户"的负载为目标,遵守以下策略。数值已在 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(禁止伪造)

附表文件

惰性加载:禁止批量收集,按请求逐个获取并永久缓存

终止开关

SMU_CRAWLER_DISABLED 环境变量

请求预算:初始文本收集一次,之后每日增量仅限于变更部分。根据策略,不执行附表文件的批量下载。

数据管道

收集工作由 .github/workflows/crawl.yml 每天 02:00 KST 执行。

이전 Release 복원 → 증분 수집 → 무결성 검증 → gzip → Release(data-latest) 배포
  • 首先恢复之前的发布版本。如果没有这一步,每次运行都会重新完整收集,因此这是增量收集(仅重新收集修订版发生变化的校规全文)的前提条件。

  • 如果收集器自行停止(超出时间段、终止开关、断路器),则跳过发布,且不将工作流标记为失败。

  • 仅在 scripts/verifyDb.mjs 验证了最小数量、索引一致性以及与上次相比是否急剧减少之后才进行发布。这可以防止部分失败的结果覆盖正常数据。

终止开关:将仓库变量 SMU_CRAWLER_DISABLED 设置为 true 即可停止收集。

手动运行可在 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