smu-rule-mcp
smu-rule-mcp
Неофициальный MCP-сервер, позволяющий AI-ассистентам получать доступ к правилам Системы управления нормативными документами Университета Санмён (rule.smu.ac.kr).
Осуществляет поиск по 301 нормативному документу, 5 196 статьям и 2 029 приложениям и формам на уровне отдельных статей.
⚠️ Этот проект является неофициальным инструментом и не связан с Университетом Санмён. Он не был одобрен, спонсирован или сертифицирован. Для получения официального содержания нормативных документов обязательно обращайтесь к оригинальному тексту. Подробное уведомление см. в NOTICE.md.
나: 휴학은 최대 몇 년까지 돼?
AI: 학칙 제28조(휴학기간 및 복학)에 따르면 일반휴학은 1년 또는 학기 단위로…Быстрый старт
Требуется Node.js версии 22 или выше (установите LTS-версию с nodejs.org). Команды одинаковы для 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
Настройка для конкретных клиентов
Этот сервер работает в локальном (stdio) режиме на вашем ПК. Клиент запускает процесс по мере необходимости, поэтому отдельный сервер или учетная запись не требуются.
Клиент | Поддержка | Необходимые компоненты |
Claude Desktop | Поддерживается |
|
Claude Code | Поддерживается |
|
Codex CLI | Поддерживается |
|
Cursor / Windsurf и др. | Поддерживается |
|
Claude Web (claude.ai) | Не поддерживается | См. ниже |
ChatGPT (Веб, Десктоп, Work) | Не поддерживается | См. ниже |
Claude Desktop
npm run setup -- --client claude-desktopДля ручной настройки отредактируйте файл конфигурации напрямую.
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"]
}
}
}Рекомендуется указывать абсолютный путь к node (which node / where node). GUI-приложения могут не наследовать PATH оболочки и не найти node. Обратную косую черту в путях Windows следует удваивать, например "C:\\Users\\...".
Claude Code
npm run setup -- --client claude-codeРегистрируется в mcpServers файла ~/.claude.json. Формат аналогичен 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, вставьте тот же JSON, что и для Claude Desktop, в соответствующий файл конфигурации.
ChatGPT (Веб · Десктопное приложение · Work)
В настоящее время использовать нельзя.
ChatGPT, включая десктопное приложение, поддерживает только удаленные MCP-серверы (HTTPS-адреса) и не поддерживает локальные stdio-серверы на вашем ПК. Для регистрации в режиме разработчика коннектора требуется адрес, доступный из интернета, а этот проект не предоставляет публичный сервер.
По той же причине нельзя использовать и Claude Web (claude.ai). Клиенты, работающие в браузере, не могут запускать программы на вашем ПК.
Из линейки ChatGPT только Codex CLI поддерживает локальные MCP, поэтому используйте его. В остальных случаях рекомендуем Claude Desktop или Claude Code. Установка проста, а файлы приложений сохраняются прямо на вашем ПК.
Примечание: Этот сервер содержит режим работы через HTTP при указании переменной
PORT. Он предназначен для самостоятельного хостинга; до появления публичного сервера подключение веб-клиентов требует самостоятельного развертывания. При запуске на публичном адресе также открываетсяdownload_form, подключающийся к исходной системе, поэтому необходимо ограничить доступ.
Инструменты
Инструмент | Описание | Подключение к исходному серверу |
| Полнотекстовый поиск по статьям (FTS5) | Нет |
| Просмотр полного текста нормативного документа | Нет |
| Список по категориям и отделам | Нет |
| Информация о последних изменениях и дополнениях | Нет |
| Отмененные нормативные документы | Нет |
| Метаданные приложений и форм | Нет |
| Загрузка HWP-файлов приложений и форм | Да (только при первом запросе) |
| Время сбора и количество записей в локальной БД | Нет |
Основное преимущество этого инструмента — возможность конкретизировать результаты поиска на уровне отдельных статей, а не целых нормативных документов.
Задавайте вопросы так.
휴학은 최대 몇 년까지 가능해?
학칙 제27조 보여줘
교원인사팀이 관리하는 규정 목록 뽑아줘
최근 3개월 안에 개정된 규정 알려줘
학칙 별지1 파일 받아줘Структура
Структура, основанная на GitHub, с разделением сбора и запросов. Постоянно работающий сервер не требуется.
GitHub Actions (야간 크론) 사용자 기기 (stdio, 온디맨드)
수집 → SQLite FTS 빌드 ──▶ Release에서 DB 내려받아 캐시
→ Release 애셋 업로드 · 검색/목록/전문 → 로컬 DB (원 서버 부담 0)
· 별표 HWP → 필요 시에만 라이브 + 영구 캐시Поиск, полный текст и метаданные обрабатываются из локальной базы данных, поэтому увеличение числа пользователей не создает нагрузки на исходный сервер.
Единственное реальное подключение к исходному серверу — это загрузка HWP-файлов приложений.
Обновление данных
npm run update-dataСбор данных выполняется автоматически каждое утро, а результаты распространяются в виде релиза. Загрузите последние данные с помощью указанной выше команды. Текущее состояние данных можно проверить с помощью get_data_status.
Загрузка приложений и форм
Только download_form подключается к исходной системе. ID файла serverfile по сути является адресом содержимого, поэтому однажды загруженный файл кэшируется навсегда, и повторный запрос того же файла не использует сеть. Если загруженное содержимое не соответствует сигнатуре документа HWP (например, страница ошибки), оно не сохраняется и считается неудачным.
Кэш хранится по ID, но копия, передаваемая пользователю, помещается в удобное место с исходным именем файла. Место сохранения определяется в порядке: SMU_FORM_DIR > ~/Claude > ~/Downloads. Также можно указать его напрямую с помощью output_dir при вызове инструмента.
Исходные имена файлов обычно имеют вид <Приложение 1> (...), но символы < и > недопустимы в Windows, поэтому они сохраняются как [Приложение 1] (...). Проверка выполняется для всех 822 файлов (npm run check-filenames).
Переменные окружения
Переменная | Описание |
| Прямое указание пути к базе данных нормативных документов |
| Расположение кэша (по умолчанию: |
| Расположение для сохранения загруженных приложений |
| Прямое указание URL для распространения данных |
| При указании запускает HTTP-сервер вместо stdio (для самостоятельного хостинга) |
| Выключатель сборщика |
Устранение неполадок
Инструменты не отображаются Полностью закройте клиент (⌘Q / через панель задач) и запустите снова. Настройки считываются только при запуске.
"Не удается найти базу данных нормативных документов"
Выполните npm run update-data. Данные необходимо загрузить один раз при первом запуске.
Сервер не запускается только в GUI-приложении
Замените command с node на абсолютный путь (which node / where node). GUI-приложения не наследуют 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 | Соблюдение |
Автоматический выключатель | Немедленная остановка при 5 последовательных сбоях или 3 накопленных тайм-аутах |
Время сбора | Ежедневно с 2:00 до 5:00 утра (KST) |
User-Agent | Честный UA, включающий адрес репозитория (спуфинг запрещен) |
Файлы приложений | Ленивая загрузка: массовый сбор запрещен, загружаются по одному по запросу с постоянным кэшированием |
Выключатель | Переменная окружения |
Бюджет запросов: однократный начальный сбор текста, последующие ежедневные инкрементальные обновления только для изменений. Массовая загрузка файлов приложений политикой не предусмотрена.
Конвейер данных
Сбор выполняется .github/workflows/crawl.yml ежедневно в 02:00 KST.
이전 Release 복원 → 증분 수집 → 무결성 검증 → gzip → Release(data-latest) 배포Сначала восстанавливается предыдущий дистрибутив. Без этого каждый запуск приводил бы к полному пересбору, что является предварительным условием для инкрементального сбора (повторный сбор полного текста только для измененных редакций).
Если сборщик останавливается сам (вне временного окна, из-за выключателя или автоматического выключателя), развертывание пропускается, и рабочий процесс не считается неудачным.
Развертывание выполняется только после того, как
scripts/verifyDb.mjsпроверит минимальное количество записей, целостность индексов и отсутствие резкого уменьшения по сравнению с предыдущим запуском. Это предотвращает перезапись корректных данных частично неудачными результатами.
Выключатель: Установите переменную репозитория SMU_CRAWLER_DISABLED в true, чтобы остановить сбор.
Ручной запуск возможен на вкладке Actions → crawl → Run workflow, опция force позволяет обойти временные ограничения.
Данные и лицензия
Исходный код: MIT
Данные нормативных документов: Авторские права принадлежат Университету Санмён и не подпадают под действие лицензии MIT. Для соблюдения границ лицензии данные не фиксируются в репозитории, а распространяются отдельно в виде ресурсов релиза. → NOTICE.md
Контакты
Если представители Университета Санмён желают запросить корректировку или прекращение работы, пожалуйста, сообщите об этом через Issues. Мы оперативно отреагируем.
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