{"name":"kr.eocpa/mykifrs","slug":"eocpa-mykifrs","title":"MyKIFRS","description":"Full-text search over K-IFRS/K-GAAP standards and KASB accounting Q&A for Korean accountants","url":"https://mcp.market/server/eocpa-mykifrs","rating":null,"grade":"C","score":67,"certified":false,"status":"active","category":"finance","tags":["finance","search"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":null,"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://eocpa.kr/mykifrs","version":"0.11.2","remotes":[{"type":"streamable-http","url":"https://mykifrs.eocpa.kr/mcp","headers":[{"description":"eocpa token (https://eocpa.kr/token) — shared across MyDART·MyKIFRS·MyFSS. Required for tool calls; discovery (tools/list) works without it.","isRequired":true,"isSecret":true,"name":"x-eocpa-token"}]}],"packages":[],"tools":[{"name":"get_paragraph","description":"MyKIFRS MCP의 get_paragraph 도구는 기준서 문단 전문을 앞뒤 문맥과 함께 반환합니다.\n\n[Purpose]\n- To quote a found 문단 exactly — a search snippet is never quotable evidence.\n- To check 조건절·예외 with neighbors.\n\n[Usage]\n1. \"1116호 33문단 원문\" → unique_key=\"1116-33\"\n2. \"앞뒤로 더 넓게\" → unique_key=\"1116-33\", context=5\n\n[Response]\n- { standard:{std_num, title, category}, target, related_qnas:[doc_number], items:[…] }\n- items[]: { seq, item_type, unique_key, para_num, level, title, ref, content_text };\n  item_type \"paragraph\"=본문, \"title\"=제목.\n- related_qnas → get_qna.\n- Miss → { error: \"문단 없음: {unique_key}\", similar:[{unique_key, para_num}] } (≤5).\n\n[Rules]\n- unique_key = \"{기준서번호}-{문단번호}\"; 문단 numbers aren't digits-only (B58·6.1.1) —\n  pass verbatim, never normalize.\n- Keys can carry a \"-N\" suffix (\"1109-B2.7\" misses, \"1109-B2.7-1\" hits — 12% of 문단). On a miss\n  retry a `similar` candidate; never read it as \"the 문단 does not exist\".\n- context expands within one part — boundaries return fewer items; not an error.\n- Quote content_text, never a snippet.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"unique_key":{"type":"string","description":"문단 키 (예: '1116-33')"},"context":{"default":2,"description":"앞뒤로 포함할 항목 수 (기본 2)","type":"number"}},"required":["unique_key"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_qna","description":"MyKIFRS MCP의 get_qna 도구는 질의회신 전문을 반환합니다.\n\n[Purpose]\n- The 회신 full text for a doc_number (search_qnas, get_paragraph's related_qnas) or a qna_key (search_qnas).\n\n[Usage]\n1. \"2017-001 회신 전문\" → doc_number=\"2017-001\"\n2. \"legacy:6009 전문\" → qna_key=\"legacy:6009\"\n\n[Response]\n- { results:[{source, qna_key, doc_number, date, title, rel_stds, full_content, org}] }\n- Miss → { error: \"문서번호 없음: {doc_number}\", similar:[{source, qna_key, doc_number, title}] } (≤5 부분일치)\n  or { error: \"qna_key 없음: {qna_key}\" }.\n- source / org / rel_stds: same meaning as in search_qnas.\n\n[Rules]\n- results is an array; doc_number is NOT unique (\"GKQA03-100\" → 2 rows). Never answer from the first\n  row alone — pin one by qna_key.\n- qna_key = \"{source}:{id}\" exactly as returned; if both arguments are given, qna_key wins.\n- 번호 formats differ by series (\"2021-G-KQA005\" · \"GKQA01-085\" · \"금감원사례-1\") — pass the value as\n  received, never alter case or separators.\n- On a miss, re-ask using `similar` rather than guessing another 번호.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"doc_number":{"description":"질의회신 문서번호 — qna_key 를 주지 않을 때 필수","type":"string"},"qna_key":{"description":"행 식별자 \"{source}:{id}\" (search_qnas 의 qna_key, 예: legacy:6009) — 번호가 비었거나 중복일 때","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_usage_stats","description":"MyKIFRS MCP의 get_usage_stats 도구는 이 MCP 서버의 도구 사용량 통계를 반환합니다.\n\n[Purpose]\n- Per-tool usage·latency (avg/percentiles)·error rate·daily trend.\n\n[Usage]\n1. \"최근 30일 사용량\" → (인자 없음)\n2. \"지난 7일만\" → days=7\n3. \"전체 기간\" → days=0\n\n[Response]\n- Both tiers: { visibility, period:{days, since, until}, overview:{total_calls, unique_users, errors,\n  error_rate, p50_ms, p90_ms, p99_ms}, by_tool:[{tool, calls, errors, error_rate, avg_ms, p99_ms, users}],\n  by_day:[{day, calls}] }\n- visibility=\"public\" adds `note`; period.days = \"all\" when days=0.\n- visibility=\"operator\" adds users:[{user, is_owner, calls, distinct_tools, first_seen, last_seen,\n  tools:[{tool, calls, avg_ms}]}] and top_targets:[{target, tool, calls, users}].\n\n[Rules]\n- Tier by requester: admin token·local stdio → \"operator\", else \"public\".\n- users·top_targets exist only at operator tier — absence ≠ 0.\n- `user` is a truncated SHA-256 of the 접속 토큰 — not a person. stdio calls (no hash) never appear.\n- Timings = server-side handler time (no network).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"days":{"default":30,"description":"최근 N일 윈도 (0이면 전체 기간, 기본 30)","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_standards","description":"MyKIFRS MCP의 list_standards 도구는 수록된 기준서 카탈로그를 반환합니다.\n\n[Purpose]\n- Which 기준서 are in the corpus, and which numbers feed search_standards' std_num filter.\n\n[Usage]\n1. \"수록된 기준서 전부\" → (인자 없음)\n2. \"감사기준서만\" → category=\"audit\"\n3. \"내부회계관리제도 관련\" → category=\"icfr\"\n\n[Response]\n- { count, standards:[{std_num, title, category}] }\n- category values: kifrs(한국채택국제회계기준) · interpretation(해석서) · concept(재무보고를 위한 개념체계)\n  · kgaap(일반기업회계기준) · audit(감사기준서) · icfr(내부회계관리제도) · esg(KSSB 지속가능성 공시기준)\n  · translation(번역본) · special(특수분야).\n\n[Rules]\n- Lists 수집 성공(crawl_status='ok') 기준서 only — an absent 기준서 means \"미수집\", not \"존재하지 않음\".\n- category is a free-form string, not an enum: an unknown value returns count=0, not an error.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"카테고리로 필터 (생략 시 전체)","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"search_qnas","description":"MyKIFRS MCP의 search_qnas 도구는 회계기준원·금융감독원·신속처리질의·IFRS 해석위원회 질의회신 3,669건을 전문검색합니다.\n\n[Purpose]\n- Official 회신 for practice issues the 기준서 text alone cannot settle.\n- For 회신 tied to a 문단, get_paragraph's related_qnas is more precise.\n\n[Usage]\n1. \"전환사채 콜옵션 회계처리 질의회신\" → query=\"전환사채 콜옵션\"\n2. \"리스료 재측정 회신 30건\" → query=\"리스료 재측정\", limit=30\n\n[Response]\n- { hits, results:[{source, qna_key, doc_number, date, title, rel_stds, org, snippet}] }\n- source = 수록 세대 (\"v2\" 현행 / \"legacy\" 구 QnA), NOT the 회신 기관.\n- org = 회신 기관: 회계기준원 / 금융감독원 / 신속처리질의 / IFRS 해석위원회 논의결과 (\"구 QnA\" = unmapped\n  legacy 유형).\n- rel_stds is raw HTML: <span data-std=\"1109\" data-id=\"6.1.1\"> → unique_key \"1109-6.1.1\".\n\n[Rules]\n- Tokens ≥3 chars → FTS (AND, rank); 1~2 chars → LIKE.\n- Never present `source` as the 회신 기관 — use `org`.\n- Strip HTML in rel_stds; build 문단 키 from data-std/data-id.\n- qna_key (\"{source}:{id}\") is get_qna's single-row handle — use it when doc_number is \"\" or duplicated.\n  legacy 회신 are mostly 2000~2011 (구 기업회계기준) — check `date` before citing.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"검색 키워드 (공백 구분)"},"limit":{"default":10,"description":"최대 결과 수 (기본 10)","type":"number"}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"search_standards","description":"MyKIFRS MCP의 search_standards 도구는 K-IFRS·일반기업회계기준·감사기준서·내부회계관리제도·ESG(KSSB) 기준서 본문을 전문검색합니다.\n\n[Purpose]\n- Find the 기준서 문단 grounding a treatment (\"사용권자산 손상 is which 문단?\").\n- For a hit's 원문·문맥, pass its unique_key to get_paragraph.\n\n[Usage]\n1. \"사용권자산 손상 관련 기준\" → query=\"사용권자산 손상\"\n2. \"1116호 안에서만 리스료 재측정\" → query=\"리스료 재측정\", std_num=1116\n3. \"수익 인식 5단계 문단 30개까지\" → query=\"수익 인식 단계\", limit=30\n\n[Response]\n- { hits, results:[{std_num, std_title, category, unique_key, snippet}] }\n- unique_key = \"{std_num}-{문단번호}\" (e.g. \"1116-33\", \"1109-6.1.1\", \"2-2.7\") — feed to get_paragraph.\n- snippet marks matches with ⟦…⟧ and elides with \"…\".\n- Empty query returns { error: \"검색어가 비어 있음\" }.\n\n[Rules]\n- Tokens of ≥3 chars go to FTS (AND-joined, rank-ordered); 1~2 char tokens become LIKE filters.\n  Short-token-only queries work but are ordered by std_num, not relevance.\n- Body 문단 only (item_type='paragraph') — 제목 rows are excluded, so a hit is always body text.\n- snippet is a fragment, never the whole 문단 — do not quote it as 기준서 원문.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"검색 키워드 (공백 구분)"},"std_num":{"description":"특정 기준서로 한정 (예: 1116)","type":"number"},"limit":{"default":10,"description":"최대 결과 수 (기본 10)","type":"number"}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":67,"grade":"C","scanned_at":"2026-09-19T10:15:59.125Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T10:15:59.084Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1562ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mykifrs.eocpa.kr/mcp","reachable":true,"authRequired":false,"latencyMs":1562,"serverInfo":{"name":"mykifrs","version":"0.11.2"}}],"packages":[],"repo":{"found":false},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}