rootcause-mcp
RootCause MCP
모든 MCP 호환 AI 에이전트를 위한 의학적 추론, 감별 진단, 임상 RCA 하네스.
English | 繁體中文
미션
RootCause MCP는 Claude Code, Codex, Cline, OpenCode, OpenClaw, Z.ai 에이전트와 같은 범용 에이전트가 다음의 특화된 워크플로우를 수행할 수 있게 합니다:
호스트 에이전트를 통해 비식별화된 임상 문서를 인벤토리화하고 추출합니다.
정확한 원문 스니펫과 함께 출처 기반 증거를 등록하고, 출처에 충실한 시간을 보존하며, 승인된 출처/비식별화/독립성 검토를 추가합니다.
표현형과 시간 경과에 대한 최대 합리적 기전 기반 감별 진단을 구축하고, 작업 리드를 명시적으로 선택한 다음, 별도의 검증된 문헌 기록이 정량적 보정을 확립하는 경우에만 직접 우도비를 사용하여 출처 연결 증거를 연관시킵니다.
미지의 항목을 추론 입력으로 취급하고 각 후보의 근거, 지지/반박/중립 증거, 판별자, 질적 확실성, 편향을 기록합니다.
진단 추론을 Fishbone 및 5-Why에 연결하고, 모든 원인에 대해 승인된 HFACS-MES 처분을 획득하며, 보수적 인과 증명 의무 감사를 실행합니다.
명시적 출처 계보와 결정적 적합성 결과를 포함한 유형화된 기계 판독 가능 보고서를 생성합니다.
에이전트가 추론을 수행합니다. MCP 서버는 숨겨진 모델 상태나 원시 비공개 사고 과정을 검사하지 않습니다. 서버는 에이전트가 명시적으로 외부화하기로 선택한 추론을 위한 스키마, 워크플로우 제약, 영속성, 계산, 감사 기록을 제공합니다.
임상가 대상 출력의 경우, 내장 Markdown 렌더러는 정식 진단명, 검사명, 약물명, 기기명, 시술명을 영어로 유지하면서 번체 중국어 설명 문구를 지원합니다. 정확한 출처 인용, 단위, ID, 코드, JSON/FHIR 값, 사용자 정의 템플릿 언어는 기계 번역되지 않습니다.
이 프로젝트는 의료 기기가 아니며 자율적으로 환자를 진단하거나 치료해서는 안 됩니다. 임상 사용에는 자격을 갖춘 인간 검토, 로컬 거버넌스, 개인정보 보호 통제, 출처 문서의 독립적 검증이 필요합니다.
Related MCP server: SafetyOps MCP Server
MVP 상태
결정적 최종 보고서 경계가 구현되었습니다: 중첩 보고서 섹션은 유형화되어 있고, 모든 보고서는 기계 판독 가능한 conformance_checks[]를 포함하며, 출처, DDx, 근본 계보, 인과 처분, 검토자, 무결성 실패에 대해 안전하지 않은 최종화가 차단됩니다. 최종 스냅샷은 검토자, 시간대 인식 시간, 재계산 가능한 SHA-256 해시를 포함하며 재귀적으로 변형을 거부합니다.
DDx 범위는 이제 개수에서 추론되는 것이 아니라 명시적입니다: 에이전트는 증후군에 적합한 프레임워크를 선택하고, 모든 표준 셀을 검토하며, PRIMARY 범위 감사를 영속화합니다. REVIEWED_INSUFFICIENT_DATA는 미지의 항목과 유형화된 판별자를 유지합니다; NOT_ASSESSED는 최종화를 차단합니다. 감사는 문서화된 범위를 확립하며 임상적 정확성을 확립하지 않습니다.
최종 적합성은 또한 완전한 추가 전용 출처 검토 원장을 포함하고 최종 인벤토리 투영, 독립성 계보, 명시적 선두 진단 선택, 출처 보정 LR 링크, 출처 충실 시간 의미론, 원인별 HFACS 검토, 지침/준비 사실, 격차 수, Why/근본/인과 계보를 재계산합니다. 날짜, 범위, 상대적, 미지의 시간은 유효한 최종 산출물에 남을 수 있지만 조용히 정렬되거나 시간성을 확립하는 데 사용될 수 없습니다.
릴리스 2.0.0a3 (2026-08-19) 는 여전히 엔지니어링 알파이며 임상적으로 검증된 에이전트 MVP가 아닙니다. 공개 6건 코퍼스와 러너는 엔지니어링 참조 자료입니다. 공식 결과에는 최소 3개의 실제 에이전트 런타임 × 6건 × 2회 반복, 저장소 외부의 비공개 사례 번들, 별도로 보호된 비공개 홀드아웃 골드, 파일시스템 격리, 신뢰할 수 있는 런타임/서버 MCP 추적, 작업당 2명의 눈가림 자격을 갖춘 임상 검토자와 불일치 조정이 필요합니다. 해당 평가는 현재 AGENT_EVAL_NOT_ESTABLISHED입니다. MVP 적합성 및 평가를 참조하세요.
이 하네스가 작업을 절약하는 이유
일반 에이전트는 모든 문서를 읽고 하나의 긴 프롬프트로 보고서를 작성할 수 있습니다. 그 접근 방식은 작동하지만 도구 스키마, 이전 사실, 형식 지정, 확률 계산, 그래프 구성, 완전성 검사, 보고서 산문에 컨텍스트를 반복적으로 소비합니다. RootCause MCP는 이러한 반복 작업을 결정적 코드로 이동하면서 임상 판단은 에이전트에게 남깁니다.
작업 | 에이전트 전용 워크플로우 | RootCause MCP 지원 |
도구 컨텍스트 | 모든 스키마 로드 |
|
도구 결과 | 중복 텍스트와 JSON 재읽기 | 완전한 SDK 2.0 |
정량적 증거 링크 | 재계산 및 서술 | 출처 보정 직접 LR에 대해서만 호환성 산술; 그 외에는 중립적 질적 링크 |
사례 연속성 | 이전 대화 재주입 | 영속화된 집계 및 재시작 재수화 |
보고서 조립 | DDx, 증거, 격차, 지표, 그래프 재작성 | 결정적 |
품질 검토 | 모든 체크리스트 항목 기억 | 자동 구조적 추적 가능성 경고 |
토크나이저 독립 회귀 픽스처는 도구 프로필 스키마 바이트, 중복 텍스트 폴백, 결정적 보고서 생성을 비교합니다. 스키마 변경이 해당 측정값을 변경하므로 현재 CI 아티팩트를 진실의 원천으로 사용하세요. 이러한 바이트 프록시는 특정 모델 토크나이저에 대한 약속이 아닙니다. 에이전트는 여전히 출처 추출물을 읽고, 임상적으로 그럴듯한 가설을 생성하고, 방어 가능한 증거 관계를 선택하고, 최종 산출물을 검토해야 합니다. 비중립 LR에는 별도의 검증된 LITERATURE 보정 기록이 필요합니다. 보정되지 않은 사전/사후 확률은 임상 확률이나 확실성으로 제시될 수 없습니다; LR=1.0은 중립/정량적으로 미지수를 의미하며 지지나 반박으로 계산되지 않습니다.
경량(Flash) 모델을 위한 다중 루프 지침
경량 또는 빠른 모델(Flash/mini 변형 등)은 복잡한 임상 사례에서 흔히 어려움을 겪습니다: 결론에 성급히 뛰어들고, 단일 가설 후 중단하며(조기 종결), 반증 검사를 소홀히 하고, 인지적 성찰을 건너뜁니다.
RootCause MCP는 능동적 추론 상태 머신으로 작동합니다:
모든 핵심 도구 호출은 사례 상태를 평가하는 구조화된
guidance페이로드를 반환합니다.단계 진행:
EVIDENCE_COLLECTION→DIFFERENTIAL_EXPANSION→BAYESIAN_EVALUATION→COGNITIVE_AUDIT→READY_FOR_SYNTHESIS를 통해 진행 상황을 자동으로 추적합니다.준비 체크리스트: 검증된 출처 콘텐츠, 유형화된 후보 레이블, 두 개의 비-
UNKNOWN기전에 걸친 최소 3개의 고유 진단, 적용 가능한 놓치면 안 되는 진단, 모든 활성 진단에 대한 증거/검사 처분, 선두/놓치면 안 되는 진단에 대한 지지 및 모순 또는 유형화된 배제 계획, 명시적 불확실성/편향 검토를 요구합니다. 이는 결정적 최종화 하한선이며 임상 범위 목표나 상한이 아닙니다.다음 프롬프트 지시: 각 응답에 정확한 도구 이름이 포함된 명시적
next_recommended_actions와 소크라테스식push_questions를 제공하여 Flash 에이전트가 사례가 완료될 때까지 반복적으로 루프할 수 있게 합니다.감사 도구: 에이전트 또는 외부 오케스트레이터는
rc_audit_differential_breadth를 호출하여 모든 셀 프레임워크 범위를 영속화하고rc_audit_reasoning_state를 호출하여 보고서 생성 전에 남은 전제 조건을 검사할 수 있습니다.
결정적 출처 및 데이터 계보
데이터 통합 및 ETL 계보 아키텍처(Airbyte의 스트림/소스 검증 모델 등)에서 영감을 받아 RootCause MCP는 확률적 LLM 메모리에 의존하지 않고 결정적, 암호화적 증거 근거를 확립합니다:
축어적 스니펫 및 계보 앵커: 증거 기록은 정확한
raw_snippet인용, 파일 경로, 줄 로케이터, SHA-256 다이제스트를 캡처합니다.결정적 출처 검증:
ProvenanceVerifier도메인 서비스는 LLM을 호출하지 않고 디스크의 물리적 원시 파일(TXT, CSV, HL7, XML)을 스캔하여 부분 문자열 일치와 줄 번호를 검증합니다.변조 및 환각 탐지: 에이전트가 인용을 지어내거나, 사용할 수 없는 출처를 참조하거나, 바이트가 고정된 매니페스트와 더 이상 일치하지 않는 출처를 제시하면 서버는 증거를 검증되지 않은 상태로 유지하고 감사 진단을 반환합니다.
추가 전용 출처 검토: 고정된 매니페스트와 다이제스트는 절대 변경되지 않습니다. 추출, 비식별화, 독립/파생 계보는
rc_adjudicate_source를 통해서만 진행됩니다; 모든 최종 출처에는 허용 목록에 있는 검토자, 시간, 이유, 안정적인 판정 ID가 필요합니다.클린 아키텍처 경계: RootCause MCP는 추론 계약과 출처 검사에 집중합니다; 원시 PDF, DOCX, 이미지, 스캔, 스프레드시트, EHR 내보내기 배치를 파싱하지 않습니다.
호스트 에이전트 또는 승인된 추출기는 정확한 콘텐츠, 출처 위치, 해시, 단위, 부정, 시간 정밀도, OCR 수정, 추출 방법을 보존하면서 인용 준비가 된 텍스트/셀을 생성해야 합니다. 구조화된 원자적 발견 사항만 RootCause MCP로 보내고, 바이너리 또는 접근 불가능한 출처에 대해 MCP 검증을 주장하지 마세요.
프로토콜 리소스, 템플릿 및 4계층 마취 M&M 추론
패키징된 YAML 프로토콜과 도메인 플레이북은 버전 관리된 비규범적 회고적 DDx 리소스로, 번들 에이전트 하네스가 에이전트에게 읽도록 지시합니다. Markdown 템플릿은 결정적 렌더링 입력입니다. 런타임 준비 임계값과 격차 규칙은 여전히 Python으로 구현됩니다; 프로토콜 YAML만 편집한다고 해서 해당 게이트가 변경되지는 않습니다. 이 플레이북은 회고적 기전 검토만 촉진합니다; 활성 치료 관리, 치료/구조 지침, 환자별 투약을 제공하지 않습니다.
구성 가능한 SOP 및 도메인 플레이북 (
config/protocols/,config/domains/):anesthesia_mm_rca_protocol.yaml: 4계층 역방향 인과 프레임워크(계층 0 말기 리듬 → 계층 1 ACLS 5H5T → 계층 2 삼중 스트림 트리거 [환자 기준선 vs 수술적 손상 vs 마취 약리학] → 계층 3 HFACS 잠재 시스템 격차).perioperative_shock.yaml및toxicology_sedation.yaml: 동적 LVOT 폐쇄(SAM) 및 프로포폴 주입 증후군(PRIS) 고려를 위한 비규범적 회고적 DDx 프롬프트로, 활성 치료 프로토콜이 아닙니다.
사용자 정의 가능한 Markdown 템플릿 (
config/templates/):anesthesia_mm_rca_report_template.md: 결정적 슬롯 채우기가 포함된 전문 부서 M&M 컨퍼런스 검토 형식.clinical_reasoning_report_template.md: 일반 임상 추론 및 환자 안전 조치 보고서.
아키텍처
graph TB
A[General-purpose AI Agent] -->|MCP SDK 2.0| T[8 facade or 25 / 24 / 46 discrete tools]
D[Clinical documents] --> A
subgraph Harness
T --> S[ServerState / case aggregate]
S --> O[ClinicalReasoningOrchestrator]
O --> E[Evidence + provenance + hash]
O --> H[Hypotheses + Bayesian updates]
O --> R[ReasoningChain]
O --> G[Clinical Guidance Engine]
S --> C[ThinkingChain: explicit rationale records]
end
E --> DB[(SQLite / SQLModel)]
H --> DB
R --> DB
C --> DB
S --> CR[CONTRACT report]
CR --> J[JSON]
CR --> F[FHIR-compatible DiagnosticReport]
CR --> M[Deterministic Markdown]
T --> RCA[Fishbone / 5-Why / HFACS-MES / conservative causation audit]의존성 방향은 DDD(Domain-Driven Design)를 따릅니다:
Interface -> Application -> Domain <- Infrastructure무엇이 영속화되는가
SDK 2.0 서버는 의료 추론 애그리거트를 SQLite에 영속화합니다:
구조화된 증거 및 출처 메타데이터
감별 진단 가설 및 베이즈 업데이트 이력
에이전트가 제공한 명시적 ThinkingStep 레코드
오케스트레이터가 생성한 ReasoningStep 감사 레코드
RCA 세션, 소스 매니페스트, Fishbone 다이어그램 및 Why Tree
인증, 저장 데이터 암호화, 테넌트 격리, 검토자 역할 권한 부여, 데이터베이스 마이그레이션 및 규제 배포 제어는 임상 프로덕션 사용 전에 배포 환경에서 제공되어야 합니다. PHI 및 임상 데이터 정책을 참조하십시오.
빠른 시작 및 자동 설치
🚀 원클릭 자동 설정
uv를 자동으로 감지하고, 가상 환경을 동기화하고, 클라이언트 MCP 하네스(Copilot 네이티브 .mcp.json, VS Code .vscode/mcp.json, Claude Desktop 및 Cline)를 구성하고, 프로덕션 stdio 진단을 단일 명령으로 실행할 수 있습니다:
Windows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1Linux / macOS / WSL:
chmod +x scripts/setup.sh
./scripts/setup.shMCP 명령은 서버를 시작하는 Agent 또는 확장 호스트에서 실행됩니다. VS Code가 WSL, SSH, Dev Container 또는 다른 원격 호스트를 사용하는 경우, 해당 원격 통합 터미널에
uv를 설치하고scripts/setup.sh를 실행하십시오. 로컬 Windows에서setup.ps1을 실행해도 원격 호스트에uv가 설치되지 않습니다. 설정 후 Developer: Reload Window를 실행하십시오.
범용 Python CLI:
uv run --locked python scripts/install.py --profile all --target all
uv run --locked python scripts/mcp_doctor.py --config all🔬 스크립트 기반 합성 케이스 회귀 테스트
번들된 6개의 합성 시나리오(SAM, PRIS, 수혈 고칼륨혈증, 수술 후 PE, LVAD 흡입, 지연 진단)를 실행합니다. 이 스크립트는 개발자 회귀/데모용이며, 네이티브 매니페스트/최종화 승인 테스트나 임상 검증을 대체하지 않습니다:
uv run python scripts/run_case_trial.py --case all에이전트 평가 스캐폴드
공개 코퍼스 드라이런은 러너/아티팩트 메커니즘만 확인하며 의도적으로
AGENT_EVAL_NOT_ESTABLISHED를 반환합니다:
eval_output="$(mktemp -d)"
uv run python scripts/run_agent_eval.py dry-run \
--output-root "$eval_output" \
--repeats 2공식 실행은 저장소 외부의 비공개 케이스와 별도로 보호된 비공개 골드(gold)를 사용해야 합니다. 실패 시 폐쇄(fail-closed) 사전 점검부터 시작하십시오:
uv run python scripts/run_agent_eval.py \
--preflight \
--matrix /secure/adapter-matrix.json \
--corpus-file /secure/private-corpus/corpus.json \
--gold-dir /secure/private-holdout \
--attest-holdout-isolation \
--authorize-provider-egress공식 실행 전에 평가 프로토콜을 참조하십시오. 송신 권한 부여는 승인된 비식별 합성 입력에만 적용되며, 실제 임상 기록이나 PHI에는 절대 적용되지 않습니다.
🛠️ 수동 설치 및 서버 실행
# Install the locked environment
uv sync --locked --all-extras
# Run the MCP SDK 2.0 stdio server
uv run --locked rootcause-mcpCopilot CLI와 Agent Host는 저장소 루트의 .mcp.json을 직접 읽습니다:
{
"mcpServers": {
"rootcauseMcp": {
"type": "local",
"command": "uv",
"args": ["run", "--locked", "rootcause-mcp"],
"cwd": ".",
"env": {
"ROOTCAUSE_TOOL_PROFILE": "all",
"ROOTCAUSE_RESPONSE_MODE": "compact"
},
"tools": ["*"]
}
}
}VS Code 편집기는 .vscode/mcp.json을 사용하여 활성 Agent
Host에 전달합니다:
{
"servers": {
"rootcauseMcp": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--locked",
"--directory",
"${workspaceFolder}",
"rootcause-mcp"
],
"cwd": "${workspaceFolder}",
"env": {
"ROOTCAUSE_TOOL_PROFILE": "all",
"ROOTCAUSE_RESPONSE_MODE": "compact"
}
}
}
}두 파일 모두 의도적으로 동일한 rootcauseMcp 서버 키를 사용하므로 Agent Host가
두 개의 MCP ID를 생성하지 않습니다. 공유 구성은 PATH에서 확인되는
uv 이름만 사용합니다. C:\...\uv.exe, ROOTCAUSE_DATA_DIR 또는
ROOTCAUSE_AUTHORIZED_REVIEWERS를 커밋하지 마십시오. 보호된 런타임 값은 호스트
환경에서 제공하십시오. 관련 없는 MCP 서버는 VS Code 사용자 또는 원격 사용자
구성에 두고 개인 실행 파일 및 데이터 경로를 이 저장소에 커밋하지 마십시오.
Copilot 원격 spawn ... uv.EXE ENOENT
이는 실행 호스트가 구성된 실행 파일을 찾을 수 없음을 의미합니다. WSL, SSH 또는 컨테이너 원격 확장 호스트에서 흔한 원인은 로컬 Windows 절대 경로를 전달하는 것입니다. VS Code 원격 터미널에서 다음을 실행하십시오:
uv --version
uv sync --locked --all-extras
uv run --locked python scripts/install.py --profile all --target all \
--skip-tests --skip-trial
uv run --locked python scripts/mcp_doctor.py --config all의사(doctor)는 두 구성 모두와 해당 stdio 핸드셰이크에 대해 PASS를 보고해야 합니다.
그런 다음 Developer: Reload Window를 실행하고, MCP: List
Servers에서 rootcauseMcp를 다시 시작하고, 도구 카탈로그 업데이트 후 MCP: Reset Cached Tools를 사용하십시오. 공식 VS Code MCP 구성
참조
및 GitHub Copilot CLI MCP
구성을 참조하십시오.
환경 변수:
변수 | 용도 | 기본값 |
| SQLite 데이터베이스, 체크포인트, 학습된 규칙 및 생성된 내보내기 | OS 사용자 데이터 디렉터리 |
|
| 패키징된 |
| 정확한 일반 텍스트 출처 확인을 위한 루트의 OS 경로 구분 허용 목록 | 현재 작업 디렉터리 |
| 소스/HFACS를 수동으로 검증, 판정하거나 최종화할 수 있는 운영자 제어 쉼표 구분 ID | 비어 있음(수동 검토/최종 승인 비활성화) |
| 도구 카탈로그: |
|
|
|
|
에이전트 워크플로
호환 에이전트는 개별 도구 워크플로 또는 초소형 8-퍼사드 워크플로를 사용할 수 있습니다:
개별 도구 워크플로
rc_start_session(source_manifest={...})
-> rc_add_evidence(temporal={kind=..., raw_value=...})
-> rc_adjudicate_source # each manifest source; authorized append-only review
-> rc_think_aloud / rc_identify_gaps / rc_challenge_assumption
-> rc_propose_hypothesis(planned_tests=[...])
-> rc_audit_differential_breadth(audit={...})
-> rc_link_evidence_to_hypothesis(calibration_status=...,
calibration_source_ref=...)
-> rc_select_leading_hypothesis(reason=..., changed_by=...)
-> rc_get_differential_diagnosis
-> rc_get_reasoning_chain
-> rc_detect_conflicts
-> rc_create_checkpoint
-> rc_init_fishbone / rc_add_cause / rc_confirm_classification
-> rc_ask_why / rc_mark_root_cause
-> rc_verify_causation # conservative audit, not clinical causal proof
-> rc_generate_contract_report(format="markdown", detail_level="standard",
locale="zh-TW", audience="clinician", finalize=false)초소형 퍼사드 워크플로(8개 도구 프로필)
rc_rca(action="session_start")
-> rc_evidence(action="add")
-> rc_rca(action="session_adjudicate_source")
-> rc_thinking(action="think" / "gap" / "challenge" / "reflect")
-> rc_hypothesis(action="propose" / "audit_breadth" / "link" / "select_leading" / "rank")
-> rc_audit(action="stage_guidance" / "detect_conflicts")
-> rc_checkpoint(action="create")
-> rc_diagram(action="timeline" / "validate")
-> rc_report(action="preview")rc_propose_hypothesis(또는 rc_hypothesis(action="propose"))는
mechanism_category, diagnostic_role, reasoning_basis, 정성적 certainty,
임상 근거, 대안, 후보별 미지 사항 및 유형화된 계획
검사를 기록합니다. 합리적인 최대 범위의 고유 메커니즘을 구축하십시오. 세 가지 진단은
최종화 하한선이지 추론 목표나 상한선이 아닙니다. 이는 숨겨진 모델 추론의 덤프가
아닌 명시적 에이전트 작성 레코드입니다.
내장 렌더러를 사용하면 locale="zh-TW" 및 audience="clinician"은
영문 표준 의학 명칭과 확장된 후보 수준 증거/미지 사항/검사 보기를 포함한
번체 중국어 토론을 생성합니다. 사용자 정의 템플릿은 작성된 언어를 유지하며,
JSON 및 FHIR 데이터는 번역되지 않습니다.
페이로드 예시는 에이전트 통합 가이드를 참조하십시오.
MCP SDK 2.0 고급 기능
RootCause MCP는 MCP SDK 2.0 프리미티브의 전체 스펙트럼을 활용하여 최대의 에이전트 사용성을 제공합니다:
1. 🧰 도구 응축(8개 통합 퍼사드 도구)
ROOTCAUSE_TOOL_PROFILE=condensed를 사용하면 노출된 표면이
8개의 다형성 퍼사드 도구로 통합되어 발견/스키마 오버헤드가 줄어듭니다. 일부
관리 작업은 개별 전용으로 유지됩니다. 번들 하네스는 정확한 매핑을 나열하고
조용히 건너뛰는 대신 적절한 프로필에 동일한 세션을 전달합니다:
rc_evidence: 물리적 출처를 추가, 조회 또는 검증합니다.rc_hypothesis: 후보 제안, 프레임워크 범위 감사, 증거 연결, 리드 명시적 선택, 검사 또는 제외.rc_thinking: 임상 근거 기록, 인지 편향 반성, 격차 식별 또는 가정 도전.rc_audit: 다중 루프 지침 조회, 추론 완전성 감사 또는 모순/누락 감지.rc_report: 결정적 계약 보고서 생성 또는 감사 아티팩트 내보내기.rc_diagram: 시간순 이벤트 타임라인 렌더링, Mermaid 구문 감사 또는 그래프 내보내기.rc_checkpoint: 무결성 검사된 케이스 상태 스냅샷 생성, 나열 또는 복원.rc_rca: 세션/소스 검토와 전통적인 Fishbone(6M), 5-Why 및 HFACS-MES 워크플로 라우팅.
2. 📚 MCP 정적 및 동적 리소스
도구 호출 오버헤드 0회로 도메인 지식과 케이스 상태를 검사합니다:
정적 프로토콜 및 템플릿 URI(2.0.0a3 스냅샷의 19개 리소스):
clinical://contracts/case-input-manifest: 표준 다중 소스 핸드오프 스키마.clinical://contracts/case-analysis-report: 표준 표준화 출력 스키마.clinical://protocols/anesthesia-mm-rca-protocol: 4계층 역방향 인과 추론 SOP.clinical://protocols/clinical-reasoning-sop: 핵심 진단 조사 플레이북.clinical://protocols/non-death-adverse-event-protocol: 근접 오류 및 유해 사례 장벽 분석 프로토콜.clinical://protocols/timeline-patterns: 출처 충실 시간 패턴 정의.clinical://templates/anesthesia-mm-rca-report-template: Markdown 보고서 템플릿.clinical://templates/clinical-reasoning-report-template: 일반 임상 추론 보고서 템플릿.clinical://templates/clinician-ddx-discussion-zh-tw: 임상의용 번체 중국어 DDx 토론 템플릿.clinical://templates/near-miss-adverse-event-rca-template: 스위스 치즈 및 장벽 실패 템플릿.clinical://domains/*: 9개의 비규범적 회고적 DDx 플레이북:anaphylaxis-crisis,anesthesia-perioperative-arrest,delayed-diagnosis-systems,difficult-airway-crisis,local-anesthetic-toxicity,lvad-mechanical-crisis,pediatric-opioid,perioperative-shock,toxicology-sedation.
동적 케이스 리소스 템플릿(2.0.0a3 스냅샷의 4개):
clinical://sessions/{session_id}/report: 현재 렌더링된 케이스 보고서.clinical://sessions/{session_id}/timeline: 현재 시간순 이벤트 타임라인.clinical://sessions/{session_id}/guidance: 실시간 추론 단계, 체크리스트 및 소크라테스식 질문.clinical://sessions/{session_id}/conflicts: 실시간 모순, 역설 및 누락 감사.
3. 🎯 MCP 사전 구성 임상 프롬프트(5개)
Claude Desktop, VS Code 또는 Cline에서 원클릭으로 표준화된 임상 조사 워크플로를 시작합니다:
anesthesia_mm_investigation: 4계층 역방향 마취 M&M 조사.perioperative_crisis_differential: 5H5T 트리아지를 통한 위기 감별 확장.near_miss_barrier_analysis: 스위스 치즈 비사망 유해 사례 장벽 RCA.delayed_diagnosis_investigation: 진단 궤적 및 인지 편향 조사.clinician_ddx_discussion_zh_tw: 최대 합리적 메커니즘 범위, 명시적 미지 사항, 출처 연결 지지/반박/중립 증거, 변별 검사 및 정성적 확실성을 갖춘 일반 임상의용 번체 중국어 DDx 토론.
4. 🧠 서버 수준 지침 및 메타 프롬프트
서버는 MCP 핸드셰이크 중에 시스템 수준 메타 지침을 자동으로 제공하여 AI 에이전트를 엄격한 출처 근거, 4계층 역방향 인과 추론, 반증 가설 검증 및 인지 편향 투명성에 고정시킵니다.
도구 카탈로그
Category | Count | Purpose |
Cognitive transparency | 5 | 명시적 근거, 반성, 공백, 가정, 사고 사슬 검색 |
Evidence & Provenance | 3 | 원시 스니펫과 SHA-256 해시로 구조화된 증거 추가, 검색, 검증 |
Differential diagnosis | 6 | 감별 진단 제안, 프레임워크 범위 감사, 증거 연결, 주 진단 명시적 선택, 가설 검사 및 배제 |
Reasoning chain & guidance | 3 | 감사 행동 사슬 검색, 다이어그램 내보내기, 추론 완료 감사 |
Gap Analysis & Conflict Detection | 1 | 진단 모순, 역설적 약물 반응, 모니터링 누락 감지 |
Case Checkpointing | 3 | 무결성 검사된 JSON 케이스 스냅샷 생성, 복원, 목록화 |
CONTRACT report | 1 | 예비 또는 게이트 최종 JSON, FHIR 호환, 결정적 Markdown 출력 생성 |
HFACS-MES Taxonomy | 6 | 분류 제안, 확인, 검사, 학습, 재로드, 매핑 |
Session Management | 5 | SQLite 영속성을 통한 RCA 세션 시작, 소스 검토 판정 추가, 검색, 목록화, 아카이브 |
Fishbone (Ishikawa 6M) | 4 | 초기화, 원인 추가, 검사, 내보내기 |
Why Tree (5-Why Analysis) | 6 | why 질문, 검사, 교차 연결, 근본 원인 표시, 내보내기, 교육(SQLite 영속) |
Verification & Diagrams | 3 | 보수적 인과 감사, Mermaid 구문 감사기, 타임라인 렌더러 |
Total (Discrete) | 46 |
|
시각화 출력
Artifact | 기계 판독 가능 출력 | 다이어그램 출력 |
Fishbone | JSON | 척추, 원인, 하위 원인이 포함된 Mermaid 6M Ishikawa 레이아웃 |
Why Tree | JSON | 근본 원인과 교차 인과 링크가 포함된 Mermaid 계층 구조 |
Reasoning Chain | JSON | 증거/가설 참조가 포함된 Mermaid 순서형 감사 추적 |
Evidence Graph | CONTRACT JSON | 임베디드 Mermaid 지원/모순 그래프 |
Event Timeline | JSON | 임상 단계 및 타임스탬프가 포함된 Mermaid |
품질 게이트
이 저장소와 CI는 다음 엔지니어링 게이트를 정의합니다:
uv run pytest -W error::ResourceWarning
uv run ruff check .
uv run ruff format --check .
uv run mypy src --ignore-missing-imports
uv run bandit -c pyproject.toml -r src --severity-level low --confidence-level medium
uv run vulture src tests --min-confidence 80
uv export --frozen --no-dev --no-emit-project --no-hashes --quiet --output-file requirements-audit.txt
uvx --from "pip-audit==2.9.0" pip-audit --strict --requirement requirements-audit.txt
uv build
uvx --from "twine==6.2.0" twine check dist/*테스트 수, 커버리지, 보안 결과, 패키징 결과의 신뢰할 수 있는 출처로 현재 CI 실행 및 릴리스 아티팩트를 사용하십시오. 이러한 엔지니어링 게이트는 소프트웨어 동작을 검증하며, Agent의 임상 성능이나 임상 타당성을 확립하지 않습니다.
프로젝트 구조
src/rootcause_mcp/
├── domain/ # Entities, value objects, repository contracts, services
├── application/ # Case aggregate, orchestration, progress guidance
├── infrastructure/ # SQLModel repositories and safe export paths
├── interface/ # MCP tool schemas and handlers
└── server_v2.py # Sole MCP SDK 2.0 entry point문서
연구 및 출처 표시
이 설계는 공개적으로 이용 가능한 임상 추론, RCA, FHIR, 출처(provenance), 인과 추론, Agent 평가 작업을 참조합니다. 날짜가 표시된 연구 조사는 제품 경계를 명시합니다. 저장소별 보고서는 무엇을 배울 수 있는지, 기반 패키지를 어떻게 통합하고 인용해야 하는지, 그리고 어떤 라이선스 또는 데이터 사용 제약이 직접 재사용을 금지하는지를 기록합니다.
라이선스
Apache License 2.0. LICENSE 참조.
Available Tools
21 toolsrc_add_causal_linkA
Add a directed or bidirectional causal relationship between Why nodes. Use this to capture escalation loops, feedback cycles, or mitigation links that are not visible in a simple linear 5-Why chain.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| source_node_id | Yes | The source WhyNode ID | |
| target_node_id | Yes | The target WhyNode ID | |
| relationship | No | Type of causal relationship | feedback |
| strength | No | Relationship strength (0.0-1.0) | |
| bidirectional | No | Whether the influence also goes from target back to source | |
| note | No | Optional explanatory note for this link | |
| evidence | No | Optional evidence supporting the link |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'adds a relationship' without disclosing mutation effects, prerequisites, or error states. Does not explain behavior on duplicate links or required permissions.
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?
Two concise sentences: first defines action, second provides context. No redundant or filler content.
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?
With 8 parameters and no output schema, the description lacks guidance on parameter selection (e.g., when to use each relationship type) and does not mention return value or validation outcomes.
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% with detailed parameter descriptions. The description adds no extra meaning beyond 'directed or bidirectional' which maps to the bidirectional field. Baseline 3 applies.
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?
Clearly states verb 'Add' and resource 'causal relationship between Why nodes'. Distinguishes from linear 5-Why chain, providing specific use cases (escalation loops, feedback cycles, mitigation links).
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?
Explicitly states when to use (non-linear relationships). Implicitly differentiates from rc_add_cause but lacks explicit 'when not to use' or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_add_causeB
Add a cause to a Fishbone category. Each cause can have sub-causes, evidence, and HFACS classification.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| category | Yes | The 6M category for this cause | |
| description | Yes | Description of the cause | |
| sub_causes | No | List of sub-causes (optional) | |
| hfacs_code | No | HFACS classification code (optional) | |
| evidence | No | Supporting evidence (optional) |
TDQS
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 fails to disclose side effects (e.g., whether it modifies the session state), return behavior, error conditions, or dependencies. The description only repeats information already available in the parameter schema without adding behavioral context.
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, efficient sentence that front-loads the primary action. It is not verbose, and every word serves a purpose. However, it could benefit from a brief structured layout for clarity, such as separating the primary action from optional details.
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 6 parameters, no output schema, and no annotations, the description is too sparse. It omits crucial context such as the need for a prior session, error handling, and the meaning of HFACS classification. A more complete description would explain typical usage and expected outcomes.
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%, granting a baseline of 3. The description adds minimal meaning beyond the schema: it mentions sub-causes, evidence, and HFACS classification, which are already defined as optional parameters. No constraints or relationships between parameters are explained.
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 verb 'Add' and the resource 'cause to a Fishbone category', distinguishing it from siblings like rc_add_causal_link or rc_init_fishbone. It also lists optional attributes (sub-causes, evidence, HFACS classification), making the tool's function precise and 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 does not specify when to use this tool versus alternatives (e.g., rc_add_causal_link). No context about prerequisite actions (like initializing a session or fishbone) or typical workflow is provided, leaving the AI agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_archive_sessionB
Archive a completed RCA session. Archived sessions are preserved but marked as inactive.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID to archive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions that archived sessions are preserved but marked inactive, but does not disclose potential side effects, reversibility, permissions required, or impacts on related data.
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 succinct sentence that front-loads the key information. Every word contributes meaning, and there is no 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 simple tool with one parameter and no output schema, the description is minimally adequate. However, it lacks details about the behavior of archiving (e.g., whether it can be undone, impact on list views, or related links).
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% for the single parameter 'session_id', and the description adds no additional meaning beyond the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool archives a completed RCA session, specifying the resource (RCA session) and action (archive). However, it does not differentiate from sibling tools, but since no other archive tool exists, this is acceptable.
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 only implies that the session should be completed before archiving, but does not provide explicit guidance on when to use this tool vs alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_ask_whyA
Ask 'Why?' to drill down into root causes using 5-Why analysis. Creates or extends a WhyChain for the session. Each call goes one level deeper (up to 5 levels). This is the CORE tool for systematic root cause reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| answer | Yes | The answer to 'Why?'. This becomes the basis for the next question. Example: 'Because the nurse miscalculated the dose' | |
| parent_node_id | No | Optional: ID of parent node to branch from. If not provided, continues from the last node or creates first Why. | |
| evidence | No | Supporting evidence for this answer (optional) | |
| initial_problem | No | The initial problem statement. Required only for the FIRST Why in a chain. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the full burden. It discloses the key behavioral aspect: each call goes one level deeper up to 5 levels. It does not describe the output format or what happens after the 5th level, but overall it is fairly transparent.
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 three sentences, each earning its place: first states purpose, second explains behavior with constraints, third emphasizes importance. No fluff.
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 no output schema and no annotations, the description should hint at the return value. It does not describe what the tool returns after each call. It covers the reasoning flow well but omits output expectations, making it slightly incomplete.
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%, so the schema already documents each parameter. The description adds value by explaining the role of 'initial_problem' (required only for first Why) and the default behavior of 'parent_node_id', which clarifies usage beyond the 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 the action ('Ask Why?'), the resource ('drill down into root causes using 5-Why analysis'), and distinguishes from siblings by labelling itself 'the CORE tool for systematic root cause reasoning.'
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 explains that each call goes one level deeper (up to 5 levels) and that it creates or extends a WhyChain, giving clear context for when to use it. However, it does not explicitly mention when not to use it or compare to alternative tools like rc_add_cause or rc_get_why_tree.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_build_teaching_caseA
Transform a completed Why Tree into a teaching-ready lesson plan. Generates learning objectives, common pitfalls, discussion prompts, and reverse-causality questions for medical learners.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| learner_level | No | Target learner level | medical_student |
| format | No | Output format | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It describes outputs but does not disclose side effects (e.g., whether the tool modifies the session), required permissions, or any limitations. The behavior is not fully transparent.
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?
Two sentences with no wasted words. The main purpose is front-loaded, and every sentence adds value by listing outputs.
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 3 parameters with 100% schema coverage and no output schema, the description adequately explains the tool's function and outputs. However, it could be more specific about the output format (though format param exists) and does not state dependencies like authentication or session validity.
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%, so baseline is 3. The description does not add additional meaning beyond the schema; the parameters are straightforward, and the description focuses on outputs rather than parameter semantics.
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 specifies the verb 'Transform' and the resource 'completed Why Tree into a teaching-ready lesson plan', and lists the generated outputs (learning objectives, pitfalls, etc.). It clearly distinguishes from sibling tools like export functions.
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 implies the tool should be used when a Why Tree is completed, but does not explicitly state when to use it versus alternatives like rc_export_why_tree, nor does it provide exclusions or prerequisites beyond the tree being complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_confirm_classificationA
Confirm an HFACS classification as correct. This helps the system learn from expert decisions and improve future suggestions. Confirmed classifications are stored as learned rules.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | The original cause description | |
| hfacs_code | Yes | The confirmed HFACS code (e.g., 'UA-S', 'PC-C-PMC', 'EF-RE') | |
| reason | Yes | Brief explanation of why this classification is correct | |
| session_id | No | Optional session ID for tracking | |
| confidence | No | Confidence level (0.0-1.0) |
TDQS
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 that confirmed classifications are stored as learned rules, which is a key behavioral trait (side effect). This helps the agent understand the learning impact. It could mention irreversibility or permission requirements, but the disclosure is adequate.
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 consists of two concise, front-loaded sentences with no wasted words. Every sentence adds value: action statement, learning purpose, and storage behavior.
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 lack of output schema, the description does not explain the return value, but the action is simple. It covers the core purpose and key behavior. It could mention that the tool requires a prior suggestion or that the reason parameter is used for traceability, but it is sufficiently complete for a straightforward confirmation tool.
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%, so each parameter already has a description. The tool description adds no additional meaning beyond what the schema provides, earning the baseline score of 3.
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 action 'Confirm an HFACS classification as correct' and specifies the resource. It explains the higher-level purpose: helping the system learn and improving future suggestions, distinguishing it from sibling tools like rc_suggest_hfacs and rc_list_learned_rules.
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 implicitly indicates that this tool should be used when a classification needs to be confirmed and stored as a learned rule. It provides context for learning but does not explicitly state when not to use it or mention alternatives. However, given sibling tools, the usage is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_export_fishboneB
Export Fishbone diagram in various formats. Supports Mermaid, JSON, and Markdown formats.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| format | No | Export format | mermaid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description only hints at non-destructive behavior (export) but does not disclose details like whether the session must be active, potential side effects, or error conditions.
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 with two short sentences, no unnecessary details, and front-loaded with the core purpose.
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 two-parameter tool with no output schema, the description is adequate but incomplete: it does not specify the output format or behavior on errors, which would be helpful.
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% with descriptions for both parameters. The description adds context by listing the supported formats, which matches the enum, but does not provide additional meaning beyond the 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 the tool exports a Fishbone diagram in specific formats (Mermaid, JSON, Markdown), which distinguishes it from sibling tools like rc_get_fishbone (retrieves data) and rc_export_why_tree (exports a different diagram type).
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?
No guidance is provided on when to use this tool versus alternatives like rc_get_fishbone or rc_export_why_tree. The description lacks context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_export_why_treeB
Export Why Tree in various formats. Supports Mermaid (flowchart), JSON, and Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| format | No | Export format | mermaid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavior. It states 'Export' but does not specify if the operation is synchronous, generates a file, returns a string, or has any side effects. The behavioral details are minimal.
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?
Two concise sentences covering the essential action and supported formats. No unnecessary words 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?
Lacks critical info about the output: does the tool return a downloadable file, a string, or something else? Without an output schema, the description should clarify the nature of the export result.
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 clearly describes both parameters. The description simply echoes the format options, adding no new semantic depth beyond what the enum already provides.
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 exports a 'Why Tree' and lists the supported formats (Mermaid, JSON, Markdown). It distinguishes from sibling tools like rc_get_why_tree (retrieval) and rc_export_fishbone (different diagram type).
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 purpose is clear but no explicit guidance on when to use this tool versus alternatives like rc_get_why_tree for retrieval or other export tools. Usage is implied but without conditional or exclusionary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_get_6m_hfacs_mappingA
Get mapping between 6M Fishbone categories and HFACS codes. Shows how Fishbone categories (Personnel, Equipment, Material, Process, Environment, Monitoring) correspond to HFACS levels. Useful for cross-framework analysis and ensuring comprehensive coverage. Also provides Why Tree depth guidance for each category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional: specific 6M category to retrieve mapping for. If not specified, returns all mappings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it provides mapping and Why Tree depth guidance, but lacks details on permission requirements, rate limits, or response format. Adds value beyond schema but not extensive.
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?
Three sentences, front-loaded with action, no wasted words. Efficiently covers purpose, details, and context.
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?
Without output schema, description adequately explains the type of information returned (mapping and depth guidance). Given low complexity, it is sufficiently complete, though could elaborate on the output structure.
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% with parameter description already explaining the default behavior. Description does not add new information about parameter beyond what schema provides, so baseline 3.
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 the tool retrieves mappings between 6M Fishbone categories and HFACS codes, lists all six categories, and explains it shows correspondence. This distinguishes it from sibling tools like rc_get_fishbone or rc_get_hfacs_framework.
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?
Indicates use for cross-framework analysis and comprehensive coverage, giving clear context. Does not explicitly state when not to use or compare to siblings, but the purpose is sufficiently clear for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_get_fishboneB
Get the complete Fishbone diagram for a session. Returns all categories and causes in structured format.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only indicates it returns the diagram. It does not disclose whether the operation is read-only, behavior on invalid session IDs, or any side effects. The 'get' prefix implies idempotency but is not explicitly stated.
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?
Two sentences efficiently convey purpose and output. Every word is necessary with no fluff or redundancy.
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 getter with one parameter and no output schema, the description is minimally adequate. It lacks details on output structure, error handling, and how it differs from similar retrieval tools among 20+ siblings.
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?
There is one parameter (session_id) with 100% schema coverage. The description adds no additional meaning beyond the schema's 'The session ID' – no format, examples, or constraints. Baseline 3 applies.
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 complete Fishbone diagram for a session, returning all categories and causes in a structured format. It uses specific verbs and resource naming, and implicitly distinguishes from export or other retrieval tools like rc_get_why_tree.
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?
No guidance on when to use this tool versus alternatives such as rc_get_session or rc_get_why_tree. The description does not provide any exclusions, prerequisites, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_get_hfacs_frameworkA
Get HFACS-MES framework structure and category definitions. Use this to understand the classification hierarchy and criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Optional: specific level to retrieve (EF, OI, US, PC, UA). If not specified, returns all levels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description implies a read operation but does not explicitly state read-only nature, response details, or any constraints beyond parameter behavior.
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?
Two short sentences, front-loaded with purpose, no extraneous information.
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 retrieval tool with one optional parameter and no output schema, the description fully covers purpose and parameter semantics.
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%, baseline 3. Description adds clarity by noting the default behavior when not specified ('returns all levels'), which goes beyond 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?
Description clearly states the tool retrieves the HFACS-MES framework structure and category definitions, with a specific verb ('Get') and resource. It distinguishes from sibling tools that add causes or links.
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?
Description suggests using it to understand classification hierarchy but does not explicitly state when to use vs alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_get_sessionA
Get details of an RCA session by ID. Returns session status, current stage, and progress.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool returns session status, stage, and progress, but does not disclose whether it is read-only, idempotent, or any potential side effects. Basic behavioral context is present, but not comprehensive.
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 sentence that efficiently conveys the purpose and output. It is front-loaded with the action and resource, with no redundant or extraneous content.
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 retrieval tool with one parameter, the description adequately covers what it does and what it returns. It does not address error handling or edge cases, but given the low complexity, it is reasonably complete.
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% with a single parameter 'session_id' described as 'The session ID to retrieve'. The description adds no additional meaning, constraints, or examples beyond the schema. Baseline 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 the tool retrieves session details by ID and specifies the returned data (status, stage, progress). It distinguishes itself from sibling tools like rc_list_sessions (which lists sessions) and rc_start_session (which creates).
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 explicitly state when to use this tool versus alternatives (e.g., after obtaining a session ID from rc_list_sessions). It lacks guidance on prerequisites, exclusions, or context for when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_get_why_treeA
Get the complete Why Tree (5-Why analysis chain) for a session. Shows all Why questions and answers in hierarchical format.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It describes a read operation (get, shows) and implies no side effects, but does not explicitly state it is non-destructive or discuss permissions. This is acceptable for a simple retrieval but not fully transparent.
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?
Two concise sentences that front-load the core action and output. Every sentence adds value with no redundancy or extraneous information.
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 single parameter, no output schema, and low complexity, the description sufficiently explains what the tool returns. The sibling list adds context, but the description alone is adequate for a simple retrieval tool.
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 parameter 'session_id' is already described in the schema with full coverage. The description adds no further meaning about the parameter format or constraints beyond what the schema provides, meeting the baseline.
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 it gets the complete Why Tree for a session, specifying the format (5-Why analysis chain, hierarchical). This differentiates it from sibling tools like rc_get_fishbone or rc_export_why_tree.
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?
No explicit guidance on when to use this tool versus alternatives like rc_get_fishbone or rc_get_hfacs_framework. The context implies it is for viewing the Why Tree but lacks exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_init_fishboneA
Initialize a Fishbone (Ishikawa) diagram for a session. Creates a 6M structure (Personnel, Equipment, Material, Process, Environment, Monitoring) with the problem statement as the fish head.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID to create fishbone for | |
| problem_statement | Yes | The problem statement (fish head) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits such as idempotency, side effects on existing fishbone for the same session, or required permissions. For a mutation tool, this is a significant gap.
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?
Two sentences that front-load the core purpose and key structural detail (6M categories). No redundant words. Efficient and clear.
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?
Covers the main action and structure created. For a parameter-light, no-output-schema tool, it is mostly complete. However, could mention what happens if a fishbone already exists for the session (overwrite vs error) and return behavior.
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 both parameters have descriptions (session_id and problem_statement) that explain their roles. The tool description adds context about the 6M structure but does not enhance parameter-level meaning beyond the 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?
Clearly states the verb 'Initialize' and describes creating a Fishbone diagram with a 6M structure and problem statement as fish head. Distinguishes from siblings like rc_get_fishbone (retrieval) and rc_add_cause (modification).
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?
Implied usage (for starting a new fishbone diagram) but no explicit guidance on when to use vs siblings like rc_start_session or rc_get_fishbone. Lacks 'when not to use' or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_list_learned_rulesA
List all learned classification rules. Shows rules that have been confirmed by experts.
| Name | Required | Description | Default |
|---|---|---|---|
| hfacs_code | No | Optional: filter by specific HFACS code | |
| min_confidence | No | Minimum confidence threshold |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that only rules confirmed by experts are returned, which is a key behavioral trait. However, with no annotations, it lacks details on authorization, pagination, or complete behavior. The description adds value beyond annotations but is not thorough.
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 very concise with two short sentences, front-loading the purpose. Every word earns its place, though a bit more structure (e.g., bullet points) could improve scannability.
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 no output schema and two simple filters, the description is adequate but could mention return format, sorting, or pagination. It provides enough context for a basic list tool but lacks completeness for complex scenarios.
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% (both parameters have descriptions in the schema). The tool description does not add any additional meaning beyond what the schema already provides, so it meets the baseline of 3.
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 uses the specific verb 'List' and identifies the resource as 'learned classification rules', adding that these are confirmed by experts. This clearly distinguishes it from sibling tools like rc_reload_rules or rc_suggest_hfacs.
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 implies usage for viewing confirmed rules but provides no explicit guidance on when to use this tool versus alternatives such as rc_get_hfacs_framework or rc_get_session. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_list_sessionsA
List all RCA sessions with optional filters. Returns summary of all sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by session status | |
| case_type | No | Filter by case type | |
| limit | No | Maximum number of sessions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Returns summary of all sessions'. It does not disclose behavioral traits such as side effects, authentication needs, or rate limits. For a read-only list tool, this is minimal.
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 with two front-loaded sentences. Every word is necessary and adds value without redundancy.
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 low complexity of a list tool with optional filters, the description adequately covers the purpose and return type. However, with no output schema, it could briefly mention that it returns a summary (not full details), which it does. Nearly complete.
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% with clear parameter descriptions in the input schema. The description only adds 'with optional filters' which adds no extra meaning beyond the schema, so baseline 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 'List all RCA sessions with optional filters', providing a specific verb (list) and resource (RCA sessions). It distinguishes itself from siblings like rc_get_session by implying a list versus a single session.
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 implies usage for listing sessions but does not explicitly state when to use it versus alternatives or provide any exclusion criteria. No guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_mark_root_causeB
Mark a WhyNode as the identified root cause. This indicates the analysis has reached a fundamental cause that requires action.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| node_id | Yes | The WhyNode ID to mark as root cause | |
| confidence | No | Confidence level (0.0-1.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only says it 'indicates the analysis has reached a fundamental cause that requires action', but does not disclose what changes occur, e.g., if the node is locked, if effects are reversible, or if confirmation is needed.
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?
Two sentences, front-loaded with the action, no extraneous words. Every sentence 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?
Given 3 parameters, no output schema, and no annotations, the description is minimally adequate but lacks behavioral and usage context that would fully inform 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%, so baseline is 3. The description does not add any meaning beyond the schema—it doesn't explain the confidence parameter or how to choose the node_id.
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 verb 'Mark' and the resource 'WhyNode as the identified root cause', and distinguishes this from sibling tools like rc_add_cause or rc_confirm_classification by specifying the action of marking the root cause.
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 no guidance on when to use this tool vs alternatives, such as rc_confirm_classification or rc_add_cause. It does not specify prerequisites or situations where marking a root cause is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_reload_rulesA
Reload classification rules from YAML files. Use this after manually editing config files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavior. It states the action (reload from YAML) but does not mention potential side effects (e.g., overwriting existing rules, validation errors). The description is adequate but lacks depth about what happens during reload.
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 consists of two concise sentences with no unnecessary words. It is front-loaded with the core purpose and provides usage context, making it highly efficient.
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 tool with no parameters and no output schema, the description covers the essential purpose and usage. It could mention potential outcomes (e.g., success messages, error handling) but is still reasonably complete for the task.
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 input schema has zero parameters and 100% coverage (since none exist). The description does not need to add parameter information. Following the baseline rule for zero parameters, a score of 4 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 the action ('Reload') and the resource ('classification rules from YAML files'), distinguishing it from sibling tools that add, confirm, or export classifications. It uses a specific verb and resource, making the purpose 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 explicitly states when to use the tool: 'after manually editing config files.' This provides clear context for usage, though it does not mention when not to use it or list alternatives. The guidance is sufficient for this simple action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_start_sessionB
Start a new RCA analysis session. Creates a new session with the specified case type and title. Returns session_id for subsequent operations.
| Name | Required | Description | Default |
|---|---|---|---|
| case_type | Yes | Type of case being analyzed | |
| case_title | Yes | Brief title for the case | |
| initial_description | No | Initial description of the incident |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose side effects and behaviors. It only states 'creates a new session' without mentioning auth requirements, potential conflicts, or whether the session is persisted. Minimal transparency for a creation operation.
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?
Two sentences, no wasted words. Could be slightly improved with structured format (e.g., listing return value separately), but overall concise and clear.
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?
Explains return value despite no output schema, but missing details on error cases, validation rules for case_type enum, and what happens if required fields are missing. Adequate but not complete for a tool with 3 parameters.
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%, so baseline is 3. The description adds value by mentioning return of session_id, but does not elaborate on parameter meaning beyond schema definitions.
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 starts a new RCA analysis session with specified case type and title, and returns session_id. This is specific and distinguishes from sibling tools like rc_list_sessions or rc_get_session.
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?
Implied usage as the initial step for RCA analysis, but no explicit guidance on when to use versus alternatives like rc_list_sessions or rc_archive_session. No exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_suggest_hfacsB
Suggest HFACS-MES classification codes for a cause description. Returns ranked suggestions with confidence scores. HFACS-MES has 5 levels: External Factors, Organizational Influences, Unsafe Supervision, Preconditions, Unsafe Acts.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | The cause description text to classify | |
| domain | No | Optional domain context for better suggestions (e.g., 'anesthesia', 'surgery', 'nursing') | |
| max_suggestions | No | Maximum number of suggestions to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry full burden. It states the tool returns ranked suggestions with confidence scores and lists HFACS-MES levels, but lacks details on side effects, permissions, or output specifics like the format of suggestions.
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 at two sentences, front-loading the purpose. It efficiently conveys the key function and context, though it could incorporate usage guidelines without adding much length.
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?
With no output schema, the description provides high-level output info (ranked suggestions with confidence scores) and lists HFACS-MES levels. However, it does not explain confidence scoring or return structure, leaving some gaps in 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?
All three parameters have descriptions in the input schema (100% coverage). The tool description does not add extra meaning beyond the schema, so baseline score of 3 applies.
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?
Clearly states the tool suggests HFACS-MES classification codes for a cause description and returns ranked suggestions with confidence scores. The description differentiates from sibling tools which involve adding causes, links, sessions, etc.
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?
No explicit guidance on when to use this tool versus alternatives like rc_confirm_classification or rc_get_hfacs_framework. The description does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rc_verify_causationB
Verify causal relationship between cause and effect using the Counterfactual Testing Framework. Tests: 1) Temporality - Did cause precede effect? 2) Necessity - Would effect occur without cause? 3) Mechanism - Is there a plausible causal pathway? 4) Sufficiency - Is cause alone sufficient for effect?
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID | |
| cause | Yes | The cause event | |
| effect | Yes | The effect event | |
| verification_level | No | 'standard' tests Temporality+Necessity. 'comprehensive' tests all 4 criteria. | standard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, so the description carries full burden. It details the four tests but omits behavioral traits like side effects, idempotency, required permissions, or what happens on invalid input. It partially compensates with internal logic but lacks safety/state context.
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 two sentences, front-loaded with purpose, and uses a clear list format. Every sentence is informative. Loses a point for lacking structured formatting (e.g., line breaks for the list) but overall efficient.
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?
No output schema is provided, and the description does not explain what the tool returns (e.g., boolean, scores). It also does not describe how session_id is used or caveats about nested objects. Lacks completeness for an agent to invoke correctly.
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%, so baseline is 3. The description lists the four tests but does not explicitly link them to parameters. The verification_level parameter is already well-described in the schema. The description adds marginal value beyond 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 the verb 'Verify' and the resource 'causal relationship', and lists four specific tests. This distinguishes it from sibling tools like rc_add_causal_link or rc_confirm_classification.
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?
No explicit guidance on when to use this tool vs alternatives. Sibling tools exist but no differentiation criteria are provided. The tests imply a verification scenario, but 'when-not' and alternatives are missing.
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. Dates show when Glama detected each change.
21 tool updates
v0.1.0- First observed
rc_add_causal_link - First observed
rc_add_cause - First observed
rc_archive_session - First observed
rc_ask_why - First observed
rc_build_teaching_case - First observed
rc_confirm_classification - First observed
rc_export_fishbone - First observed
rc_export_why_tree - First observed
rc_get_6m_hfacs_mapping - First observed
rc_get_fishbone - First observed
rc_get_hfacs_framework - First observed
rc_get_session - First observed
rc_get_why_tree - First observed
rc_init_fishbone - First observed
rc_list_learned_rules - First observed
rc_list_sessions - First observed
rc_mark_root_cause - First observed
rc_reload_rules - First observed
rc_start_session - First observed
rc_suggest_hfacs - First observed
rc_verify_causation
TDQS
Each tool targets a distinct aspect of RCA (session management, Fishbone, Why Tree, HFACS, verification, teaching cases). No two tools serve the same purpose, and descriptions clearly differentiate them.
All tools follow the rc_verb_noun pattern consistently using snake_case. Verbs like start, get, list, add, ask, export, etc., are predictable and logically applied.
21 tools cover a rich domain comprehensively. While slightly above the ideal range, each tool has a clear role and no redundancy, making the count reasonable for this complex subject.
Covers creation, retrieval, and updates well, but lacks deletion or removal operations for causes, links, or classifications. This can hinder correction of mistakes, leaving notable gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Physician-reviewed medical opinions and prescriptions for AI agents.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Medical RAG: semantic search for clinical guidelines, drug interactions, diagnoses & EHR data.
Medical RAG: semantic search for clinical guidelines, drug interactions, diagnoses & EHR data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI-powered medical image analysis tools for LLM agents, enabling tasks such as X-ray classification, interactive segmentation, and visual question answering. It supports multi-step diagnostic reasoning and clinical workflows through a suite of specialized medical AI models.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query workplace incident data using RAG, providing search, analysis, and corrective action plans.1MIT

vClinic MCP Serverofficial
FlicenseNot gradedqualityCmaintenanceEnables AI agents to manage virtual clinic data including patients, visits, diagnoses, treatments, lab/radiology orders, and search medical literature and internal knowledge base.-- AlicenseNot gradedqualityBmaintenanceEnables privacy-first medical document analysis with multi-perspective AI review. Ingest documents, run consilium reviews, generate doctor letters, and search patient memory—all through natural language.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/u9401066/rootcause-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server