Skip to main content
Glama

stcc-mcp — 전화 분류 등급: 규칙 기반 결정적 계산, 0.6B는 판정 기준만 확인

진료 기록을 입력하면 L1–L5 등급 + 처치 문구 + 항목별 인용 + 부족한 판정 기준 목록이 출력됩니다. 분류는 결정적 규칙 엔진이 계산합니다 (225개 STCC 프로토콜 / 849개 분기 / 4,168개 판정 기준, 패키지에 포함). Qwen3-0.6B는 한 가지만 답합니다: 주어진 기록과 하나의 판정 기준에 대해 yes / no / unknown.

모델은 분기를 선택하지 않고, 등급을 정하지 않으며, 처치 문구를 생성하지 않고, tool call을 하지 않습니다.

⚠️ 응급 분류 시스템이 아니며, 진단을 하지 않고, 의사를 대체할 수 없습니다. L1–L5는 처치 단계입니다 (구급차 호출 / 즉시 응급실 / 오늘 진료 / 2일 내 외래 / 자택 관찰). 응급 상황은 즉시 120에 전화하세요.

세 단계로 실행하기

pip install stcc-mcp                                       # 或 uvx stcc-mcp …
ollama pull hf.co/chenhaodev/stcc-checker-0.6b-GGUF:Q8_0   # 640MB 核对器
stcc-mcp doctor                                            # 自检:索引 / Ollama / 模型
stcc-mcp triage --protocol Chest_Pain.md "$(cat 记录.txt)"

상주 프로세스 없음, Docker 없음, 네트워크 불필요. 엔진은 순수 표준 라이브러리이며, 제3자 의존성이 없습니다.

첫 실행 시 대부분 tier: L1 + certain: false가 보일 것입니다 — 이것이 정상입니다.

일반적인 진료 기록을 넣으면 가장 긴급한 등급과 함께 unresolved 목록이 나올 가능성이 높습니다. 오판이 아닙니다: 엔진은 어떤 분기의 **모든 조건이 no**일 때만 해당 분기를 배제할 수 있는데, 실제 진료에서는 한 분기의 모든 판정 기준을 묻지 않기 때문입니다.

예를 들어 경증 발열 기록에서 간호사가 의식/호흡/목 경직/발진을 물었지만 탈수 징후를 전혀 묻지 않았다면 (배뇨 감소, 안구 함몰, 피부 탄력 저하, 갈증), 해당 분기를 배제할 수 없어 출력이 그 분기의 등급 상한에 머뭅니다.

unresolved는 '이 몇 가지를 더 물으면 좁힐 수 있다'는 목록입니다. 답변을 기록에 추가하고 다시 실행하면 unresolved는 단조적으로 줄어듭니다. 하지만 등급은 어떤 분기가 완전히 배제될 때만 내려갑니다 — 실제로 같은 발열 기록에 탈수 징후를 보완한 후 unresolved가 8→2로 줄었지만 등급은 여전히 L1이었습니다. 남은 주 분기(노인 또는 면역저하자…탈수 증상: 같은 반쪽 문장)에 대해 검증기가 unknown을 주었기 때문입니다. 이때는 계속 묻는 것이 아니라 아래의 임계값 조절 장치를 움직여야 합니다. 자세한 내용은 경계 ①② 참조.

에이전트(Claude Code / 모든 MCP 클라이언트)에 연결:

pip install "stcc-mcp[mcp]" && stcc-mcp serve               # stdio MCP

Ollama는 MCP를 지원하지 않지만, 이 형태에서는 문제가 되지 않습니다: 소형 모델은 절대 tool call을 하지 않으며, 오케스트레이션 계층이 Ollama(HTTP)와 규칙 엔진(프로세스 내)을 각각 호출하므로 서로를 알지 못합니다. 0.6B의 자율 tool-calling은 알려진 문제 영역이며, 이 아키텍처는 설계상 이를 우회합니다.

Related MCP server: Quellgeist

출력

필드

의미

tier

L1L5, 안전 상한: 실제 답보다 가벼울 수 없음

disposition

해당 분기의 처치 문구 (규칙 테이블에서 가져옴, 모델 생성 아님)

certain

true = 증거가 등급 결정에 충분함; false = worst_case 상한

citations

판정 근거가 된 판정 기준 + 행 번호, 감사 가능

unresolved

부족한 판정 기준 목록 — 이를 보완하면 등급을 좁힐 수 있음

등급에서 행동으로의 매핑은 사용자의 오케스트레이션 계층이 결정합니다. 이 패키지는 등급과 처치 문구만 제공합니다.

no 판정의 임계값은 하나의 조절 장치

--no-threshold(기본 0.63): P(no) ≥ τ ⇒ no, 그렇지 않으면 yes/unknown 중 더 큰 값을 선택합니다.

동일한 모델의 릴리스 분포(n=3225)에서의 전체 트레이드오프 곡선:

τ

acc

false_no🔴

no_recall

0.63(기본)

0.9426

0.0000

0.9027

0.50

0.9457

0.0000

0.9189

0.40

0.9495

0.0024

0.9378

0.30

0.9498

0.0084

0.9432

0.10

0.9516

0.0120

0.9635

동일한 발열 진료 기록에서 τ만 변경:

$ stcc-mcp triage --protocol Fever_Adult.md --no-threshold 0.63 "$(cat 记录.txt)"
  tier L1 · 拨打救护车        · unresolved 2
$ stcc-mcp triage --protocol Fever_Adult.md --no-threshold 0.40 "$(cat 记录.txt)"
  tier L3 · 2小时内接受医疗护理 · unresolved 5

