Skip to main content
Glama

my-kifrs-mcp

K-IFRS/K-GAAP/감사기준서/질의응답(kifrs.com) + 감리지적사례/제재공시(fss.or.kr)를 감싼 개인용 MCP 서버.

왜 만들었나

기존 외부 ifrs MCP(mcp.ifrsnow.work)는 K-IFRS + 금감원 감리/제재 트랙 중심이라 K-GAAP과 감사기준서(ISA 번호)를 다루지 않는다. kifrs.com은 이 세 가지를 한 사이트에서 다루지만 공식 API가 없고 로그인이 필요한 React SPA라, JS 번들을 리버스엔지니어링해 내부 REST API를 직접 호출하는 방식으로 만들었다.

Related MCP server: Korean Law MCP

설치

npm install
npm run build

비밀번호는 .env나 코드 어디에도 저장하지 않는다. 첫 도구 호출 시 로그인이 안 되어 있으면 Puppeteer가 실제 Chromium 창을 띄우고, 사용자가 kifrs.com 화면에 직접 로그인한다. 세션은 ~/.my-kifrs-mcp/browser-profile에 영속되어 재로그인 없이 재사용된다.

npm run test:login   # 로그인 흐름 수동 테스트(브라우저 창 뜸)

Claude Code에 등록

{
  "mcpServers": {
    "my-kifrs-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["C:\\path\\to\\IFRS 및 감사\\build\\index.js"]
    }
  }
}

도구 16개 (v0.3.0)

통합 검색

  • accounting_search — 기준서(search_standards)·질의회신(search_qna)·감리지적사례 (search_audit_case)·제재공시(search_sanction) 4개 트랙을 한 번에 병렬 검색(기존 ifrs MCP의 동명 도구 벤치마크 — 순수 오케스트레이션, 새 검색 로직 없음). 회계 질문의 1차 진입점으로 쓰고, 더 깊이 파려면 개별 도구로 이어서 호출.

로그인

  • check_login — kifrs.com 로그인 상태 확인/진단. 안 되어 있으면 브라우저 창 자동 실행.

기준서 (K-IFRS/K-GAAP/감사기준서 공통)

  • search_standards — 키워드가 어느 기준서에 몇 건 나오는지 전체 검색. KTBi/ECL/CSM 등 업계 약칭은 쿼리 자동 확장(expanded_from/expanded_to)으로 표준 용어로 바꿔 검색. 그래도 전문(全文)에 정확한 단어가 없어 0건이면, 관련 기준서 목차(get_standard_index)의 절 제목에서 개념어를 찾아 index_candidates로 제시(벌크 크롤링·임베딩 없이, 온디맨드 목차 조회 1회로 해결 — 아래 "시맨틱 검색 검토 및 보류" 참고). 미의결 초안은 기본 제외(include_drafts=true로 포함 가능).

  • get_standard_index — 기준서 목차(장·절 계층, 문단번호 범위).

  • get_paragraph — 특정 문단 원문 + 관련 질의응답 번호. save_paragraph_explanation으로 저장해둔 해설이 있으면 cached_explanation 필드로 함께 반환.

  • save_paragraph_explanation — 특정 문단에 대한 해설(실무 적용·예시 등)을 로컬에 저장. 기존 ifrs MCP의 "운영자 사전작성 해설"과 달리 실사용 중 점진적으로 쌓는 캐시 방식(저작권 문제 없음 — 남의 해설을 복제하는 게 아니라 그때그때 새로 작성).

질의응답

  • search_qna — 회계기준원·금융감독원·IFRS해석위원회 등 7개 카테고리 통합 검색(약칭 쿼리 자동 확장 동일 적용). 결과에 vintage_warning(인용 기준서가 그 이후 개정됐을 가능성) 자동 표시. standard_filter(예: 1109 또는 [1109,1115])로 특정 기준서 인용 항목만 좁혀볼 수 있음 (기존 ifrs MCP의 standard_filter 벤치마크).

  • get_qna — 문서번호(예: 2020-I-KQA002, 숫자 id 아님)로 전체 본문 조회.

감리지적사례·제재공시 (fss.or.kr)

  • search_audit_case — 금융감독원 심사·감리지적사례 검색. keyword_variants(최대 5개)로 회사명 추정·관련기준서·쟁점 키워드 등 여러 각도의 검색어를 함께 넣어 재현율을 높일 수 있음 (기존 ifrs MCP의 다중 검색 변형 벤치마크 — 각 검색어 1페이지씩 조회 후 중복 제거 병합).

  • get_audit_case — 상세 + 첨부 PDF 본문(실제 지적사유·판단근거) 추출. 스캔본으로 추정돼 텍스트 품질이 낮으면 pdf_quality_warning 표시(pdf_page_count도 함께 반환).

  • search_sanction — 금융감독원 검사결과제재(제재공시) 검색. keyword_variants 동일 지원.

  • get_sanction — 상세 + 첨부 PDF 본문(실제 위반사실·제재금액) 추출. ⚠ "제재 처분 확인 사실"이며 강한 유죄 확정 표현으로 옮기지 말 것. pdf_quality_warning/pdf_page_count 동일 적용.

