Skip to main content
Glama

fahce_integrity_repair_bundle

Idempotent

Discover combined diagnosis, proposed correction, and verification via x402 POST /api/v1/repair-bundle. Example: resolve a disputed completion claim. No repair executes.

Example tool call

This call uses example arguments supplied in the tool’s input schema.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "request": {
        "schema": "FAHCE_MACHINE_REQUEST_V1",
        "evidence": [
          {
            "id": "deployment_log",
            "kind": "log",
            "text": "Deployment failed.",
            "source_label": "caller-supplied deployment log"
          }
        ],
        "candidate_output": "Deployment completed successfully."
      }
    },
    "name": "fahce_integrity_repair_bundle"
  }
}

Input Schema

NameRequiredDescriptionDefault
requestYesREST body only; maximum 524288 UTF-8 bytes for the complete serialized body. Field limits also apply.
idempotency_keyNoREST retry key; reuse only for identical operation, input, and authorization.

Output Schema

NameRequiredDescriptionDefault
repairYes
schemaYes
billingYes
bindingNo
receiptYes
authorityNo
diagnosisYes
operationYes
input_hashYes
request_idYesDetermination ID; equals receipt.case_id/run_id and identifies the saved receipt. Error request_id is a separate trace.
attestationNo
verificationYes
execution_stateNo
next_safe_actionYes
evidence_provenanceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "request": {
      -      "candidate_output": "Deployment completed successfully.",
      -      "evidence": [
      -        {
      -          "id": "deployment_log",
      -          "kind": "log",
      -          "source_label": "independent deployment log",
      -          "text": "Deployment failed."
      -        }
      -      ],
      -      "schema": "FAHCE_MACHINE_REQUEST_V1"
      -    }
      -  }
      -]New value: +[
      +  {
      +    "request": {
      +      "candidate_output": "Deployment completed successfully.",
      +      "evidence": [
      +        {
      +          "id": "deployment_log",
      +          "kind": "log",
      +          "source_label": "caller-supplied deployment log",
      +          "text": "Deployment failed."
      +        }
      +      ],
      +      "schema": "FAHCE_MACHINE_REQUEST_V1"
      +    }
      +  }
      +]
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Optional REST Idempotency-Key. Reuse only with unchanged operation, input, and authorization; recover saved results after uncertain delivery."New value: +"REST retry key; reuse only for identical operation, input, and authorization."
    • changedInput schema / properties / request / description
      Previous value: -"Send this request object alone to the paid REST endpoint. Entire JSON must fit 524288 UTF-8 bytes, including MCP wrapper, labels and escaping; per-field ceilings cannot all be used together. Character limits use UTF-16 code units."New value: +"REST body only; maximum 524288 UTF-8 bytes for the complete serialized body. Field limits also apply."
    • changedOutput schema / properties / request_id / description
      Previous value: -"Determination UUID, identical to receipt.case_id and receipt.run_id. Use this UUID as receipt_id in GET /api/v1/receipts/{receipt_id}. Error-envelope request_id is a separate HTTP trace; use its receipt_id when present."New value: +"Determination ID; equals receipt.case_id/run_id and identifies the saved receipt. Error request_id is a separate trace."
  2. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "request": {
      +      "candidate_output": "Deployment completed successfully.",
      +      "evidence": [
      +        {
      +          "id": "deployment_log",
      +          "kind": "log",
      +          "source_label": "independent deployment log",
      +          "text": "Deployment failed."
      +        }
      +      ],
      +      "schema": "FAHCE_MACHINE_REQUEST_V1"
      +    }
      +  }
      +]
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Optional REST Idempotency-Key; bind unchanged operation, input and authorization. Reuse conflicts on changes; recover saved results instead of paying again."New value: +"Optional REST Idempotency-Key. Reuse only with unchanged operation, input, and authorization; recover saved results after uncertain delivery."
  3. Changed12 schema fields changed
    • removedInput schema / examples
      Removed value: -[
      -  {
      -    "request": {
      -      "candidate_output": "Deployment completed successfully.",
      -      "evidence": [
      -        {
      -          "id": "deployment_log",
      -          "kind": "log",
      -          "source_label": "independent deployment log",
      -          "text": "Deployment failed."
      -        }
      -      ],
      -      "schema": "FAHCE_MACHINE_REQUEST_V1"
      -    }
      -  }
      -]
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Optional REST Idempotency-Key. Reuse only with unchanged operation, input, and authorization; recover saved results after uncertain delivery."New value: +"Optional REST Idempotency-Key; bind unchanged operation, input and authorization. Reuse conflicts on changes; recover saved results instead of paying again."
    • changedInput schema / properties / request / description
      Previous value: -"Answer and supporting records for REST review. Whole request: 524288 UTF-8 bytes including the MCP wrapper; character limits use UTF-16 code units."New value: +"Send this request object alone to the paid REST endpoint. Entire JSON must fit 524288 UTF-8 bytes, including MCP wrapper, labels and escaping; per-field ceilings cannot all be used together. Character limits use UTF-16 code units."
    • changedInput schema / properties / request / properties / candidate_output / description
      Previous value: -"Answer to diagnose, correct, or recheck; for Verify, supply the revised answer."New value: +"The exact candidate output to diagnose or verify. Never use payment evidence as semantic evidence."
    • changedInput schema / properties / request / properties / evidence / description
      Previous value: -"Up to 12 caller-supplied records. No sources are fetched or authenticated; an empty list provides no corroboration."New value: +"Caller-supplied records; sources are not authenticated or fetched. An empty array supplies no corroboration."
    • changedInput schema / properties / request / properties / evidence / items / properties / claim_bearing / description
      Previous value: -"True treats this record as claims to check. False or omission does not override candidate-source labels."New value: +"True marks candidate claims, not corroboration. False or omission does not override candidate-source labels."
    • changedInput schema / properties / request / properties / evidence / items / properties / id / description
      Previous value: -"Unique evidence reference within this request, such as deployment_log."New value: +"Unique evidence identifier within this request."
    • changedInput schema / properties / request / properties / evidence / items / properties / kind / description
      Previous value: -"How this record is represented: log, pasted text, document, or description; this does not set its trust level."New value: +"Record format category, not a trust level."
    • changedInput schema / properties / request / properties / evidence / items / properties / source_label / description
      Previous value: -"Record attribution, such as deployment log; candidate/output labels identify claims rather than independent corroboration."New value: +"Source attribution; candidate/output labels mark untrusted claims, not independent proof."
    • changedInput schema / properties / request / properties / evidence / items / properties / text / description
      Previous value: -"Record content used to assess the answer; payment authorization is not semantic evidence."New value: +"Record content to review; never payment authorization as semantic proof."
    • changedInput schema / properties / request / properties / expected_output / description
      Previous value: -"Optional format directives or correction target; factual text here is not corroborating evidence."New value: +"Optional format/constraint and repair-target context for all operations, including Diagnose. Recognized directives (e.g. Return JSON) can affect diagnosis. Factual text is not compared for string equality or trusted as evidence; supply independent records."
    • changedInput schema / properties / request / properties / schema / description
      Previous value: -"Exact FAHCE request contract identifier."New value: +"Request contract identifier; use this exact value."
  4. Changed12 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "request": {
      +      "candidate_output": "Deployment completed successfully.",
      +      "evidence": [
      +        {
      +          "id": "deployment_log",
      +          "kind": "log",
      +          "source_label": "independent deployment log",
      +          "text": "Deployment failed."
      +        }
      +      ],
      +      "schema": "FAHCE_MACHINE_REQUEST_V1"
      +    }
      +  }
      +]
    • changedInput schema / properties / idempotency_key / description
      Previous value: -"Optional REST Idempotency-Key; bind unchanged operation, input and authorization. Reuse conflicts on changes; recover saved results instead of paying again."New value: +"Optional REST Idempotency-Key. Reuse only with unchanged operation, input, and authorization; recover saved results after uncertain delivery."
    • changedInput schema / properties / request / description
      Previous value: -"Send this request object alone to the paid REST endpoint. Entire JSON must fit 524288 UTF-8 bytes, including MCP wrapper, labels and escaping; per-field ceilings cannot all be used together. Character limits use UTF-16 code units."New value: +"Answer and supporting records for REST review. Whole request: 524288 UTF-8 bytes including the MCP wrapper; character limits use UTF-16 code units."
    • changedInput schema / properties / request / properties / candidate_output / description
      Previous value: -"The exact candidate output to diagnose or verify. Never use payment evidence as semantic evidence."New value: +"Answer to diagnose, correct, or recheck; for Verify, supply the revised answer."
    • changedInput schema / properties / request / properties / evidence / description
      Previous value: -"Caller-supplied records; sources are not authenticated or fetched. An empty array supplies no corroboration."New value: +"Up to 12 caller-supplied records. No sources are fetched or authenticated; an empty list provides no corroboration."
    • changedInput schema / properties / request / properties / evidence / items / properties / claim_bearing / description
      Previous value: -"True marks candidate claims, not corroboration. False or omission does not override candidate-source labels."New value: +"True treats this record as claims to check. False or omission does not override candidate-source labels."
    • changedInput schema / properties / request / properties / evidence / items / properties / id / description
      Previous value: -"Unique evidence identifier within this request."New value: +"Unique evidence reference within this request, such as deployment_log."
    • changedInput schema / properties / request / properties / evidence / items / properties / kind / description
      Previous value: -"Record format category, not a trust level."New value: +"How this record is represented: log, pasted text, document, or description; this does not set its trust level."
    • changedInput schema / properties / request / properties / evidence / items / properties / source_label / description
      Previous value: -"Source attribution; candidate/output labels mark untrusted claims, not independent proof."New value: +"Record attribution, such as deployment log; candidate/output labels identify claims rather than independent corroboration."
    • changedInput schema / properties / request / properties / evidence / items / properties / text / description
      Previous value: -"Record content to review; never payment authorization as semantic proof."New value: +"Record content used to assess the answer; payment authorization is not semantic evidence."
    • changedInput schema / properties / request / properties / expected_output / description
      Previous value: -"Optional format/constraint and repair-target context for all operations, including Diagnose. Recognized directives (e.g. Return JSON) can affect diagnosis. Factual text is not compared for string equality or trusted as evidence; supply independent records."New value: +"Optional format directives or correction target; factual text here is not corroborating evidence."
    • changedInput schema / properties / request / properties / schema / description
      Previous value: -"Request contract identifier; use this exact value."New value: +"Exact FAHCE request contract identifier."
  5. Changed4 schema fields changed
    • addedOutput schema / allOf
      Added value: +[
      +  {
      +    "if": {
      +      "properties": {
      +        "receipt": {
      +          "properties": {
      +            "response_hash_scheme": {
      +              "const": "SHA256_SORTED_JSON_RESPONSE_WITHOUT_ATTESTATION_V3"
      +            }
      +          },
      +          "required": [
      +            "response_hash_scheme"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "receipt"
      +      ]
      +    },
      +    "then": {
      +      "required": [
      +        "attestation"
      +      ]
      +    }
      +  }
      +]
    • addedOutput schema / properties / attestation
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "binding": {
      +      "properties": {
      +        "engine_version": {
      +          "type": "string"
      +        },
      +        "input_hash": {
      +          "type": "string"
      +        },
      +        "issued_at": {
      +          "type": "integer"
      +        },
      +        "nonce": {
      +          "type": "string"
      +        },
      +        "request_id": {
      +          "type": "string"
      +        },
      +        "response_hash": {
      +          "type": "string"
      +        },
      +        "schema": {
      +          "const": "FAHCE_MACHINE_RESULT_BINDING_V1"
      +        },
      +        "scope": {
      +          "const": "CONFIDENTIAL_DETERMINISTIC_COMPUTATION"
      +        }
      +      },
      +      "required": [
      +        "schema",
      +        "nonce",
      +        "request_id",
      +        "input_hash",
      +        "response_hash",
      +        "engine_version",
      +        "issued_at",
      +        "scope"
      +      ],
      +      "type": "object"
      +    },
      +    "maa_token": {
      +      "description": "Microsoft-signed MAA JWT; verify against the published trust material and exact response binding.",
      +      "type": "string"
      +    },
      +    "policy_sha256": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "schema": {
      +      "const": "FAHCE_MACHINE_ATTESTATION_V1"
      +    }
      +  },
      +  "required": [
      +    "schema",
      +    "policy_sha256",
      +    "binding",
      +    "maa_token"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / receipt / properties / hash_scheme / enum
      Previous value: -[
      -  "SHA256_CANONICAL_JSON_RESULT_WITH_EMPTY_RESULT_HASH_V1",
      -  "SHA256_SORTED_JSON_RESULT_WITH_EMPTY_RESULT_HASH_V2"
      -]New value: +[
      +  "SHA256_CANONICAL_JSON_RESULT_WITH_EMPTY_RESULT_HASH_V1",
      +  "SHA256_SORTED_JSON_RESULT_WITH_EMPTY_RESULT_HASH_V2",
      +  "SHA256_SORTED_JSON_RESULT_WITHOUT_ATTESTATION_V3"
      +]
    • changedOutput schema / properties / receipt / properties / response_hash_scheme / enum
      Previous value: -[
      -  "SHA256_JSON_RESPONSE_WITH_EMPTY_RESPONSE_HASH_V1",
      -  "SHA256_SORTED_JSON_RESPONSE_WITH_EMPTY_RESPONSE_HASH_V2"
      -]New value: +[
      +  "SHA256_JSON_RESPONSE_WITH_EMPTY_RESPONSE_HASH_V1",
      +  "SHA256_SORTED_JSON_RESPONSE_WITH_EMPTY_RESPONSE_HASH_V2",
      +  "SHA256_SORTED_JSON_RESPONSE_WITHOUT_ATTESTATION_V3"
      +]
  6. Changed10 schema fields changed
    • addedInput schema / properties / idempotency_key / description
      Added value: +"Optional REST Idempotency-Key; bind unchanged operation, input and authorization. Reuse conflicts on changes; recover saved results instead of paying again."
    • changedInput schema / properties / request / description
      Previous value: -"The entire UTF-8 encoded JSON body must fit within 524288 bytes (512 KiB), including all fields, labels, escaping and JSON overhead. Per-field maxima are independent ceilings; they cannot all be used at once. MCP includes its JSON-RPC wrapper in the same body ceiling. Character limits are UTF-16 code units."New value: +"Send this request object alone to the paid REST endpoint. Entire JSON must fit 524288 UTF-8 bytes, including MCP wrapper, labels and escaping; per-field ceilings cannot all be used together. Character limits use UTF-16 code units."
    • addedInput schema / properties / request / properties / evidence / description
      Added value: +"Caller-supplied records; sources are not authenticated or fetched. An empty array supplies no corroboration."
    • addedInput schema / properties / request / properties / evidence / items / properties / claim_bearing / description
      Added value: +"True marks candidate claims, not corroboration. False or omission does not override candidate-source labels."
    • addedInput schema / properties / request / properties / evidence / items / properties / id / description
      Added value: +"Unique evidence identifier within this request."
    • addedInput schema / properties / request / properties / evidence / items / properties / kind / description
      Added value: +"Record format category, not a trust level."
    • addedInput schema / properties / request / properties / evidence / items / properties / source_label / description
      Added value: +"Source attribution; candidate/output labels mark untrusted claims, not independent proof."
    • addedInput schema / properties / request / properties / evidence / items / properties / text / description
      Added value: +"Record content to review; never payment authorization as semantic proof."
    • changedInput schema / properties / request / properties / expected_output / description
      Previous value: -"Optional response-contract and repair-target context for all operations, including Diagnose. Supported response-format directives (for example, Return JSON) and implemented explicit constraints can affect the diagnosis. Ordinary matching or mismatching factual text is not compared for string equality and is not a trusted answer oracle or supporting evidence; supply independent evidence for factual claims."New value: +"Optional format/constraint and repair-target context for all operations, including Diagnose. Recognized directives (e.g. Return JSON) can affect diagnosis. Factual text is not compared for string equality or trusted as evidence; supply independent records."
    • addedInput schema / properties / request / properties / schema / description
      Added value: +"Request contract identifier; use this exact value."
  7. First observed

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The key behavioral disclosure is 'No repair executes,' which usefully tempers what the name 'repair_bundle' might otherwise imply. The annotations already cover safety traits like destructiveHint=false and idempotentHint=true, but the description does not explain the x402 payment/authorization implications of the POST endpoint, which is important for a tool with readOnlyHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with the operation, example, and critical non-execution caveat front-loaded. Every sentence contributes useful information without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex nested schema with an output schema available, the description supplies the essential operational summary, an example, and the no-repair caveat. It could be more complete by clarifying combined-tool versus sibling-tool routing, but the structured fields already carry most detailed semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters and nested request fields are already well documented in the input schema. The description adds no parameter-specific syntax or format guidance beyond the schema, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific combined operation: diagnosis, proposed correction, and verification via a repair-bundle endpoint. It distinguishes itself implicitly from the three single-purpose siblings by being a bundle, though it does not explicitly route agents to or away from those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The example 'resolve a disputed completion claim' implies a usage context, and 'No repair executes' clarifies that this is discovery rather than mutation. However, there is no explicit guidance on when to use this combined tool versus fahce_diagnose_integrity, fahce_plan_bounded_repair, or fahce_verify_repaired_output.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources