# MyFSS

> Full-text search over FSS/FSC accounting supervision documents for Korean accounting professionals

- name: kr.eocpa/myfss
- version: 0.20.0
- connection class: R1 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/kr.eocpa%2Fmyfss
- tools: https://api.protogrid.dev/v1/servers/kr.eocpa%2Fmyfss/tools

**An agent can connect on its own if it already holds `X_EOCPA_TOKEN`, `X_EOCPA_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "myfss": {
      "type": "http",
      "url": "https://myfss.eocpa.kr/mcp",
      "headers": {
        "x-eocpa-token": "${X_EOCPA_TOKEN}",
        "Authorization": "${X_EOCPA_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${X_EOCPA_TOKEN}`, `${X_EOCPA_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-4d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,448 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 1 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 1,448 tokens to load them all
- tool set hash: f51848d24418d5b17a774959ea46e2d6
- tools last changed: 2026-10-16T13:39:24.916Z
- badge: [![protogrid quality](https://protogrid.dev/badge/kr.eocpa/myfss.svg)](https://protogrid.dev/servers/kr.eocpa/myfss)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-16 `get_usage_stats` removed
  - MyFSS MCP의 get_usage_stats 도구는 이 MCP 서버의 도구 사용량 통계를 반환합니다. [Purpose] - Per-tool usage·latency (avg/percentiles)·error rate·daily trend. [Usage] 1. "최근 30일 사용량" → (인자 없음) 2. "지난 7일만" → days=7 3. "전체 기간" → days=0 [Response] - Both tiers: { visibility, period:{days, since, until}, overview:{total_calls, unique_users, errors, error_rate, p50_ms, p90_ms, p99_ms}, by_tool:[{tool, calls, errors, error_rate, avg_ms, p99_ms, users}], by_day:[{day, calls}] } - visibility="public" adds `note`; period.days = "all" when days=0. - visibility="operator" adds users:[{user, is_owner, calls, distinct_tools, first_seen, last_seen, tools:[{tool, calls, avg_ms}]}] and top_targets:[{target, tool, calls, users}]. [Rules] - Tier by requester: admin token·local stdio → "operator", else "public". - users·top_targets exist only at operator tier — absence ≠ 0. - `user` is a truncated SHA-256 of the 접속 토큰 — not a person. stdio calls (no hash) never appear. - Timings = server-side handler time (no network).

Full history: https://api.protogrid.dev/v1/servers/kr.eocpa%2Fmyfss/changes

## Remotes

- https://myfss.eocpa.kr/mcp (streamable-http, auth api_key ${X_EOCPA_TOKEN}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (4)

- `get_document`: MyFSS MCP의 get_document 도구는 문서 전문을 반환합니다 — 첨부 HWP를 마크다운으로 변환한 본문.

[Purpose]
- To read and quote a found document — summary·snippet are never quoting grounds.

[Usage]
1. "그 자료 본문 보여줘" → ntt_id=12345
2. "길어서 잘렸는데 이어서" → ntt_id=12345, offset_chars=60000
3. "앞부분만 짧게" → ntt_id=12345, max_chars=8000

[Response]
- { ntt_id, date, board, source, title, nature, topics, depts, summary, url,
  attachments:[{file_name, ext, parsed}], body_total_chars, offset_chars, truncated, body }
- truncated=true means offset_chars+max_chars < body_total_chars — raise offset_chars to continue.
- Unknown id returns { error: "ntt_id {n} 없음" }.
- body = "(본문 없음)" when nothing was parsed and no HTML 본문 exists.

[Rules]
- body = parsed attachments (parsed=true) joined under "## 첨부: {file_name}" heads;
  with no attachment body it falls back to the detail-page HTML body (mostly FSC).
- attachments with parsed=false are NOT in body — disclose the gap, never hide it.
- Continue with offset_chars; raising max_chars grows the whole response.
- `list_recent`: MyFSS MCP의 list_recent 도구는 최신 문서 목록을 게시일 내림차순으로 반환합니다.

[Purpose]
- Query-less skim of "what came out lately", optionally narrowed by 게시판.

[Usage]
1. "최근 자료 뭐 있어" → (인자 없음 — limit=20)
2. "감리 지적사례 최신 10건" → board="sanction_case", limit=10
3. "금융위 보도자료 최신" → board="fsc_press"

[Response]
- { results:[{ntt_id, date, board, source, title, nature, topics, depts, summary, url}] }
- No total/offset — this tool has no pagination, and no snippet (there is no query).

[Rules]
- board takes the English key while the response returns the 한글 라벨 — same asymmetry as
  search_documents; never feed the response board back as a parameter.
- Sorted by 게시일(date) — retroactively registered old documents never surface as new.
- For period/topic narrowing or larger volumes use search_documents.
- `list_tags`: MyFSS MCP의 list_tags 도구는 검색 필터에 넣을 수 있는 어휘를 반환합니다 — 주제 태그·문서 성격·게시판·주요 담당부서.

[Purpose]
- Which values actually exist for search_documents' topics·nature·board·dept.
  Invented values return 0 rows, not an error — check here before a futile search.

[Usage]
1. "어떤 주제로 검색할 수 있어?" → (인자 없음)

[Response]
- { topics:[{name, n}], natures:[{name, n}], boards:[{key, label, n}], depts_top25:[{name, n}] }
- n = 그 값이 붙은 문서 수.
- boards[].key is what the board parameter takes; boards[].label is what responses show.

[Rules]
- topics is exact-match — no partial/synonym matching; pass a name from here verbatim.
- dept is the opposite, partial match — a fragment like "회계감리" works.
- depts_top25 is only the top 25 — a 부서 missing from the list still exists.
- `search_documents`: MyFSS MCP의 search_documents 도구는 금융감독원(FSS)·금융위원회(FSC) 회계·공시 자료를 전문검색합니다.

[Purpose]
- What 감독당국 checks — 심사·감리 지적사례·감독지침·모범사례 등 게시판 11종.
- Filters alone (no query) sweep a topic.

[Usage]
1. "전환사채 콜옵션 관련 감독원 자료" → query="전환사채 콜옵션"
2. "작년 감리 지적사례 전부" → board="sanction_case", date_from="2025-01-01", date_to="2025-12-31"
3. "내부회계관리제도 주제로 20건" → topics=["내부회계관리제도"], limit=20

[Response]
- { total, showing, offset, note, results:[{ntt_id, date, board, source, title, nature, topics,
  depts, summary, url, snippet?}] }
- total = 전체 건수, showing = 이번 페이지 — paginate with offset.
- source: "fss"=금융감독원, "fsc"=금융위원회.
- snippet marks matches with [ … ]; only when a query matched.

[Rules]
- board is asymmetric: param = English key, response = 한글 라벨 — never feed it back.
- topics·depts are joined strings (", " / " / "), not arrays — split first.
- ≥3-char tokens → FTS (AND, rank); 1~2-char → LIKE. No query → 게시일 DESC, no snippet.
- Corpus = 2010 onward (absent = 미수록); quote body via get_document, not summary·snippet.