검증·피드백

  • verify_citation — 단건 인용문이 실제 원문(기준서 문단/질의응답)에 있는지 exact/ normalized/not_found 3단계 검증.

  • verify_citations — 긴 텍스트에서 기준서 인용·질의응답 문서번호를 자동 추출해 일괄 실존 확인.

  • expand_citations — 긴 텍스트에서 인용을 자동 추출해 실제 원문(기준서 문단/질의응답 본문)을 가져와 인용 직후(placement=inline) 또는 답변 끝 부록(appendix)으로 붙여 반환. 기존 ifrs MCP의 동명 도구 벤치마크(verify_citations는 존재 확인만, 이건 본문까지 부착).

  • submit_feedback — 답변 품질 별점(1~5)·코멘트를 로컬(~/.my-kifrs-mcp/feedback.db)에 저장. 외부 전송 없음. tokens(다른 도구 응답에 자동으로 붙는 _feedback_token)로 실제 어느 검색/조회에 대한 피드백인지 서버가 검증(기존 ifrs MCP의 토큰 기반 피드백 벤치마크) — 기존엔 related_tool/query_context가 LLM 자기서술이라 신뢰할 수 없었던 걸 보완.

안전장치 — 초안(ing) 배제

아직 공식 의결되지 않은 초안(예: 지속가능성공시기준 4001/4002/4101)이 확정 기준서처럼 답변에 섞이지 않도록:

  • search_standards는 초안을 기본적으로 결과에서 제외한다.

  • get_standard_index/get_paragraph로 초안 stdNum을 직접 조회하면 draft_warning 필드로 명확히 경고한다.

판정 기준: kifrs.com 데이터 자체의 의결일이 "202X" 같은 미확정 플레이스홀더이거나, 제목에 "공개초안"/"제정안"/"개정안"/"의견조회"/"검토의견" 등이 포함된 경우(src/lib/ kifrs-standards-map.tscheckDraftStatus).

아키텍처 메모

  • 인증: kifrs.com은 쿠키 기반(authToken/refreshToken). Puppeteer 브라우저 페이지 컨텍스트 안에서 fetch를 실행해 쿠키를 자동 활용 — 토큰 저장 위치를 몰라도 동작한다.

  • fss.or.kr 접근: 로그인 불필요한 공개 게시판이지만, User-Agent 없는 요청은 서버가 연결을 끊는다(WAF 추정) — 브라우저 UA 헤더만 추가하면 정상 응답한다.

  • 기준서 통합 맵: STD_NUM_TITLES(K-GAAP 199 + K-IFRS 1000+ + 감사기준서 2001200 + 내부회계관리제도 3000+ 등)는 kifrs.com JS 번들의 stdMap 상수에서 추출한 정적 데이터.

  • 문단번호 형식: K-IFRS/감사기준서는 숫자("9"), K-GAAP은 "장.문단" 점 표기("13.1").

  • BrowserSession 동시성: search_qna처럼 Promise.all로 여러 카테고리를 동시 조회하면 Puppeteer 브라우저 launch가 레이스 상태가 될 수 있어(실측: 7개 중 1개만 성공), prepare() 단계를 Promise로 메모이즈해 직렬화한다. 새 도구를 추가할 때 여러 client.getJson() 호출을 병렬로 묶는다면 이 직렬화가 유지되는지 유의할 것.

  • 프로세스 종료 정리: index.ts가 SIGINT/SIGTERM/stdin close 시 client.close()로 Puppeteer Chrome을 명시적으로 닫는다 — 이게 없으면 좀비 Chrome이 userDataDir 잠금을 쥔 채 남아 다음 실행이 "browser already running"으로 전부 실패한다.

알려진 한계

  • FSS 감리지적사례·제재공시의 실질 내용은 대부분 첨부 PDF 안에 있다(상세 페이지 자체는 메타데이터만). get_audit_case/get_sanction이 자동으로 PDF 텍스트를 추출한다.

  • KASB(kasb.or.kr)의 감사보고서 게시판 등 기준서 외 자료는 검토했으나, 다운로드가 JS fileDownload() 함수 호출 방식이라 리버스엔지니어링 비용 대비 실익이 낮아 보류함(2026-07-10).

  • 참고서적 검색(book_contexts류)은 저작권 있는 상업 출판물 스크레이핑 우려로 의도적으로 구현하지 않음.

시맨틱 검색 검토 및 보류 (2026-07-10)

search_standards/search_qna가 kifrs.com 자체 API(단순 substring 검색)에 의존하는 한, "KTBi"처럼 원문에 정확히 없는 개념어는 쿼리 확장을 아무리 잘 만들어도 구조적으로 못 찾는 한계가 있다. 이를 해결하기 위해 로컬 임베딩(transformers.js, 완전 오프라인) + FTS5 trigram + RRF 하이브리드 검색을 실제로 구축·검증했다(34개 문단 실측 — "사업모형 분류" 등 질의에서 정확한 문단을 상위로 찾아냄, 검증 중 버그 2건도 발견·수정).

