dongguk-rule-mcp
Enables AI to search and retrieve regulations from Dongguk University's integrated rule management system.
README
dongguk-rule-mcp
동국대학교 통합규정관리시스템(rule.dongguk.edu)을 AI에서 직접 검색·조회하는 MCP 서버.
korean-law-mcp에서 영감. 공무원에게 korean-law-mcp가 있다면, 대학 교직원에게는 dongguk-rule-mcp가 있다.
도구 (5개)
| 도구 | 설명 |
|---|---|
search_rule |
키워드 검색 (제목/전문, 캠퍼스 필터) |
get_rule_content |
규정 본문 마크다운 조회 (조문/장/키워드 필터) |
get_rule_toc |
목차만 빠르게 조회 |
list_rule_history |
개정 연혁 목록 |
search_rule_deep |
전문검색 → 본문에서 조문까지 자동 추출 |
요구사항
- Node.js 18 이상 (
node --version으로 확인) - 국내 IP (rule.dongguk.edu가 해외/데이터센터 IP를 503 차단)
설치 — 4가지 방법
방법 A: GitHub에서 바로 (권장 — 한 줄)
Claude Desktop 설정에 아래만 추가하면 설치·실행이 자동으로 됩니다 (Node 18+ 필요):
{
"mcpServers": {
"dongguk-rule": {
"command": "npx",
"args": ["-y", "github:buenosiempre-cmd/dongguk-rule-mcp"]
}
}
}
방법 B: tarball 직접 설치
Releases에서 tgz 다운로드 후:
npm install -g ./dongguk-rule-mcp-0.4.0.tgz
dongguk-rule-mcp --version # 0.4.0 나오면 성공
방법 C: 소스 폴더에서
git clone https://github.com/buenosiempre-cmd/dongguk-rule-mcp.git
cd dongguk-rule-mcp
npm install
npm test # 109개 자체 검증
node src/index.js --version
방법 D: npm 레지스트리 (publish 후)
npm install -g dongguk-rule-mcp
Claude Desktop 설정
claude_desktop_config.json 위치:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
글로벌 설치(방법 A/C) 시:
{
"mcpServers": {
"dongguk-rule": {
"command": "dongguk-rule-mcp"
}
}
}
소스 폴더(방법 B) 시:
{
"mcpServers": {
"dongguk-rule": {
"command": "node",
"args": ["/절대경로/dongguk-rule-mcp/src/index.js"]
}
}
}
설정 후 Claude Desktop 완전 종료 → 재시작.
HTTP 모드 — Notion 커스텀 에이전트 연동
Notion 등 원격 MCP 클라이언트는 공개 URL만 연결할 수 있습니다. rule.dongguk.edu가 해외/데이터센터 IP를 차단하므로, 국내 IP의 상시 가동 머신(예: Mac Mini)에서 HTTP 모드로 실행하고 Cloudflare Tunnel로 URL을 노출하는 구성을 권장합니다.
1) 서버 실행 (Mac Mini)
dongguk-rule-mcp --http --port 3845 --token '아무-긴-비밀문자열'
curl -s http://127.0.0.1:3845/health # {"status":"ok",...} 확인
--token 생략 시 무인증(테스트용) — 공개 노출 시엔 반드시 설정하세요.
옵션: --host 0.0.0.0, env DONGGUK_MCP_TOKEN / DONGGUK_MCP_PORT.
2) 공개 URL (Cloudflare Tunnel)
brew install cloudflared
cloudflared tunnel --url http://127.0.0.1:3845
# → https://xxxx.trycloudflare.com 발급 (임시 URL)
# 상시 운영은 named tunnel + 도메인 연결 권장
3) Notion 설정
- 워크스페이스 관리자: 설정 → Notion AI → AI 커넥터 → Enable Custom MCP servers
- 커스텀 에이전트 → Tools & Access → Add connection → Custom MCP server
- URL
https://xxxx.trycloudflare.com/mcp+ 표시 이름 + (지원 시) Bearer 토큰 → Save - 에이전트가 쓸 도구만 선택적으로 켜기
수동 점검 (curl)
curl -s -X POST https://xxxx.trycloudflare.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'Authorization: Bearer 아무-긴-비밀문자열' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
참고: HTTP 모드는 stateless(POST 전용)이며 GET /health로 모니터링합니다.
Notion 연결 UI가 Bearer 헤더를 지원하지 않으면 토큰 없이 기동하되 URL을 비공개로 관리하세요.
사용 예시
- "동국대 보수규정 검색해줘"
- "LAW_ID 491 본문 보여줘"
- "그 규정에서 퇴직금 관련 조문만" (grep 필터)
- "제5장만 보여줘" (chapter 필터)
- "이 규정 개정 이력 알려줘"
검증
오프라인 (네트워크 불필요 — 어디서든 동일 결과)
npm test
5개 스위트 109개: 파싱(39) + 유틸(22) + 엣지케이스(10) + MCP 프로토콜(19, stdout 순수성 포함) + HTTP(19, Streamable HTTP·Bearer 인증·stateless). 실제 HTML 픽스처 기반이라 국내/해외/CI 어디서든 통과해야 정상.
추가로 다음 설치 시나리오가 검증되었습니다: npm pack tarball(18kB) → 새 디렉토리
로컬 설치 → 설치된 bin으로 JSON-RPC 핸드셰이크(도구 5개·stdout 무오염), 글로벌
설치(npm i -g) 후 bin 실행, 설치본 내부 npm test 90개 통과(자급자족).
실서버 (국내 IP에서)
npm run test:live # 검색어 "재정"
npm run test:live -- --keyword 보수
rule.dongguk.edu에 실제 접속해 5개 도구를 호출. 503이면 "국내 IP에서 실행하라"고 안내 후 종료.
트러블슈팅
| 증상 | 원인 | 해결 |
|---|---|---|
HTTP 503 |
해외/데이터센터 IP 차단 | 가정·캠퍼스 등 국내망에서 실행 |
Cannot find module |
의존성 미설치 | 프로젝트 폴더에서 npm install |
EACCES (글로벌 설치) |
권한 부족 | sudo npm i -g ... 또는 nvm 사용 |
| Claude에 도구 안 보임 | config 오타/캐시 | JSON 문법 확인 후 Claude 완전 재시작 |
| 구버전 Node 에러 | Node <18 | engines 경고 확인, Node 18+ 설치 |
| 검색 0건 | 캠퍼스 코드 불일치 | campus="all"로 재시도 |
환경변수
| 변수 | 용도 |
|---|---|
DONGGUK_RULE_COOKIE |
비공개 규정 열람용 로그인 쿠키 주입 |
DONGGUK_MCP_NO_CACHE=1 |
디스크 캐시(~/.cache/dongguk-rule-mcp/) 비활성화 |
알려진 제약
- 캠퍼스 LAWGROUP 코드(seoul=1, wise=2)는 추정값 —
npm run test:live의 [4] 섹션 결과가 0행이면 브라우저 개발자도구 Network 탭에서LAWGROUP=실제 값 확인 필요. - 공식 API가 아닌 HTML 파싱이므로 사이트 개편 시 파서 갱신 필요. 그 경우 실제 HTML로
test/fixtures.js를 갱신하고npm test로 재검증.
크레딧
- 원본 Python 구현: 서준호
- Node.js MCP 포팅·하드닝·npm 배포 구조: 오승훈 (동국대 재무팀)
- 영감: korean-law-mcp (류승인, 광진구청)
라이선스
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。