Skip to main content
Glama

smu-rule-mcp

Servidor MCP no oficial que permite consultar las regulaciones del Sistema de Gestión de Regulaciones de la Universidad Sangmyung (rule.smu.ac.kr) desde un asistente de IA.

Busca a nivel de artículo: 301 regulaciones, 5,196 artículos, 2,029 anexos y formularios.

⚠️ Este proyecto es una herramienta no oficial, no afiliada a la Universidad Sangmyung. No cuenta con aprobación, patrocinio ni certificación. El contenido de las regulaciones oficiales debe verificarse siempre en la fuente original. Consulte NOTICE.md para más detalles.

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

Inicio rápido

Requiere Node.js 22 o superior (instale la versión LTS desde nodejs.org). Los comandos son los mismos en Windows, macOS y Linux.

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

Con un solo npm run setup se completan la instalación de dependencias, la compilación, la descarga de datos y el registro del cliente. Durante la ejecución, elija el cliente a registrar. El archivo de configuración se respalda automáticamente antes de modificarlo, y no se alteran otros servidores MCP ya registrados.

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

Una vez instalado, cierre completamente el cliente y vuelva a abrirlo. La configuración MCP se lee solo al iniciar el cliente.

Related MCP server: korean-law-mcp

Configuración por cliente

Este servidor funciona de forma local (stdio). El cliente inicia el proceso cuando lo necesita, por lo que no requiere un servidor ni cuenta adicionales.

Cliente

Soporte

Requisitos

Claude Desktop

npm run setup

Claude Code

npm run setup

Codex CLI

npm run setup -- --print y luego escribir TOML

Cursor / Windsurf, etc.

npm run setup

Claude Web (claude.ai)

No

Ver más abajo

ChatGPT (Web, app escritorio, Work)

No

Ver más abajo

Claude Desktop

npm run setup -- --client claude-desktop

Para hacerlo manualmente, edite directamente el archivo de configuración.

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

Se recomienda usar la ruta absoluta de node como command (which node / where node). Las aplicaciones GUI no heredan el PATH del shell, por lo que a veces no encuentran node. En rutas de Windows, escriba las barras invertidas duplicadas: "C:\\Users\\...".

Claude Code

npm run setup -- --client claude-code

Se registra en mcpServers de ~/.claude.json. El formato es igual que el de Claude Desktop. Si usa Claude Desktop junto con Claude Code, regístrelo solo en uno. La configuración de la aplicación de escritorio puede aplicarse también a la sesión de Claude Code, provocando un registro duplicado.

Codex CLI

Codex usa TOML. Agréguelo a ~/.codex/config.toml.

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

Puede ver la ruta con npm run setup -- --print.

Cursor · Windsurf, etc.

npm run setup -- --client cursor

Si el cliente usa el formato mcpServers, simplemente coloque el mismo JSON que el de Claude Desktop en su archivo de configuración correspondiente.

ChatGPT (Web · app de escritorio · Work)

Actualmente no se puede usar.

ChatGPT, incluyendo su aplicación de escritorio, solo admite servidores MCP remotos (dirección HTTPS) y no soporta servidores stdio locales que se ejecutan en su PC. Para registrarse en el modo de desarrollador de conectores, se necesita una dirección accesible desde Internet, y este proyecto no opera un servidor público.

Por la misma razón, tampoco se puede usar en Claude Web (claude.ai). Los clientes que se ejecutan en el navegador no pueden ejecutar programas en su PC.

En la familia ChatGPT, solo Codex CLI admite MCP local, por lo que puede usar ese. De lo contrario, se recomienda Claude Desktop o Claude Code. La instalación es sencilla y los archivos adjuntos se guardan directamente en su PC.

Nota: Este servidor incluye un modo que se ejecuta como HTTP si se le proporciona PORT. Está pensado para quienes quieran alojarlo ellos mismos; hasta que haya un servidor público, cada usuario debe implementar su propia conexión para clientes web. Si lo expone en una dirección pública, el download_form que accede al sistema original también quedará abierto, así que debe establecer restricciones de acceso.

Herramientas

Herramienta

Descripción

Acceso al servidor original

search_regulation

Búsqueda de texto completo a nivel de artículo (FTS5)

Ninguno

get_regulation_text

Consulta del texto completo de una regulación

Ninguno

list_regulations

Listado por categoría y departamento

Ninguno

get_recent_amendments

Información de las últimas modificaciones

Ninguno

list_repealed

Regulaciones derogadas

Ninguno

list_forms

Metadatos de anexos y formularios

Ninguno

download_form

Descarga de anexos/formularios en formato HWP

(solo la primera vez)

get_data_status

Punto de recolección y cantidad de la BD local

Ninguno

La principal ventaja de esta herramienta es que los resultados de búsqueda se especifican a nivel de artículo, no de regulación completa.

Puede preguntar de esta manera.

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

Estructura

Estructura nativa de GitHub con recolección y consulta separadas. No requiere un servidor en ejecución constante.

GitHub Actions (야간 크론)          사용자 기기 (stdio, 온디맨드)
  수집 → SQLite FTS 빌드     ──▶     Release에서 DB 내려받아 캐시
  → Release 애셋 업로드              · 검색/목록/전문 → 로컬 DB (원 서버 부담 0)
                                     · 별표 HWP → 필요 시에만 라이브 + 영구 캐시
  • Búsqueda, texto completo y metadatos se procesan desde la base de datos local, por lo que no se genera carga en el servidor original aunque aumenten los usuarios.

  • La única conexión real al servidor original es para la descarga de archivos HWP de anexos.

Actualización de datos

npm run update-data

