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) 仍是工程 alpha,而非经过临床验证的代理 MVP。公开的六案例语料库和运行器是工程参考。正式结果需要至少 3 个真实代理运行时 × 6 个案例 × 2 次重复、仓库外部的私有案例包、单独保护的私有保留金标准、文件系统隔离、可信的运行时/服务器 MCP 跟踪,以及每项任务由两名设盲的合格临床审查者进行并裁定分歧。该评估目前为 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机制的至少三个独特诊断、适用的不可漏诊诊断、每个活动诊断的证据/检验处置、主要/不可漏诊诊断的支持加上矛盾或类型化排除计划,以及显式的不确定性/偏倚审查。这些是确定性的定稿底线,而非临床广度目标或上限。下一步提示指令:在每个响应中提供带精确工具名称的显式
next_recommended_actions和苏格拉底式push_questions,使 Flash 代理能够迭代循环直到案例完成。审计工具:代理或外部编排器可以调用
rc_audit_differential_breadth持久化每单元格框架覆盖,以及rc_audit_reasoning_state在报告生成前检查剩余先决条件。
确定性来源与数据谱系
受数据集成和 ETL 谱系架构(如 Airbyte 的流/来源验证模型)启发,RootCause MCP 建立确定性、加密的证据锚定,而不依赖概率性 LLM 记忆:
逐字片段与谱系锚点:证据记录捕获精确的
raw_snippet引文、文件路径、行定位器和 SHA-256 摘要。确定性来源验证:
ProvenanceVerifier领域服务扫描磁盘上的物理原始文件(TXT、CSV、HL7、XML),以验证子串匹配和行号,无需调用 LLM。篡改与幻觉检测:如果代理编造引文、引用不可用的来源,或呈现字节不再匹配固定清单的来源,服务器将证据保持未验证状态并返回审计诊断。
仅追加来源审查:固定清单和摘要永不更改。提取、去标识化和独立/派生谱系仅通过
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:
Interface -> Application -> Domain <- Infrastructure持久化内容
SDK 2.0 服务器将医学推理聚合持久化到 SQLite 中:
结构化证据和来源元数据
鉴别诊断假设和贝叶斯更新历史
代理提供的显式 ThinkingStep 记录
编排器生成的 ReasoningStep 审计记录
RCA 会话、来源清单、鱼骨图和原因树
身份验证、静态加密、租户隔离、审阅者角色授权、数据库迁移以及受监管的部署控制必须在临床生产使用之前由部署环境提供。请参阅 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🔬 脚本化合成病例回归
运行六个捆绑的合成场景(SAM、PRIS、输血高钾血症、术后肺栓塞、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正式运行必须使用存储库外部的私有病例和单独受保护的私有金标准。从失败关闭的预检开始:
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 身份。共享配置仅使用 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医生应报告两个配置及其 stdio 握手均 PASS。然后运行 Developer: Reload Window,从 MCP: List Servers 重启 rootcauseMcp,并在工具目录更新后使用 MCP: Reset Cached Tools。请参阅官方 VS Code MCP 配置参考 和 GitHub Copilot CLI MCP 配置。
环境变量:
变量 | 用途 | 默认值 |
| SQLite 数据库、检查点、学习规则和生成的导出 | 操作系统用户数据目录 |
| 可选配置覆盖,包含 | 打包的 |
| 用于精确纯文本来源检查的根目录允许列表,以操作系统路径分隔 | 当前工作目录 |
| 允许手动验证、裁定来源/HFACS 或定稿的以逗号分隔的操作员控制身份 | 空(手动审查/最终批准禁用) |
| 工具目录: |
|
|
|
|
代理工作流
兼容的代理可以使用离散工具工作流或超紧凑的 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:路由会话/来源审查以及传统鱼骨图(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 层向后因果推理、否定假设测试和认知偏差透明度。
工具目录
类别 | 数量 | 用途 |
认知透明性 | 5 | 显式理由、反思、差距、假设、思维链检索 |
证据与溯源 | 3 | 添加、检索并验证带有原始片段和 SHA-256 哈希的结构化证据 |
鉴别诊断 | 6 | 提出假设、审计框架广度、关联证据、明确选择主导假设、检查并排除假设 |
推理链与引导 | 3 | 检索审计行动链、导出图表并审计推理完成度 |
差距分析与冲突检测 | 1 | 检测诊断矛盾、矛盾性药物反应和监测遗漏 |
病例检查点 | 3 | 创建、恢复并列出经完整性检查的 JSON 病例快照 |
CONTRACT 报告 | 1 | 生成初步或门控最终 JSON、FHIR 兼容或确定性 Markdown 输出 |
HFACS-MES 分类法 | 6 | 建议、确认、检查、学习、重新加载并映射分类 |
会话管理 | 5 | 启动、追加来源审查裁定、检索、列出并归档具有 SQLite 持久化的 RCA 会话 |
鱼骨图(石川 6M) | 4 | 初始化、添加原因、检查并导出 |
为什么树(5-Why 分析) | 6 | 询问为什么、检查、交叉关联、标记根本原因、导出并教学(SQLite 持久化) |
验证与图表 | 3 | 保守因果审计、Mermaid 语法审计器和时间线渲染器 |
总计(离散) | 46 | 在 |
可视化输出
产物 | 机器可读输出 | 图表输出 |
鱼骨图 | JSON | 具有主干、原因和子原因的 Mermaid 6M 石川布局 |
为什么树 | JSON | 具有根本原因和跨因果链接的 Mermaid 层级 |
推理链 | JSON | 具有证据/假设引用的 Mermaid 有序审计轨迹 |
证据图 | CONTRACT JSON | 嵌入式 Mermaid 支持/矛盾图 |
事件时间线 | 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、溯源、因果推断和 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