그러나 보류함 — 이를 위해서는 전체 기준서 문단을 사전에 벌크 크롤링해야 하는데, kifrs.com 이용약관 제15조②가 "에이전트·로봇·크롤러·스크립트... 등의 자동화된 수단"을 이용한 데이터 수집을 사전 동의 없이 금지하고 있음을 실제로 확인했다(개인적·비영리 목적이어도 예외 없음, 위반 시 회원자격 정지/상실 — 제15조④). 규모와 무관하게 문언상 금지 대상이라 판단해 벌크 크롤링 기능은 만들지 않기로 했다(검증에 썼던 34개 문단 샘플도 삭제함).

대신 search_standards가 0건일 때 관련 기준서의 목차(get_standard_index, 온디맨드 1회 조회 — 사람이 목차를 직접 펼쳐보는 것과 같은 수준)에서 절 제목을 훑어 개념어를 찾는 index_candidates 방식으로 검색 편의성만 보완했다. 벌크 크롤링 없이도 "KTBi" 같은 케이스를 실제로 해결함(→ 관련 절 "사업모형"/"원리금 지급만으로 구성된 계약상 현금흐름"을 정확히 찾음).

참고로 K-IFRS 본문(조문) 자체의 저작권은 별개 문제로, IFRS Foundation이 한국어판 기준서 본문에 대해 "한국 내 어떤 용도로든 복제 허용"으로 저작권을 명시적으로 포기했음을 확인했다 (db.kasb.or.kr의 저작권 고지 참고, 단 결론도출근거/적용사례 등 부속자료는 제외). 이건 이용약관상 자동화 수집 금지와는 별개의 문제라, 지금 이 MCP처럼 로그인 계정으로 온디맨드 조회하는 정도의 사용 패턴에서는 콘텐츠 자체의 저작권 리스크는 낮다고 판단한다.

테스트

npm run build
node scripts/smoke-test.mjs         # puppeteer 기본 동작(로그인 불필요)
node scripts/smoke-test-tools.mjs   # 기준서·질의응답 5개 도구(로그인 필요)
node scripts/smoke-test-verify.mjs  # 인용 검증·재시도·vintage_warning

Available Tools

16 tools
check_loginA

kifrs.com 로그인 상태를 확인합니다. 로그인이 안 되어 있으면 브라우저 창을 띄워 로그인을 요청합니다. 쿠키/localStorage 키 이름만 보고하며 값(토큰 등)은 절대 노출하지 않습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It openly states that the tool may open a browser window for login, and explicitly mentions that it only reports cookie/localStorage key names and never exposes token values. This is thorough and transparent for a tool with side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: the first sentence states the primary purpose, the second describes the side effect, and the third discloses data handling. Every sentence adds meaningful information with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should clarify what the tool returns. It mentions 'reports key names' but does not specify whether the return is a boolean, a list, or a structured object. The side effect is described, but the exact output format remains ambiguous, leaving a gap for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is empty. According to the rubric, a zero-parameter tool gets a baseline score of 4. No parameter-specific meaning is needed, and the description does not need to compensate for missing schema details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: checks login status for kifrs.com. It also mentions the side effect of opening a browser window if not logged in, which adds scope. No sibling tool has a similar login-related function, so it is well distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied: one would call this before performing authenticated operations on kifrs.com. However, the description does not explicitly say when to use it, when not to, or mention any alternatives, leaving the guidance implicit rather than direct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

expand_citationsA

LLM 답변 초안 텍스트에서 K-IFRS/K-GAAP 기준서 인용과 질의응답 문서번호 인용을 자동 추출해 실제 원문을 가져와 답변에 붙여 반환합니다. verify_citations(존재 여부만 확인)와 달리 본문 자체를 붙여주므로, 사용자가 '본문 보여줘'라고 하거나 인용 근거를 명확히 보여줘야 할 때 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes인용이 포함된 LLM 답변 초안 전체 텍스트
placementNoinline=인용 직후 본문 블록 삽입(추적성↑), appendix=답변 끝에 부록으로 모아서 붙임(가독성↑)inline
max_body_charsNo인용 본문 최대 길이(문자 수)
include_inquiryNo질의응답 문서번호 인용도 본문 부착할지

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It clearly explains the process (extract citations, fetch full text, append to answer) and notes the contrast with verify_citations. It does not mention edge cases like 'no citations found' or error handling, but the core behavioral mechanism is transparent and consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, well-structured, and front-loads the core functionality in the first sentence. The second sentence adds valuable usage guidance without redundancy. Every word earns its place, and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters, no output schema, and no annotations, the description provides a solid overall picture: what it does, how it differs from a sibling, and when to use it. The only minor gap is that it does not explicitly describe the exact return format (e.g., whether it returns the appended answer as a string or a structured object), but the phrase '답변에 붙여 반환합니다' strongly implies the output is the modified answer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (text, placement, max_body_chars, include_inquiry) has a detailed description. The tool description adds only general context about the tool's purpose but no additional parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's function: automatically extracts K-IFRS/K-GAAP standard and Q&A document citations from an LLM answer draft, fetches the original text, and appends it to the answer. It also distinguishes itself from the sibling tool verify_citations, which only checks existence, making the tool's unique purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('when the user asks to show the original text' or when citation basis must be clearly shown) and provides an explicit alternative (verify_citations for existence-check only). This gives strong usage context and avoids confusion with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_audit_caseA

