Skip to main content
Glama

fahce_verify_repaired_output

Idempotent

Discover submitted-answer verification via x402 POST /api/v1/verify. Returns evidence-bounded findings and a receipt. Example: check a revised deployment status.

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 failed."
      }
    },
    "name": "fahce_verify_repaired_output"
  }
}

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 failed.",
      -      "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 failed.",
      +      "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 failed.",
      +      "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 failed.",
      -      "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 failed.",
      +      "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

B3.2/5.0
Behavior3/5

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

Annotations already declare that this is a non-read-only, idempotent, non-destructive, closed-world operation. The description adds the endpoint and that the result includes evidence-bounded findings and a receipt, but it does not explain authorization, payment/x402 implications, rate limits, or what happens on retry beyond what annotations cover.

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

Conciseness4/5

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

The description is short and front-loads the operation and endpoint. The return-behavior sentence and example are relevant, though the opening word 'Discover' is slightly awkward and the example adds limited detail.

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

Completeness3/5

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

With a rich nested input schema, full parameter description coverage, annotations, and an output schema, the description is minimally adequate. However, for a verification tool with nearby diagnostic and repair siblings, it omits guidance about when this tool is the correct choice, leaving a contextual gap.

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 the schema itself fully documents the request structure, evidence fields, candidate_output, expected_output, and idempotency_key. The description does not add parameter-level meaning beyond the schema's own descriptions, making the baseline 3 appropriate.

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 states a specific operation and resource: submitted-answer verification via POST /api/v1/verify, returning evidence-bounded findings and a receipt. The example clarifies a concrete use case. It does not explicitly differentiate this tool from sibling repair/diagnostic tools, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description gives an example use case but does not state when to use this tool versus the sibling tools fahce_diagnose_integrity, fahce_plan_bounded_repair, or fahce_integrity_repair_bundle. There are no explicit when-not or alternative-selection guidelines.

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