{
  "schema_version": 1,
  "builder_plan": {
    "scenario": "Tool errors or unavailable services cause your agent to abandon recoverable tasks.",
    "change": "Inject repeatable tool failures and change only the recovery policy.",
    "baseline": "Your current retry and fallback behavior under the same injected failures.",
    "steps": [
      "Locate the paper's implementation and check its license, model support, data needs, and hardware requirements. Stop here if you cannot obtain the required artifacts.",
      "Save a small set of representative product tasks and expected outcomes. Keep evaluation tasks out of any training or tuning, and choose quality and cost limits before running.",
      "Run the baseline and the proposed change on identical inputs. Keep other settings fixed and repeat paired runs to expose variation.",
      "Save per-task outputs, failures, timings, and all usage costs. Review regressions before expanding the test."
    ],
    "measure": "Recovered tasks, duplicate side effects, retries, time to recovery, and total cost.",
    "decision": "Keep the change only if it meets your preselected quality and latency limits and improves the metric you care about after setup and operating costs. Otherwise retain the baseline. This is an exploration plan, not a validated recommendation."
  },
  "builder_review": null,
  "arxiv_id": "2609.35381",
  "title": "MCP Error Messages Written for Developers Hurt the Most Capable Agents Most",
  "summary": "The technique replaces human-directed MCP error text (run a command, edit a config, open a page, wait) with messages that name a callable server tool, or with a one-sentence pre-prompt that strips the step before the model reads it. Cost is negligible: editing error strings on servers you control, or one prompt line for agents; no extra memory, latency, or infrastructure. It fails when the named tool does not exist or is not exposed, when servers are third-party and their messages cannot be changed, and it addresses only step-bearing errors, not the many failure classes without actionable text.",
  "rationale": "A zero-cost change to error strings or one prompt line yields large, measured recovery gains on common credential and rate-limit failures that any production agent will hit.",
  "technique": "Tool-executable error messages for MCP agents",
  "family": "recuperacao_de_falha",
  "recommendation": "adotar",
  "published": "2026-09-28",
  "as_of": "2026-10-18",
  "editorial_status": "indexed",
  "source_url": "https://arxiv.org/abs/2609.35381",
  "independent_implementations": 0,
  "total_implementations": 0,
  "stars": 0,
  "citations": null,
  "claims": [
    {
      "claim_id": "claim-01",
      "statement": "The technique replaces human-directed MCP error text (run a command, edit a config, open a page, wait) with messages that name a callable server tool, or with a one-sentence pre-prompt that strips the step before the model reads it. Cost is negligible: editing error strings on servers you control, or one prompt line for agents; no extra memory, latency, or infrastructure. It fails when the named tool does not exist or is not exposed, when servers are third-party and their messages cannot be changed, and it addresses only step-bearing errors, not the many failure classes without actionable text.",
      "basis": "inferred",
      "result": "",
      "baseline": "",
      "conditions": "",
      "source_url": "https://arxiv.org/abs/2609.35381",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "claim_id": "claim-02",
      "statement": "Naming a server tool in the error step raised task recovery from 45% to 84% on expired credentials and from 6% to 88% on rate limits; deleting the step via a one-sentence prompt raised credential recovery to 82%.",
      "basis": "inferred",
      "result": "",
      "baseline": "",
      "conditions": "",
      "source_url": "https://arxiv.org/abs/2609.35381",
      "source_page": null,
      "source_excerpt": ""
    }
  ],
  "exposure_map": [
    {
      "dimension": "quality",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "compute",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "latency",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "operations",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "compatibility",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "security",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "data_and_training",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "reproducibility",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    }
  ],
  "risks": [],
  "minimum_test": [],
  "open_questions": [],
  "independent_tests": [],
  "lab_reproductions": [],
  "report_available": false,
  "validation_tier": "unknown",
  "evidence_tier": "unknown",
  "infrastructure_basis": "unknown",
  "equations": [],
  "equations_status": "not_fetched",
  "core_kind": "",
  "equations_fetched_at": "",
  "equations_source_url": "",
  "equations_source_sha256": "",
  "exposures_reviewed_at": "",
  "exposures_source_sha256": ""
}