심사·감리지적사례 상세를 조회합니다. include_pdf_text=true(기본)면 첨부 PDF에서 실제 지적 사유·판단근거 본문까지 추출합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
ntt_idYessearch_audit_case 결과의 ntt_id
include_pdf_textNo첨부 PDF 본문(실제 지적사유·판단근거)까지 추출할지

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses that include_pdf_text defaults to true and extracts the actual finding reason and judgment basis from attached PDFs. However, it does not mention potential performance implications, the return structure, or behavior when include_pdf_text is false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the primary purpose, the second clarifies the key optional parameter. It is front-loaded and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple detail-lookup tool with two parameters and no output schema, the description covers the core functionality and the notable PDF extraction option. It falls short of explaining the response format or cautioning about potentially large PDF text outputs, but it is adequate for an agent to make an initial call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has descriptive text for both parameters, including the default value and purpose of include_pdf_text. The description's second sentence merely restates the schema's information without adding new semantic detail, so it adds no value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb '조회합니다' (retrieves) and identifies the resource as '심사·감리지적사례 상세' (audit/review finding case details), clearly distinguishing it from sibling search tools like search_audit_case. The mention of PDF text extraction further clarifies its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a specific audit case detail, but does not explicitly state when to use it over alternatives such as search_audit_case or get_qna. The schema's parameter description for ntt_id hints at the prerequisite search, but the tool description itself offers no usage guidance or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paragraphA

기준서(K-IFRS/K-GAAP/감사기준서 공통)의 특정 문단 원문(HTML/plain text)을 조회합니다. 관련 질의응답 번호도 함께 반환됩니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
std_numYes기준서 번호 (예: 1116=K-IFRS 리스, 13=K-GAAP 리스, 315=감사기준서)
para_numYes문단번호. K-IFRS/감사기준서는 숫자(예: 9, 315), K-GAAP은 '장.문단' 점 표기(예: '13.1'). get_standard_index 의 ref 필드를 그대로 쓰면 된다.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool returns the original text in HTML/plain text and related Q&A numbers, but it does not clarify output format selection, error behavior for invalid paragraph numbers, or any prerequisites. This is adequate but not rich; a score of 3 reflects minimal transparency for a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's primary function and additional return value. It is concise, avoids redundancy, and contains no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (two parameters, no output schema), the description is nearly complete: it states the input (through schema) and the output (original text and Q&A numbers). It lacks explicit formatting details or error behavior, but for a straightforward retrieval tool, this is sufficient. It earns a 4 because the description could mention what happens if a paragraph is not found or whether both HTML and plain text are returned simultaneously.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides detailed descriptions for both parameters with examples and cross-references to get_standard_index. With 100% schema coverage, the description adds no additional parameter meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action ('retrieves the original text') and the exact resource ('specific paragraph from K-IFRS/K-GAAP/Audit Standards'), and it distinguishes itself from siblings like get_standard_index (which lists indexes) and get_qna (which returns Q&A details) by noting it also returns related Q&A numbers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when you need the original text of a specific standard paragraph. It provides context by mentioning the standards covered and the return of related Q&A numbers, but it does not explicitly state exclusions or alternatives (e.g., 'use get_qna for full Q&A details'), which is why it's a 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_qnaA

