dongguk-rule-mcp
This server allows AI assistants to search, retrieve, and analyze Dongguk University's regulations from rule.dongguk.edu.
Search regulations by keyword (title/full-text) with campus filtering using
search_rule.Deep-search with automatic extraction of relevant articles using
search_rule_deep.Retrieve full rule content as markdown (optionally filtered by article/chapter/keyword) with
get_rule_content.View a rule's table of contents via
get_rule_toc.List revision history with
list_rule_history.Recommended:
lookup_dongguk_rulefor one-shot comprehensive search and original document retrieval (note: may not be in the current tool schema).Compare two versions of a rule with
compare_rule_versions(also may not be available in schema).Supports HTTP mode for integration with remote clients like Notion AI and Claude Desktop.
Returns structured JSON with error codes for programmatic use.
Enables custom Notion AI agents to interact with Dongguk University's rule management system using the MCP server's tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dongguk-rule-mcp동국대학교 장학 규정 검색해줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
동국 규정 MCP
동국대학교 구성원이 AI에서 공식 통합규정관리시스템의 규정·조문·별표·개정 이력을 찾는 읽기 전용 MCP 서버입니다. v0.10.0의 기본 rules 프로필은 공개 규정용이며, 내부 재무지식 기능은 별도 finance 프로필로 선택합니다.
구성원 시작 페이지 · 상세 사용 가이드 · 운영 가이드 · CoP 평가 가이드 · GitHub 릴리스
시작하기
방법 | 준비 | 연결 |
공용 서버 | 원격 MCP 지원 앱, 운영자가 개인/그룹별로 발급한 인증정보 |
|
내 PC | Node.js 20.19 이상, 로컬 MCP 지원 앱 | 아래 GitHub 릴리스 설치, 공유 토큰 불필요 |
공용 연결의 인증정보는 운영자에게 받습니다. 기존 관리자 토큰을 전 구성원에게 공유하지 않습니다. 앱·요금제·기관 정책별 연결 가능 여부는 실제 환경에서 확인해야 합니다.
개인 설치
npm 레지스트리는 현재 미발행입니다. GitHub의 고정 버전 패키지로 설치합니다.
npm install -g https://github.com/buenosiempre-cmd/dongguk-rule-mcp/releases/download/v0.10.0/dongguk-rule-mcp-0.10.0.tgz
dongguk-rule-mcp --version
dongguk-rule-mcp --doctor --jsontgz를 내려받아 npm install -g ./dongguk-rule-mcp-0.10.0.tgz로 설치해도 됩니다. 설치 권한이 제한된 기관 PC에서는 직접 실행 방법 또는 공용 연결을 확인하세요.
사용할 앱의 설정 예시를 출력합니다. 아래 중 하나를 선택해 기존 MCP 설정에 추가한 뒤 앱을 완전히 종료하고 다시 실행합니다.
dongguk-rule-mcp --print-config codex
dongguk-rule-mcp --print-config claude
dongguk-rule-mcp --print-config cursor출력은 현재 Node와 설치 경로를 사용하며 앱 설정을 직접 변경하지 않습니다. 패키지를 이동·삭제한 경우 새 경로에서 설정을 다시 출력합니다. --doctor --json은 오프라인 설치 점검이고, --doctor --json --live는 대표 공개 규정 조회를 추가합니다. 설치 진단만으로 앱 연결·모든 원문·업무 적용이 검증되지는 않습니다.
첫 질문
동국 규정 MCP의
get_service_info로 버전과 도구를 확인해줘. 이어서lookup_dongguk_rule로 출장 관련 규정을 찾아줘. 소속·캠퍼스는 [입력], 신분은 [입력], 업무 기준일은 [YYYY-MM-DD]야. 정확한 규정명·LAW_ID·HISTORY_ID·조문/별표·원문 링크를 보여주고, 적용범위·시행일·표의 행과 단위를 확인하기 전 금액이나 전결권자를 확정하지 마.
Related MCP server: hansung-university-regulation-mcp
공개 규정 도구 — 기본 10개
도구 | 용도 |
| 버전·프로필·도구 범위·이용 안내 확인 |
| 기본 조회: 자연어/규정명 검색 → 개정본 → HWP 조문·별표 발췌; |
| 제목·전문으로 규정 후보 목록 검색 |
| 선택한 규정의 본문·조문·장·키워드 조회 |
| 목차 조회 |
| 개정 이력 조회 |
| 기준일 이전 개정본 후보와 부칙의 명시 시행일 대조 |
| 같은 규정의 HTML 조문과 HWP 별표·서식 추출 텍스트 비교 |
| 비식별 문장의 규정명·조문·제목·항 인용 실존 점검 |
| 여러 규정의 전문과 관련 조문 탐색 |
기본 단일 조회에서 후보가 모호하면 AMBIGUOUS_RULE과 후보 목록을 반환합니다. 제목·적용범위를 확인한 뒤 후보의 LAW_ID를 lookup_dongguk_rule의 law_id로 보내 선택합니다. 관련 없는 첫 검색 결과를 업무 근거로 확정하지 않습니다.
캠퍼스 자동필터는 없습니다. 공식 화면의 LAWGROUP은 캠퍼스 구분이 아닌 문서 종류입니다. 잘못된 seoul=1 / wise=2 매핑을 제거했습니다. campus는 업무 맥락으로 보존하고 전체 통합목록을 검색하며 filterApplied:false를 표시합니다. 서울·WISE·법인 등 소속과 교원·직원·학생 등 대상의 적용범위는 원문에서 확인해야 합니다. 공식 검색 화면, 통합 규정목록 — 2026-09-08 확인.
근거의 범위와 한계
시점: 최신 연혁은 최대 10분 캐시합니다.
applicable_rule은 개정일을 바탕으로 후보를 찾으며 시행일·경과조치·소급 적용까지 최종 확정하지 않습니다.원문 품질: HWP 추출 실패·HTML 대체·빈 본문·발췌 잘림·검색어 미일치를 구분합니다. 병합 셀·그림·추출되지 않은 내용은 원문 대조가 필요합니다. 공식 API가 아닌 웹 원문 파싱이므로 사이트 변경의 영향을 받습니다.
개정 비교:
include_appendices:true가 기본입니다. HTML 조문 결과와 HWP 별표·서식의 추출 텍스트 비교를 별도로 반환합니다. 표의 의미·셀 구조·첨부파일·법적 적용성의 완전한 비교는 아닙니다. 별표를 식별하지 못하거나 조회에 실패하면 부분 상태를 남기며 “변경 없음”으로 단정하지 않습니다. HTML만 비교하려면include_appendices:false를 지정합니다.인용: 인용의 실존 확인과 해당 업무의 적용 적합성은 다릅니다. 검색 0건·확인 필요·부분 조회는 검증 통과가 아닙니다.
업무와 데이터: 공개
rules는 로그인 쿠키와 내부 지식팩을 사용하지 않습니다. 개인별 급여·계좌·학생기록·인증정보를 입력하지 않습니다. 신고·지급·결재 또는 외부 발송을 수행하지 않습니다.
모든 도구는 읽기용 Markdown content와 기계용 structuredContent를 함께 반환합니다. 자동화에서는 ok, data, error.code와 개별 원문의 경고·부분 상태를 함께 확인합니다. 규정명·LAW_ID·HISTORY_ID·조문/별표 위치·기준일·조회일·원문 URL을 기록하면 근거를 다시 확인할 수 있습니다.
공용 서버와 선택 기능
HTTP는 stateless Streamable HTTP이며 MCP 경로는 POST 요청을 사용합니다.
경로 | 범위 |
| 인증정보를 포함하지 않는 구성원 안내 페이지 |
| 서버 프로필과 무관하게 공개 규정 10개 도구, 설정한 인증 적용 |
| 운영자가 지정한 프로필의 도구, 기존 연결 경로 |
| 프로세스·요청 수용 상태; 원문 조회 성공을 의미하지 않음 |
| 관리용 인증이 필요한 집계 운영 상태 |
운영자가 개인 또는 그룹별 자격증명을 발급·회수하고 만료·허용 경로를 관리합니다. 등록 파일은 SHA-256 해시를 보관하며 --token-file 또는 DONGGUK_MCP_TOKEN_FILE로 지정합니다. 설정 예시와 발급 명령은 운영 가이드에 있습니다. 원격 노출에는 HTTPS와 인증을 사용합니다.
# 접근제한 운영 폴더의 토큰 등록 파일을 지정
dongguk-rule-mcp --http --profile rules --host 127.0.0.1 --port 3845 --token-file /secure/dongguk/tokens.json공용 서버는 Mac mini에서 운영되며 잠자기·전원·인터넷·터널·공식 원문 서버 상태에 따라 중단될 수 있습니다. 전교 동시 이용 규모·기관 SSO·모든 구성원의 앱 연결·현업 시간절감은 별도 검증 대상이며, 이 릴리스가 전원 계정 개통이나 가용성 SLA를 의미하지 않습니다.
--profile finance 또는 DONGGUK_MCP_PROFILE=finance를 선택하면 get_finance_context, get_finance_evidence, search_finance_handbook, review_finance_case가 추가되어 14개 도구가 됩니다. 검토한 비식별 지식팩을 DONGGUK_FINANCE_PACK_PATH로 별도 연결해야 합니다. 법령 연계와 로그인 쿠키도 선택 프로필의 운영 설정으로 관리합니다. 내부 자료는 공개 저장소·패키지에 포함하지 않습니다.
소스 실행과 검증
git clone --branch v0.10.0 https://github.com/buenosiempre-cmd/dongguk-rule-mcp.git
cd dongguk-rule-mcp
npm ci
npm test
npm run test:live
node src/index.js --doctor --json
npm pack --dry-run명령 | 확인 범위 |
| 파서·입력·근거·MCP·HTTP·프로필 등 오프라인 회귀 |
| 새 MCP 프로세스에서 공식 원문 조회·연혁·별표 등 대표 경로 |
| 학사·인사·회계 등 대표 업무 규정의 LAW_ID 직접조회·최신 연혁·본문 연결 확인 |
| 설치와 도구 등록; |
| 로컬 HTTP 부하 측정; 전교 운영 용량이나 원문 서버 SLA 검증은 아님 |
| 운영자용 개인/그룹 자격증명 발급 도구 사용법 |
실원문 검사는 원문 서버에 접근 가능한 네트워크가 필요합니다. HTTP 오류만으로 특정 IP 차단을 단정하지 않습니다. 자동 검사와 현업 효과는 구분하고, 실제 앱·캠퍼스·직군별 평가는 빈 평가 양식으로 기록합니다.
추가 설정: DONGGUK_RULE_ALIASES는 부서별 규정 별칭 JSON, DONGGUK_MCP_NO_CACHE=1은 디스크 캐시 비활성화입니다. 나머지 실행 옵션은 dongguk-rule-mcp --help와 운영 가이드를 확인하세요.
라이선스·기여
MIT. 원본 Python 구현: 서준호. Node.js MCP 포팅·운영 개선: 오승훈. korean-law-mcp에서 영감을 받았습니다.
GitHub Issues에 버전·비식별 재현 질문·오류코드를 남겨주세요. 개인 정보·인증값·내부 문서를 첨부하지 않습니다.
Available Tools
10 toolsapplicable_ruleARead-onlyIdempotent
기준일(date) 이전에 개정된 동국대학교 규정 후보를 찾아, 해당 시점 본문과 현행 대비 변경 요약을 반환합니다. 소급 업무·감사 대응·과거 지급기준 확인용. HISTORY_ID를 몰라도 날짜만으로 조회됩니다. 개정일과 실제 시행일이 다를 수 있음을 항상 안내합니다. 최신 규정 질문에는 lookup_dongguk_rule을 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | 기준일. YYYY-MM-DD / YYYY.MM.DD / YYYYMMDD. 예: 2024-03-15 | |
| law_id | No | LAW_ID. rule_keyword 대신 사용 가능 | |
| article | No | 특정 조문만. 예: 15, 제10조의2, 부칙 제2조 | |
| max_changes | No | 변경 요약 최대 조문 수. 기본 10, 최대 30 | |
| rule_keyword | No | 규정명. law_id가 있으면 생략 가능. 예: 여비규정 | |
| compare_with_current | No | 현행 대비 변경 요약 포함 여부 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that it returns 'candidate' rules (implying possible multiple matches) and always notifies that revision date and effective date may differ. It also mentions the change summary behavior when compare_with_current is true, going beyond the basic read-only and idempotent annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, followed by use cases and a note. It does not contain redundant information and is well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown here) and the thorough parameter explanations, the description is complete for an agent to use the tool. It covers all necessary aspects: what it does, when to use it, key caveats, and the primary alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters are described with meaningful context beyond the schema: date format, the relationship between law_id and rule_keyword, specific article examples, max_changes default and limit, and the boolean compare_with_current. The description also explains that date can be used without knowing HISTORY_ID, adding semantic clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns candidate rules revised before a base date, along with the text at that time and a summary of changes. It also explicitly distinguishes from lookup_dongguk_rule for latest rules, making its purpose distinct among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides specific use cases (retroactive work, audit responses, checking past payment standards) and states when not to use it (for latest rules, use lookup_dongguk_rule). However, it does not mention other alternatives like compare_rule_versions or list_rule_history, but the primary scenarios are well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_rule_versionsARead-onlyIdempotent
같은 규정의 두 HISTORY_ID를 조문 단위로 비교합니다. to_history_id를 생략하면 최신 개정본과 비교합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| law_id | Yes | LAW_ID | |
| article | No | 선택 조문. 예: 제10조의2, 부칙 제2조 | |
| max_changes | No | 본문에 표시할 최대 변경 조문 수. 기본 20, 최대 50 | |
| to_history_id | No | 비교 종료 HISTORY_ID. 생략하면 최신 | |
| from_history_id | Yes | 비교 시작 HISTORY_ID | |
| include_appendices | No | HWP 별표·서식 텍스트도 비교(기본 true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the main behavioral characteristics. The description adds a small detail about comparing by article units but does not mention side effects, permissions, or other behavioral aspects beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two short sentences—with the primary action stated first and the key optional behavior immediately following. No unnecessary words or redundant explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a read-only comparison tool, especially since an output schema exists (though not shown) to define the return structure. It lacks only a brief note about the nature of the comparison result (e.g., 'returns a list of changed articles'), but this is not a critical gap given the scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all six parameters individually described. The tool description adds a minor clarification about 'to_history_id' omission, but otherwise relies on the schema. Given complete schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('compare'), resource (two HISTORYs of the same regulation), and scope (at the article level). It implicitly distinguishes from sibling tools like list_rule_history or get_rule_content by focusing on the comparison of two versions, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on the key optional parameter 'to_history_id' (if omitted, compares with the latest revision), which is essential for correct usage. However, it does not explicitly contrast with sibling tools or state when to prefer this tool over alternatives, leaving some implicit inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rule_contentARead-onlyIdempotent
LAW_ID를 이미 알고 특정 조·장만 볼 때 사용하는 보조 도구. 별표·금액표가 필요하면 lookup_dongguk_rule을 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| grep | No | 키워드 포함 조문 | |
| head | No | 상위 N줄 | |
| law_id | Yes | LAW_ID | |
| article | No | 특정 조문. 예: 48, 제48조, 제10조의2, 부칙 제2조 | |
| chapter | No | 특정 장만 | |
| history_id | No | HISTORY_ID (생략=최신) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent behavior; the description adds useful behavioral scope by indicating that only article/chapter content is returned and that tables are not included. It does not detail edge-case behavior like grep/head limits, but those are visible in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence plus one alternative pointer, with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, complete parameter schema, and annotations give enough context to call the tool correctly. It does not describe the return payload, but an output schema is indicated as present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the input schema with examples, so the tool description adds no additional parameter-level meaning beyond the overall article/chapter scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific use case: retrieve specific articles/chapters when LAW_ID is already known, and it explicitly points to lookup_dongguk_rule for tables/amount tables, distinguishing it from a key sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear when-to-use guidance (known LAW_ID, specific article/chapter view) and explicit when-not/alternative guidance for schedules and amount tables with lookup_dongguk_rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rule_tocARead-onlyIdempotent
규정 목차(장·절·조) 빠른 조회.
| Name | Required | Description | Default |
|---|---|---|---|
| law_id | Yes | ||
| history_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only and idempotent behavior, and the description adds no conflicting or misleading information. It provides a hint that the operation is fast and focused, which is consistent with the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words or repetition. It efficiently conveys the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists (so return values are presumably covered), the description omits any parameter context. The overall picture is mostly complete for the intended use, but the missing parameter details prevent full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two parameters (law_id, history_id) but the description gives zero explanation of their meaning or usage. Since schema description coverage is 0%, the description fails to compensate, leaving the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the table of contents of a regulation, specifying the structure (chapters, sections, articles). It is distinct from sibling tools that handle content, search, history, or comparisons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'quick lookup' implies the appropriate use case—retrieving the TOC rather than detailed content or deep search. While not explicitly comparing to alternatives, the tool's purpose is unambiguous enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_infoARead-only
동국 규정 MCP 버전·공통/내부 기능 범위·캠퍼스 검색 한계·입력 안내를 확인합니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('확인합니다' - check), consistent with the readOnlyHint annotation. It describes what the tool provides without ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence covers the tool's function without redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and simple informational output, the description adequately covers the scope. It could mention return format, but the provided information is sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters are defined, so the dimension is trivially satisfied. The description indicates that no input is needed, which is consistent with the empty parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool checks Dongguk regulation MCP version, common/internal function scope, campus search limitations, and input guidance, giving a specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lacks explicit guidance on when to use this tool versus the sibling tools, and does not mention any prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rule_historyBRead-onlyIdempotent
규정 개정 연혁 목록 조회.
| Name | Required | Description | Default |
|---|---|---|---|
| law_id | Yes | LAW_ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, and idempotentHint, which cover the main behavioral aspects. The description adds no further behavioral details, but given the annotations provide solid transparency, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of a single clear sentence in Korean. It avoids any unnecessary words or redundancy, making it easy to parse and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides the core purpose and the required parameter, but it lacks context about the output format, any sorting or filtering options, or how the history is structured. Given the simplicity of the operation, it is adequate but not highly comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the single parameter 'law_id' with the description 'LAW_ID', which merely repeats the name and gives no additional semantic meaning. The tool description also does not elaborate on the parameter. Schema coverage is 100%, so the baseline is 3, but the lack of meaningful description prevents a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists regulation amendment history, using the specific verb '조회' (inquiry/list) and resource '규정 개정 연혁' (regulation amendment history). It distinguishes from siblings like 'get_rule_content' or 'compare_rule_versions' by focusing on history, though it could be slightly more explicit about what the history contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus its siblings. It only states what it does, not when it is appropriate. Since there are multiple similar rule-related tools, explicit usage conditions would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_dongguk_ruleARead-onlyIdempotent
동국대학교 규정 질문의 기본·우선 도구. 자연어 query 또는 짧은 rule_keyword를 받아 규정 검색→최신 원문 HWP→관련 조문·별표(금액표 포함)를 한 번에 반환합니다. 근거가 충분하면 중복 조회를 생략하세요. partial·모호한 후보·적용범위 미확인 시 추가 확인이 필요합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 전체 자연어 질문. 예: 대전 출장 여비규정의 최신 개정일, 철도운임, 일비, 숙박비를 알려줘 | |
| terms | No | 찾을 핵심 명사. 쉼표로 구분. query에 핵심 명사가 있으면 생략 가능. 예: 국내, 철도운임, 숙박비, 일비 | |
| campus | No | 업무 캠퍼스 맥락 all/seoul/wise. 공식 목록에는 캠퍼스 필터가 없어 전체 검색 후 적용범위를 확인합니다. | all |
| law_id | No | 선택 LAW_ID. 모호한 후보를 선택한 후 직접 원문·별표 조회 | |
| max_chars | No | 규정별 최대 반환 글자 수. 기본 12000, 최대 30000 | |
| max_rules | No | 조회할 규정 수. 기본 1, 최대 3 | |
| max_sections | No | 규정별 관련 블록 수. 기본 4, 최대 12 | |
| rule_keyword | No | 선택 입력. 규정명 또는 짧은 검색어. query가 있으면 생략 가능. 예: 여비규정, 보수, 위임전결 | |
| include_history | No | 최근 개정 연혁 5건 포함 여부 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint, and the description mentions no side effects or destructive actions, so it is consistent. However, it does not add extra behavioral details beyond the annotations, which is acceptable given the lower bar for annotated tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that clearly convey the tool's purpose and usage guidance. It is well-structured and avoids unnecessary detail, making it easy for an agent to grasp quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema is available and the description mentions returning articles and annexes (including amount tables), the core behavior is covered. It also includes guidance on when to perform additional checks, making it fairly complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 9 parameters have schema descriptions with 100% coverage, including defaults and examples. The tool description itself does not add further meaning to parameters, but the existing schema documentation is sufficient, so a baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it is the primary tool for Dongguk University regulation questions, taking natural language queries or keywords and returning search results with original text and annexes. The verb 'return' and resource specification make the purpose unambiguous, distinguishing it as a high-level search tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to skip duplicate queries ('if basis is sufficient, omit duplicate queries') and when additional verification is needed (partial, ambiguous candidates, or unconfirmed applicability). This gives clear usage context, though it doesn't explicitly name sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ruleARead-onlyIdempotent
규정 후보 목록만 필요할 때 사용하는 보조 도구. 일반적인 동국대학교 규정 질문은 lookup_dongguk_rule을 먼저 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| campus | No | 업무 캠퍼스 맥락 all/seoul/wise. 공식 목록에는 캠퍼스 필터가 없어 전체 검색 후 적용범위를 확인합니다. | all |
| offset | No | ||
| keyword | Yes | 검색어 | |
| full_text | No | 전문검색 여부 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is clear. The description adds that it is an auxiliary tool returning only candidate lists, which is helpful, but it does not disclose any additional behavior such as pagination, result ordering, or limitations of the search. With annotations covering the main traits, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two short sentences that front-load the core purpose and usage guidance. There is no redundant phrasing or unnecessary detail, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with an output schema present, the description is largely complete: it covers the tool's role, its primary use case, and its relationship to the main lookup tool. It does not mention the sibling search_rule_deep, but that is not essential given the clear scope. The presence of an output schema also relieves the description from explaining return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention any parameters at all. The schema provides descriptions for campus, keyword, and full_text (60% coverage), but limit and offset are undocumented in both the schema and the description. Since the description adds zero parameter-level meaning and only partially compensates for the coverage gap, a 2 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: it returns a list of rule candidates only, and explicitly contrasts itself with lookup_dongguk_rule for general rule questions. This clearly distinguishes it from the main lookup tool and from other siblings like search_rule_deep by implying it is the lightweight candidate-search variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-to-use: '규정 후보 목록만 필요할 때' (when only a candidate list is needed) and a direct alternative: 'lookup_dongguk_rule을 먼저 사용하세요' (use lookup_dongguk_rule first for general questions). This provides both positive and negative usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_rule_deepARead-onlyIdempotent
여러 규정의 전문을 탐색해야 할 때만 사용하는 보조 도구. 단일 규정 질문에는 lookup_dongguk_rule을 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| query | Yes | ||
| per_doc | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the behavioral traits. The description adds no extra behavioral context beyond these, so it meets the baseline but does not exceed it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using two short sentences to convey the purpose and usage conditions without any unnecessary information or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides enough context to differentiate this tool from siblings like search_rule and lookup_dongguk_rule by highlighting the 'full text' and 'multiple regulations' aspects. It does not mention output format, but that is not required for basic usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for the parameters (query, top, per_doc), and the description does not explain their meanings or expected formats. There is essentially no guidance on how to use these parameters, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching the full text of multiple regulations. It also distinguishes itself from lookup_dongguk_rule, which is for single regulation questions, making the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage conditions: use only when searching full text of multiple regulations, and advises using lookup_dongguk_rule for single regulation questions. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_rule_citationsARead-onlyIdempotent
기안문·품의서·공문·AI 답변 텍스트에 인용된 동국대학교 규정 조문을 실제 규정집과 대조 검증하는 환각 게이트. 「규정명」 제N조(제목) 제N항 표기를 추출해 규정 실존, 조문 실존(본칙 존재 범위 안내), 조문 제목 일치, 항 번호까지 확인합니다. 결재 전 인용 점검에 사용하세요. 규정 내용 질문에는 lookup_dongguk_rule을 사용하세요.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 검증할 전체 텍스트 (20,000자 이하). 예: 품의서 본문 | |
| campus | No | 업무 캠퍼스 맥락 all/seoul/wise. 공식 목록에는 캠퍼스 필터가 없어 전체 검색 후 적용범위를 확인합니다. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | 도구 실행 성공 여부 |
| data | No | 성공 시 구조화 결과 |
| tool | Yes | 실행한 도구 이름 |
| error | No | 실패 시 구조화 오류 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and open-world behavior, and the description adds concrete behavioral detail: it extracts rule/article/clause citations, checks existence, article title match, clause number, and explains campus scope handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense, with no redundant wording. It efficiently combines purpose, usage guidance, and behavioral details in two sentences plus clear parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description provides sufficient context: purpose, usage boundaries, parameter behavior, and relationship to sibling tools. It does not need to restate return values and covers the operational nuances relevant to an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the descriptions add meaningful details: text has an explicit length limit and example, while campus explains its default, allowed values, and the behavior that campus is not an official filter and requires post-search scope verification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: verifying citations to Dongguk University regulations in documents/AI responses against the actual rulebook. It also distinguishes itself from lookup_dongguk_rule by explicitly directing content questions to that sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool for citation checks before approval and explicitly says to use lookup_dongguk_rule for rule content questions, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.10.0- Added
applicable_rule - Added
compare_rule_versions - Changed
get_rule_content4 fields changed- changed
Input schema / properties / article / descriptionPrevious value: -"특정 조문만"New value: +"특정 조문. 예: 48, 제48조, 제10조의2, 부칙 제2조" - added
Input schema / properties / article / oneOfAdded value: +[ + { + "type": "number" + }, + { + "type": "string" + } +] - removed
Input schema / properties / article / typeRemoved value: -"number" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "성공 시 구조화 결과", + "type": "object" + }, + "error": { + "description": "실패 시 구조화 오류", + "properties": { + "code": { + "type": "string" + }, + "details": { + "type": "object" + }, + "hint": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "ok": { + "description": "도구 실행 성공 여부", + "type": "boolean" + }, + "tool": { + "description": "실행한 도구 이름", + "type": "string" + } + }, + "required": [ + "ok", + "tool" + ], + "type": "object" +}
- Changed
get_rule_toc1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "성공 시 구조화 결과", + "type": "object" + }, + "error": { + "description": "실패 시 구조화 오류", + "properties": { + "code": { + "type": "string" + }, + "details": { + "type": "object" + }, + "hint": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "ok": { + "description": "도구 실행 성공 여부", + "type": "boolean" + }, + "tool": { + "description": "실행한 도구 이름", + "type": "string" + } + }, + "required": [ + "ok", + "tool" + ], + "type": "object" +}
- Added
get_service_info - Changed
list_rule_history1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "성공 시 구조화 결과", + "type": "object" + }, + "error": { + "description": "실패 시 구조화 오류", + "properties": { + "code": { + "type": "string" + }, + "details": { + "type": "object" + }, + "hint": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "ok": { + "description": "도구 실행 성공 여부", + "type": "boolean" + }, + "tool": { + "description": "실행한 도구 이름", + "type": "string" + } + }, + "required": [ + "ok", + "tool" + ], + "type": "object" +}
- Added
lookup_dongguk_rule - Changed
search_rule2 fields changed- changed
Input schema / properties / campus / descriptionPrevious value: -"all/seoul/wise"New value: +"업무 캠퍼스 맥락 all/seoul/wise. 공식 목록에는 캠퍼스 필터가 없어 전체 검색 후 적용범위를 확인합니다." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "성공 시 구조화 결과", + "type": "object" + }, + "error": { + "description": "실패 시 구조화 오류", + "properties": { + "code": { + "type": "string" + }, + "details": { + "type": "object" + }, + "hint": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "ok": { + "description": "도구 실행 성공 여부", + "type": "boolean" + }, + "tool": { + "description": "실행한 도구 이름", + "type": "string" + } + }, + "required": [ + "ok", + "tool" + ], + "type": "object" +}
- Changed
search_rule_deep1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "성공 시 구조화 결과", + "type": "object" + }, + "error": { + "description": "실패 시 구조화 오류", + "properties": { + "code": { + "type": "string" + }, + "details": { + "type": "object" + }, + "hint": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "ok": { + "description": "도구 실행 성공 여부", + "type": "boolean" + }, + "tool": { + "description": "실행한 도구 이름", + "type": "string" + } + }, + "required": [ + "ok", + "tool" + ], + "type": "object" +}
- Added
verify_rule_citations
5 tool updates
v0.4.0- First observed
get_rule_content - First observed
get_rule_toc - First observed
list_rule_history - First observed
search_rule - First observed
search_rule_deep
TDQS
Scored across 10 tools
The toolset clearly designates lookup_dongguk_rule as the primary tool and provides auxiliary tools with explicit usage conditions. Some overlap exists among search_rule, search_rule_deep, and lookup_dongguk_rule, but the descriptions route agents effectively.
Most names follow a clear verb_noun snake_case pattern (get_rule_toc, list_rule_history, compare_rule_versions). Deviations such as lookup_dongguk_rule, search_rule_deep, and applicable_rule are minor and remain recognizable.
Ten tools is well-scoped for the rule/law domain: search, retrieval, TOC navigation, history, comparison, citation verification, and time-specific applicability are each represented without unnecessary redundancy.
The toolset covers the full rule-inquiry lifecycle: finding candidates, retrieving current content, navigating structure, viewing historical versions, comparing revisions, verifying citations, and checking past applicability. No critical dead ends are apparent.
Maintenance
Related MCP Connectors
Korean fact-verification tools for AI agents: business registration, address, DART, apt prices, laws
Full-text search over FSS/FSC accounting supervision documents for Korean accounting professionals
Full-text search over K-IFRS/K-GAAP standards and KASB accounting Q&A for Korean accountants
Curated Korean AEC expertise for AI agents: KDS·KCS·KS, building law, practice, and the reasoning.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI to search and retrieve South Korean legal information from the National Law Information Center. It allows users to look up specific laws, articles, and detailed legal provisions using natural language queries.130-
- AlicenseAqualityDmaintenanceEnables searching and retrieving regulations from the Hansung University regulation management system.49 npmMIT
- AlicenseAqualityDmaintenanceMCP server to search and retrieve regulations from 14 Korean universities' regulation management systems. Supports querying, listing, and viewing full text or specific articles.48 npm2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI programs to search and retrieve approved public regulations with citations, supporting PDF, HWP, HWPX, and DOCX formats.43MIT