La recolección se ejecuta automáticamente cada madrugada y los resultados se distribuyen como Release. Ejecute el comando anterior para recibir los datos más recientes. Puede verificar el momento de los datos actuales con get_data_status.

Descarga de anexos y formularios

Solo download_form se conecta al sistema original. El ID de serverfile es prácticamente una dirección de contenido, por lo que los archivos ya descargados se almacenan en caché permanente; si se solicita el mismo archivo de nuevo, no se usa la red. Si el contenido descargado no coincide con la firma de un documento de Hancom (por ejemplo, página de error), no se guarda y se trata como fallo.

El caché se almacena por ID, pero la copia que se entrega al usuario se coloca en una ubicación de fácil acceso con el nombre de archivo original. La ubicación de almacenamiento se determina en el orden: SMU_FORM_DIR > ~/Claude > ~/Downloads, y también se puede especificar directamente con output_dir al llamar a la herramienta.

El nombre de archivo original suele tener la forma <Anexo 1> (...), pero como < y > no se pueden usar en Windows, se guarda como [Anexo 1] (...). Se verifica para todos los 822 archivos (npm run check-filenames).

Variables de entorno

Variable

Significado

SMU_DB_PATH

Especifica la ruta de la base de datos de regulaciones

SMU_CACHE_DIR

Ubicación de la caché (por defecto: ~/.cache/smu-rule-mcp, en Windows: %LOCALAPPDATA%)

SMU_FORM_DIR

Ubicación donde colocar los anexos descargados

SMU_DATA_URL

Especifica la URL de distribución de datos

PORT

Si se especifica, ejecuta como servidor HTTP en lugar de stdio (para autoalojamiento)

SMU_CRAWLER_DISABLED

Interruptor de apagado del recolector

Solución de problemas

No se ven las herramientas Cierre completamente el cliente (⌘Q / desde la barra de tareas) y vuelva a abrirlo. La configuración se lee solo al iniciar.

"No se encuentra la base de datos de regulaciones" Ejecute npm run update-data. Es necesario descargar los datos la primera vez.

El servidor no se inicia solo en la aplicación GUI Cambie command de node a la ruta absoluta (which node / where node). Las aplicaciones GUI no heredan el PATH del shell.

Error de que no se puede usar node:sqlite Es una versión anterior a Node 22.5 o una que requiere una bandera. Se recomienda Node 24 o superior. npm run setup verifica esto al inicio.

Descargué un archivo de anexo pero no lo encuentro Verifique la ruta que download_form le indicó. El valor predeterminado es ~/Downloads. También puede especificar la ubicación deseada con output_dir.

Política de recolección

El sistema de destino no está diseñado para manejar tráfico automatizado a gran escala. Nuestro objetivo es mantener una carga equivalente a "1 usuario normal o menos", siguiendo las políticas a continuación. Los valores están fijados en código en src/crawler/config.ts y no deben modificarse arbitrariamente.

Elemento

Valor

Concurrencia

1 (procesamiento en serie, sin solicitudes paralelas)

Retardo entre solicitudes

2 segundos por defecto; 3 segundos para solicitudes pesadas (texto completo, adjuntos)

Aleatorización del retardo

Se añade un tiempo aleatorio al retardo anterior (máx. 1 segundo por defecto, máx. 2 segundos para solicitudes pesadas)

Reintentos

Solo para errores 5xx, timeouts y errores de red: 3 veces, espera 2s → 4s → 8s

429/503

Respetar Retry-After; si no está presente, esperar 60 segundos

Disyuntor

Si hay 5 fallos consecutivos o 3 timeouts acumulados, detenerse inmediatamente

Horario de recolección

Diariamente de 2:00 a 5:00 a.m. (KST)

User-Agent

UA honesto que incluye la dirección del repositorio (sin suplantación)

Archivos de anexos

Lazy: no se recopilan en lote, se reciben uno por uno a petición y se almacenan en caché permanente

Interruptor de apagado

Variable de entorno SMU_CRAWLER_DISABLED

Presupuesto de solicitudes: 1 recolección de texto inicial, luego incrementos diarios solo de cambios. Por política, no se realiza la descarga masiva de archivos de anexos.

Canalización de datos

La recolección la realiza .github/workflows/crawl.yml todos los días a las 02:00 KST.

이전 Release 복원 → 증분 수집 → 무결성 검증 → gzip → Release(data-latest) 배포
  • Primero se restaura la distribución anterior. Sin esto, cada ejecución sería una recolección completa, por lo que es un requisito previo para la recolección incremental (solo se vuelve a recolectar el texto completo de las regulaciones cuyas versiones han cambiado).

  • Si el recolector se detiene por sí mismo (fuera del horario, interruptor de apagado, disyuntor), se omite la distribución y el flujo de trabajo no se marca como fallido.

  • Solo se despliega después de que scripts/verifyDb.mjs verifique el número mínimo de registros, la consistencia de índices y la ausencia de una caída abrupta con respecto a la ejecución anterior. Esto evita que resultados parcialmente fallidos sobrescriban datos válidos.

Interruptor de apagado: establezca la variable de repositorio SMU_CRAWLER_DISABLED en true para detener la recolección.

La ejecución manual se puede realizar desde la pestaña Actions → crawlRun workflow, y se puede omitir la restricción horaria con la opción force.

Datos y licencia

  • Código fuente: MIT

  • Datos de regulaciones: Los derechos de autor pertenecen a la Universidad Sangmyung y no están cubiertos por la licencia MIT. Para mantener los límites de licencia, los datos no se confirman en el repositorio, sino que se distribuyen por separado como activos de Release. → NOTICE.md

Contacto

Si los representantes de la Universidad Sangmyung desean solicitar ajustes o la suspensión del funcionamiento, por favor comuníquense a través de Issues para una respuesta rápida.

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