질의응답 상세(전체 본문)를 문서번호로 단건 조회합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_numberYes질의응답 문서번호 (예: '2020-I-KQA002'). search_qna 결과의 docNumber 또는 get_paragraph 결과의 faqDocNumbers 값을 그대로 사용

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool returns the full text body and performs a single lookup, which implies a read operation. However, it does not explicitly state read-only behavior, error handling, or any prerequisites such as authentication. It adds some context but misses potential behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence, front-loaded with the action and resource. It avoids unnecessary detail while conveying the essential purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description plus parameter guidance is largely complete. It clarifies the return type (full text) and source of the document number. However, it could have mentioned error behavior or output structure, but these are not critical for such a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for the single parameter, but the parameter description goes further by giving an example format and instructions to reuse docNumber from search_qna or faqDocNumbers from get_paragraph results. This adds practical guidance beyond the schema, earning above-baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a single Q&A detail record (full text) by document number. The verb '조회' (retrieve) and resource '질의응답 상세' distinguish it from siblings like search_qna (search) and get_paragraph (paragraph retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the main description does not explicitly mention alternatives, the parameter schema provides strong usage guidance: it tells the agent to use docNumber from search_qna results or faqDocNumbers from get_paragraph results. This implies when to use the tool (after a search or paragraph retrieval) and gives a clear trigger context, though it lacks explicit exclusions or 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.

get_sanctionA

제재공시 상세를 조회합니다. include_pdf_text=true(기본)면 첨부 PDF에서 실제 위반사실· 제재금액 본문까지 추출합니다. ⚠ '제재 처분 확인 사실'이며 강한 유죄 확정 표현으로 옮기지 말 것.

ParametersJSON Schema
NameRequiredDescriptionDefault
em_open_seqYessearch_sanction 결과의 em_open_seq
exam_mgmt_noYessearch_sanction 결과의 exam_mgmt_no
include_pdf_textNo첨부 PDF 본문(실제 위반사실·제재금액)까지 추출할지

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It adds value by disclosing that include_pdf_text=true extracts actual violation facts and sanction amounts from attached PDFs, and it provides a critical semantic warning about not translating the content into strong conviction language. However, it does not describe the return format, errors, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence states the core purpose, the second explains the optional PDF extraction, and the third delivers an important usage warning. Every sentence earns its place with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description should explain what the tool returns. It describes the detail query and the extra PDF-extracted information, but it does not specify the overall return structure or metadata fields. The warning about language nuance is helpful, but the description is not fully complete for an agent to anticipate the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% parameter description coverage, so the baseline is 3. The description adds a small amount of value by clarifying the default of include_pdf_text and reiterating what it extracts, but it does not add meaning beyond what the schema already provides for the required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves sanction disclosure details ('제재공시 상세를 조회합니다'), using a specific verb and resource. It implicitly contrasts with the sibling search_sanction tool by focusing on '상세' (details), but does not explicitly name the alternative or differentiate beyond that.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context through the include_pdf_text parameter, noting the default behavior and that PDF text extraction is optional. The input schema parameters clearly reference search_sanction results, indicating this tool is meant to be used after search_sanction, but the description itself does not explicitly state when to use it versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_standard_indexA

기준서의 목차(장·절 계층 구조, 각 절의 문단번호 범위 ref)를 조회합니다. 실제 본문은 ref 범위 안 문단번호로 get_paragraph 를 호출해서 읽습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
std_numYes기준서 번호 (예: 1116=리스, 1109=금융상품). search_standards 로 확인 가능

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of disclosing behavior. It states that this tool returns only the table of contents (with refs) and not the actual body text, which is a meaningful behavioral trait. This goes beyond a simple 'retrieves index' and helps set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every sentence earns its place. The second sentence adds actionable guidance about using get_paragraph, with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool without an output schema, the description fully explains what is returned (TOC with hierarchy and ref ranges) and provides the next step (calling get_paragraph). It is complete in the context of sibling tools and the domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full coverage for the single parameter std_num, including an example and a pointer to search_standards. The tool description itself adds no additional parameter semantics beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 standard (chapter/section hierarchy with paragraph range refs). It distinguishes itself from get_paragraph by explicitly noting that actual body text is read via get_paragraph, making the scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this tool to get the structural index, then call get_paragraph to read content within the ref ranges. It names the alternative (get_paragraph) and implies when to use each, but doesn't explicitly state exclusions or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_paragraph_explanationA

특정 기준서 문단에 대한 해설을 로컬에 저장합니다. 이후 같은 문단을 get_paragraph로 조회하면 cached_explanation 필드로 재사용됩니다. 사용자에게 도움이 됐던 해설이나 자주 묻는 문단의 실무 해설을 저장해 다음에 재사용할 때 씁니다(기존 해설은 덮어씀).

ParametersJSON Schema
NameRequiredDescriptionDefault
std_numYes기준서 번호 (get_paragraph에 썼던 것과 동일)
para_numYes문단번호 (get_paragraph에 썼던 것과 동일)
explanationYes이 문단에 대한 해설(실무 적용·예시·주의점 등, Claude가 직접 작성)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that saves are local, that they overwrite existing explanations, and that they are reused via get_paragraph's cached_explanation field. This is meaningful behavioral transparency, though it omits error cases or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise, front-loaded sentences. It starts with the core action, then explains the reuse mechanism, then gives a usage scenario. Every sentence adds value without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple save tool with three fully described parameters and no output schema, the description is sufficiently complete. It covers purpose, persistence, overwrite semantics, and how the saved data is later used. It lacks detail on error handling or authentication, but these are not critical for this tool's basic operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents all three parameters clearly. The description adds context that std_num and para_num match get_paragraph usage, but this is minor. Overall it provides limited additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: saves an explanation for a particular standard paragraph locally. It distinguishes itself from siblings by explicitly tying to get_paragraph's cached_explanation behavior, making the tool's unique role obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use it: to save helpful or frequently used practical explanations for reuse. It also explains the overwrite behavior. It does not explicitly say 'use this instead of X', but the connection to get_paragraph provides adequate usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_audit_caseA

금융감독원 심사·감리지적사례(회계처리 위반 지적 사례집)를 검색합니다. 결과의 nttId로 get_audit_case를 호출하면 첨부 PDF의 실제 지적 사유·판단근거까지 확인할 수 있습니다. 회사명·정확한 쟁점을 모르고 사건 내용만 대략 아는 경우 keyword_variants로 여러 각도의 검색어를 함께 넣으면 재현율이 올라갑니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo검색기간 종료일 YYYY-MM-DD
pageNo
startNo검색기간 시작일 YYYY-MM-DD
keywordNo검색어 (예: 특수관계자, 우발부채, 수익인식). 미지정 시 최신순 전체
keyword_variantsNokeyword 하나로 못 찾을 때 병렬로 함께 검색할 추가 검색어(최대 5개) — 사건을 paraphrase로만 알 때 회사명 추정/관련기준서/쟁점 키워드 등으로 쪼개서 넣으면 재현율이 올라간다. 예: keyword='통화선도 중도해지 상계' + keyword_variants=['하나은행 통화선도', 'K-IFRS 1109 파생상품', '부당 회계처리']. 지정 시 각 검색어는 1페이지만 조회하고 결과를 합친다(page 파라미터 무시).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It reveals that search results contain nttId and that get_audit_case is needed for actual reasons and judgment bases, implying results are summaries. It also explains that keyword_variants increases recall, adding beyond the schema. The page-ignoring behavior for keyword_variants is not mentioned here but is in the input schema, so the description does not contradict nor fail to disclose any critical behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, both purposeful. The first sentence front-loads the main purpose, and the second sentence efficiently covers the follow-up call and keyword_variants guidance. There is no fluff or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no output schema and 5 parameters, the description covers the essential flow: search, then use the returned nttId with get_audit_case for full details. It also addresses a specific edge case (approximate knowledge) and how to handle it. It does not describe the result list structure or pagination, but the schema provides parameter details, so the description is sufficiently complete for a non-destructive search operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the baseline is 3. The description adds genuine meaning to keyword_variants: when to use it, why (recall), and provides a concrete example with multiple search terms. This elaborates on the schema's description, which already detailed the parameter, but the main description makes the use case clearer, elevating it to a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb and resource: '금융감독원 심사·감리지적사례(회계처리 위반 지적 사례집)를 검색합니다' (searches FSS review/supervision noted cases). It also differentiates from siblings by immediately linking to get_audit_case, showing the follow-up workflow and peculiar use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context for when to use keyword_variants: '회사명·정확한 쟁점을 모르고 사건 내용만 대략 아는 경우' (when you don't know the company name or exact issue and only roughly know the case). It also advises to call get_audit_case with the nttId for full PDF details, giving a clear next step. However, it does not explicitly mention when not to use this tool or contrast it with alternative search tools like search_sanction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_qnaA

