"""Shared helpers for interpreting MCP tool call results.""" from __future__ import annotations def tool_result_ok(res: dict) -> bool: """Return True when an MCP tool response indicates success.""" if res.get("isError"): return False text = (res.get("text") or "").strip() if not text: return True lower = text.lower() if "unknown tool:" in lower: return False if text.startswith("Error executing tool"): return False if '"status": "error"' in text or '"status":"error"' in text: return False if " api error " in lower and any(code in text for code in ("401", "403", "500")): return False if "authentication failed" in lower: return False if "permission denied" in lower: return False return True