τ를 낮추면 ⇒ 검증기가 '질문했고 부인된' 판정 기준을 no로 판정할 가능성이 높아지고 ⇒ 분기가 배제되며 ⇒ 등급이 내려갑니다. 이것은 모델을 더 정확하게 만드는 것이 아니라, 동일한 트레이드오프 곡선에서 작업점을 바꾸는 것입니다 — 대가로 누락 진단 위험이 높아집니다.

false_no(성립해야 하는데 no로 판정)는 하드 게이트입니다 — 거짓 no는 참값 분기를 안전한 수렴에서 배제할 수 있습니다. no를 적게 판정하는 것은 과분류만 유발하므로 비용 조절 장치입니다. 기본값은 dev에서 false_no ≤ 0.0036로 선택되었습니다(해당 dev는 양성 예시 495개, 해상도 0.0020, 체계적으로 보수적). 따라서 '최적값'이 고정된 것이 아니라 곡선 전체가 제공되며, 자신의 비용 행렬에 따라 점을 선택하세요. 재현: python -m scripts.threshold_sweep --model <m> --split <s> --collect --report.

🔴 알려진 경계 (이 부분을 먼저 읽고 사용 여부를 결정하세요)

① 입력은 '프로토콜에 따라 한 차례 질문을 마친' 기록이어야 하며, 원본 자술이 아닙니다. 짧은 주호소의 unknown 비율은 94%입니다. 실제 풍부한 대화(IMCS-21, 748자 / 40턴)에서도 여전히 88%입니다. 이유는 STCC 전제 분기가 급성 위험 신호(질식, 청색증, 무반응)를 선별하는데, 자연 발생 말뭉치는 정의상 이러한 상황을 포함하지 않으며 의사도 묻지 않기 때문입니다 — 이것은 선택 효과이며, 더 풍부한 말뭉치로 바꿔도 효과가 없습니다.

② 실제 진료에서는 한 분기의 모든 판정 기준을 묻지 않습니다 따라서 등급은 해당 분기의 상한에 머뭅니다. 이것은 worst_case가 올바르게 작동하는 것이지만, 상한의 조임 정도는 전적으로 진료의 완전성에 의해 결정됩니다.

worst_case의 안전성은 '거짓 no를 생성하지 않음'을 전제로 합니다. 출력은 현재 증거로 배제할 수 없는 가장 긴급한 등급입니다(어떤 분기는 모든 조건이 no일 때만 배제됨). 따라서 과소 분류는 항상 0이며, 증거에 no가 하나 추가될 때마다 단조적으로 조여집니다(두 불변식은 tests/가 지킵니다). 정보가 부족하면 '모두 구급차 호출'로 퇴화합니다 — 이것은 설계 방향(과소 분류 10·d² vs 과분류 d)이며 버그가 아닙니다.

④ 분류 자체는 silver입니다: 분기 수준 참조는 강력한 모델이 확정하고 인간이 검토했지만, 최종 결론에는 실제 간호사의 gold가 여전히 부족합니다.

unknown이 왜 일급 상태인가

STCC 분기 의미는 '이 분기의 어떤 조건이 이면 ⇒ 적중; 모두 아니오이면 ⇒ 다음 분기로 이동'입니다. '언급되지 않음' ≠ '아니오라고 말함': 전자는 반드시 추가 질문을 유발해야 하고, 후자만 분기를 전환할 수 있습니다. unknownno로 압축하는 것은 근거 없이 음성을 위조하는 것과 같아서 엔진이 잘못된 분기로 가게 됩니다.

판정 기준 텍스트

인덱스의 판정 기준은 항목별 독립 재작성 버전입니다(5,214/5,214). 순수 임계값과 단일 의학 용어(「기침」「체온>100.4°F」)는 사실대로 유지됩니다. 재작성에는 세 가지 관문이 있습니다: 수치/부정/길이/유사성 형식 검증, oracle 재생이 원본과 비트 단위로 일치, 다운스트림 checker 지표 하락 없음.

개발

uv sync
uv run pytest -q                        # 27 条回归
uv run python -m scripts.mcp_selfcheck  # oracle 回放 4,168 条判据,<1 秒

scripts/mcp_selfcheck.py는 엔진의 충실도 자가 점검입니다: 각 판정 기준을 yes로, 나머지를 no로 설정하고 엔진이 도달한 분기와 처치를 확인합니다. 이것은 모델 평가가 아닙니다 — 일치하지 않으면 컴파일 또는 평가에 구멍이 있는 것입니다.

모델

chenhaodev/stcc-checker-0.6b-GGUF(Q8_0 / Q4_K_M). 판정 기준 수준 false_no 0.0024, 지연 중앙값 ~250ms, 엔드투엔드 1.25s/건.

Apache-2.0.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    An agentic AI system that enables healthcare professionals to log patient symptoms, retrieve similar clinical cases, and search medical documents using RAG. It integrates a Chroma vector database with the Model Context Protocol to provide real-time clinical decision support.
  • A
    license
    A
    quality
    A
    maintenance
    First-line incident triage you can trust: ranked root-cause hypotheses where every claim cites a real evidence handle — and the agent abstains rather than guess.
    1
    1
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Evidence-grounded biomedical retrieval and summarization through the Model Context Protocol, enabling queries for biomedical evidence with citation-backed results.
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • Physician-reviewed medical opinions and prescriptions for AI agents.

  • Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.

  • Doctor-reviewed blood-test markers, conditions & symptoms as agent tools. EN/RU/HE. Hosted.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/devhc123/stcc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server