K-IFRS/K-GAAP 관련 질의응답을 검색합니다(회계기준원·금융감독원·IFRS해석위원회 등 7개 카테고리). 본문(fullContent)까지 결과에 포함되며, 인용된 기준서가 그 이후 개정됐으면 vintage_warning이 붙습니다. 0건이면 자동으로 유사어 재시도를 1회 수행합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
rowsNo카테고리당 최대 반환 건수
typesNo조회할 카테고리 코드 배열 (미지정 시 전체: 11, 12, 13, 14, 15, 24, 25). 11=회계기준원 (K-IFRS), 12=회계기준원 (K-GAAP), 13=IFRS 해석위원회 논의결과, 14=신속처리질의 (K-GAAP), 15=신속처리질의 (K-IFRS), 24=금융감독원 (K-GAAP), 25=금융감독원 (K-IFRS)
keywordNo검색어 (미지정 시 카테고리 전체 최신순)
standard_filterNo결과를 특정 기준서 번호(예: 1109) 또는 여러 개(예: [1109, 1115])로 좁힌다. 제목/본문에 그 기준서 번호가 인용된 항목만 남긴다(기존 ifrs MCP의 standard_filter 벤치마크).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It reveals non-obvious behaviors: results include fullContent, a vintage_warning is appended when cited standards have been revised, and an automatic similar-term retry occurs on zero results. These details go well beyond a generic 'search' description, though it does not address safety or permission aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, followed by two sentences containing high-value behavioral details. No redundant or filler wording is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description captures critical search-specific behaviors (fullContent inclusion, vintage_warning, auto-retry) and context (7 categories). It does not detail the full response shape, but no output schema exists and page/rows are defined in the schema, so the level of completeness is adequate for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80% (page lacks a description, but types, keyword, rows, and standard_filter have detailed descriptions). The tool description adds no parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('검색합니다' = searches) and resource ('K-IFRS/K-GAAP 관련 질의응답' = Q&A), clearly distinguishing it from standard search tools like search_standards. The mention of 7 categories (회계기준원·금융감독원·IFRS해석위원회 등) further scopes the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for searching Q&A content but does not explicitly state when to use this tool over siblings like get_qna or accounting_search. No exclusions or alternative tool references are provided, leaving usage guidance implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_sanctionA

금융감독원 검사결과제재(제재공시)를 검색합니다. 결과의 exam_mgmt_no+em_open_seq로 get_sanction을 호출하면 첨부 PDF의 실제 위반사실·제재금액까지 확인할 수 있습니다. ⚠ '제재 확인 사실'을 알려줄 뿐 위반의 확정적 평가는 아닙니다. 회사명·정확한 사유를 모르고 사건 내용만 대략 아는 경우 keyword_variants로 여러 각도의 검색어를 함께 넣으면 재현율이 올라갑니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo검색기간 종료일 YYYY-MM-DD (미지정 시 오늘)
pageNo
startNo검색기간 시작일 YYYY-MM-DD (미지정 시 2015-01-01)
keywordNo검색어 (회사명ㆍ제재내용ㆍ관련부서). 미지정 시 최신순 전체
keyword_variantsNokeyword 하나로 못 찾을 때 병렬로 함께 검색할 추가 검색어(최대 5개) — 회사명 추정/제재사유 키워드/관련부서 등으로 쪼개서 넣으면 재현율이 올라간다. 지정 시 각 검색어는 1페이지만 조회하고 결과를 합친다(page 파라미터 무시).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure. It warns that the search only provides '제재 확인 사실' not a definitive violation assessment, explains that keyword_variants causes multiple searches merged with page ignored, and informs that results contain the keys needed for detail retrieval. This is thorough and transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using a warning icon and clear formatting. Every sentence adds value: purpose, follow-up flow, interpretative caveat, and search strategy tip. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema or annotations, the description covers the search scope, key result identifiers, follow-up tool, and a recall-maximization technique. It does not detail standard pagination behavior beyond keyword_variants, but given the tool's moderate complexity, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, but the description adds significant value beyond the schema by explaining the intended use of keyword_variants (parallel search for recall, page parameter ignored) and connecting the result fields to get_sanction. The start/end/page parameters are left to the schema defaults, which is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: '금융감독원 검사결과제재(제재공시)를 검색합니다' (searches FSS examination sanctions). It distinguishes itself from the sibling get_sanction by explaining that search results provide exam_mgmt_no+em_open_seq for follow-up detail retrieval, and differentiates its search behavior with keyword_variants for improved recall.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use keyword_variants (when the company name/exact reason is unknown but the case details are roughly known) and how to proceed to get_sanction for full PDF details. It does not explicitly list alternatives to avoid, but the context is clear enough that this is the search tool, while get_sanction is for fetching details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_standardsA

키워드가 어느 기준서(K-IFRS/K-GAAP/감사기준서/내부회계관리제도 등)에 몇 건 나오는지 전체 검색합니다. KTBi/ECL/CSM 같은 업계 약칭은 자동으로 표준 용어로 확장해 검색합니다. 결과의 stdNum으로 get_standard_index(목차)나 get_paragraph(본문)를 이어서 호출하세요. 0건이면 자동으로 유사어 재시도를 1회 수행합니다. 미의결 초안은 기본적으로 제외됩니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes검색어 (예: 리스, 손상, 이연법인세, KTBi, ECL, CSM 같은 약칭도 가능)
include_draftsNo아직 의결되지 않은 초안/제정안도 결과에 포함할지(기본 false — 확정 기준서만)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the behavioral disclosure burden. It discloses three non-obvious behaviors: automatic expansion of industry abbreviations, automatic synonym retry on zero results, and default exclusion of unapproved drafts. This goes well beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: it opens with the main purpose, then covers key behaviors and follow-up usage. Every sentence provides useful information without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no output schema, the description provides sufficient context: it mentions the result contains stdNum, explains the zero-result retry behavior, and clarifies draft filtering. This is complete enough for an agent to invoke and chain the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds semantic value by explaining that abbreviations in the keyword are automatically expanded to standard terms, and it echoes the include_drafts behavior. This extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches across standard types (K-IFRS, K-GAAP, etc.) and returns counts of keyword occurrences. It specifies the exact behavior (whole search, counts) and even provides follow-up tool guidance, distinguishing it from sibling search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context clearly: use this to find which standards contain a keyword, then chain with get_standard_index or get_paragraph. It does not explicitly mention when not to use it relative to alternatives like search_qna, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_feedbackA

이 MCP의 답변 품질에 대한 별점(1~5)과 한마디 코멘트를 로컬에 남깁니다. tokens는 답변 구성에 실제로 쓰인 검색 결과의 _feedback_token만 넣으세요. 외부로 전송되지 않고 사용자 PC의 ~/.my-kifrs-mcp/feedback.db 에만 저장됩니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
ratingNo1~5점 (선택)
tokensYes다른 도구 응답에 실려온 _feedback_token 배열. 이 답변 구성에 직접 사용된 검색/조회의 토큰만 넣을 것(대화 중 모든 호출이 아니라, 실제로 인용한 것만).
commentNo한마디 코멘트 (선택)
categoryNoinaccurate=틀림/helpful=도움됨/incomplete=불충분/wrong_citation=인용오류/slow=느림/other=기타

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of disclosing behavior. It explicitly states the data is stored locally at a specific path and not transmitted externally, plus clarifies the token selection rule. This provides useful context beyond the schema, though it doesn't address authentication or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose, and every sentence adds value. It avoids redundancy and is appropriately concise for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential purpose, token semantics, and data handling. Given the tool's low complexity and schema coverage, it is sufficiently complete. It doesn't mention response behavior, but that's not critical for a feedback submission tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains all parameters. The description adds context about local storage and token usage, but doesn't significantly enhance parameter meaning beyond what's in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: leaving a rating and comment about the quality of MCP answers. It uses a specific verb (leaves) and resource (feedback), and the purpose is distinct from all sibling tools, which are search/verification tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (after receiving an answer, to rate its quality) and provides specific instructions on what to include in the tokens parameter (only _feedback_token actually used). It doesn't mention alternatives because none exist, so no exclusions are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_citationA

인용한 문장이 실제 K-IFRS 기준서 원문(get_paragraph) 또는 질의응답(get_qna)에 존재하는지 재조회하여 대조합니다. 할루시네이션 방지용 — 보고서 작성 후 핵심 인용은 이 도구로 재확인하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYes검증하려는 인용문(원문 그대로 옮겼다고 주장하는 문장)
sourceYesstandard=기준서 문단 / qna=질의응답
std_numNosource=standard 필수: 기준서 번호
para_numNosource=standard 필수: 문단번호
doc_numberNosource=qna 필수: 질의응답 문서번호
context_charsNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the core behavior (re-query and compare) and the anti-hallucination purpose, which is useful. However, it does not state whether the tool is read-only, what happens on mismatch, or any side effects. The description adds some context but lacks completeness for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the action and purpose. It avoids redundancy and earns every word, mentioning both the mechanism and the recommended usage scenario.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain return values or match criteria, but it does not. It also has conditional parameters (standard vs qna) that are not explicitly explained in the description, though the schema covers them. The tool's complexity is moderate, but the description omits critical behavioral details like what constitutes a successful verification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (83%), so the baseline is 3. The description adds minimal value beyond the schema: it maps source parameter values to get_paragraph/get_qna, but the schema already explains the enum (standard/qna). Claim's requirement for exact quoting is also already in the schema, so the description does not meaningfully enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool re-queries and compares quoted sentences against K-IFRS sources (get_paragraph/get_qna), with a specific verb and resource. However, it does not distinguish itself from the similarly named sibling 'verify_citations', leaving ambiguity about whether it handles single vs. multiple citations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests using this tool after writing reports for key citations, which gives a clear usage context. However, it does not explicitly mention when not to use it, nor does it differentiate from the sibling 'verify_citations' which likely overlaps in functionality. The alternative tools get_paragraph/get_qna are referenced only as data sources, not as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_citationsA

긴 텍스트(보고서 초안 등)에서 K-IFRS 기준서·문단 인용과 질의응답 문서번호 인용을 전부 자동 추출해 실제로 존재하는지 일괄 확인합니다. 인용 3건 이상이거나 정확도가 중요한 답변을 내보내기 전에 먼저 실행하세요. (단건 인용문 내용까지 대조하려면 verify_citation 사용.)

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes인용을 추출해 검증할 보고서/답변 초안 전체 텍스트

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It explains the core behavior (extract all citations and check existence) and batch processing, but does not disclose output format, side effects, or any safety profile. Since it's a verification tool, the risk is lower, but the lack of return-value or side-effect disclosure leaves a transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first explains the purpose and scope, the second provides usage conditions and an alternative. Every sentence contributes new information with no waste, and the alternative is tucked into a parenthetical for compactness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema and no annotations, the description covers the purpose, usage timing, and alternative tool. It does not mention return values or error handling, but given the low complexity and strong schema, the description is nearly complete; only minor details about results are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a detailed parameter description ('the full text of the report/answer draft to extract and verify citations from'), so the schema already handles parameter meaning. The description adds only a slight nuance ('long text') but does not significantly exceed the schema, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: automatically extracting and batch-verifying K-IFRS standard/paragraph citations and Q&A document number citations from long text. It distinguishes itself from the sibling tool verify_citation by explicitly noting it handles batch verification vs single-citation content checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'before outputting answers with 3+ citations or when accuracy is important.' It also names the alternative for single-citation content comparison ('verify_citation'), covering both inclusion and exclusion criteria.

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.

  1. 16 tool updatesv0.3.0
    • First observedaccounting_search
    • First observedcheck_login
    • First observedexpand_citations
    • First observedget_audit_case
    • First observedget_paragraph
    • First observedget_qna
    • First observedget_sanction
    • First observedget_standard_index
    • First observedsave_paragraph_explanation
    • First observedsearch_audit_case
    • First observedsearch_qna
    • First observedsearch_sanction
    • First observedsearch_standards
    • First observedsubmit_feedback
    • First observedverify_citation
    • First observedverify_citations

TDQS

A4/5.0

Scored across 16 tools

Disambiguation4/5

Most tools clearly target distinct resources (standards, Q&A, audit cases, sanctions), but the trio verify_citation, verify_citations, and expand_citations overlap in purpose and could cause misselection. The meta-search accounting_search also overlaps with individual search tools, though descriptions clarify it as the primary entry point.

Naming Consistency4/5

The majority follow a verb_noun pattern (get_, search_, verify_, submit_), but accounting_search breaks the pattern by leading with a noun. Plural/singular variations in verify_citation vs verify_citations are minor deviations.

Tool Count4/5

With 16 tools, the count is slightly above the typical 3-15 range, but the breadth of the domain (standards, Q&A, audit cases, sanctions, citations, feedback) justifies each tool. No obvious redundancy, though the citation tools could arguably be consolidated.

Completeness5/5

The tool surface covers the full workflow: login, search across all resource types, detail retrieval, citation verification in single and batch modes, and even saving user explanations. Each tool has a clear follow-up or integration, leaving no critical dead ends.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server providing comprehensive Korean legal data access (laws, precedents, regulations, ordinances) with citation verification, temporal comparison, impact graphs, and legal research workflows.
    10
    1,624 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for searching and retrieving Korean accounting standards (K-IFRS, general corporate accounting standards) and Q&A summaries from the KASB database. Provides four tools: keyword search of standards and Q&As, real-time full text of standards, and cached Q&A details.
    -
  • F
    license
    A
    quality
    C
    maintenance
    MCP server for Korean National Law Information. Enables searching and retrieving Korean laws, English-translated laws, administrative rules, court precedents, and constitutional decisions via 54 MCP tools.
    54
    -