Skip to main content
Glama

GENESIS ProofRelay MCP Verifier

Wrap MCP tool evidence

proofrelay.wrap_mcp_tool_evidence
Read-onlyIdempotent

Convert hash-only MCP tool request, response, schema, authority, and payment context references into a portable ProofRelay evidence wrapper without ingesting raw prompts, outputs, credentials, or logs.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "tool_evidence": "<tool_evidence>"
    },
    "name": "proofrelay.wrap_mcp_tool_evidence"
  }
}

Input Schema

NameRequiredDescriptionDefault
tool_evidenceYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedInput schema / properties / tool_evidence / properties / authority_hash / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / tool_evidence / properties / identity_reference_hash / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / tool_evidence / properties / payment_context_hash / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / tool_evidence / properties / request_hash / pattern
      Added value: +"^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$"
    • addedInput schema / properties / tool_evidence / properties / response_hash / pattern
      Added value: +"^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$"
    • changedInput schema / properties / tool_evidence / properties / tool_schema_hash / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / tool_evidence / properties / verifier_response_hash / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / tool_evidence / additionalProperties
      Added value: +false
  3. Changed6 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "MCPToolEvidenceInput": {
      -    "description": "Hash-only MCP tool call evidence for portable ProofRelay wrapping.",
      -    "properties": {
      -      "authority_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional hash of authority, scope, or policy context.",
      -        "title": "Authority Hash"
      -      },
      -      "identity_reference_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional PREP-3 agent identity reference hash.",
      -        "title": "Identity Reference Hash"
      -      },
      -      "non_secret_refs": {
      -        "description": "Endpoint names, descriptor ids, or other non-secret references.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "title": "Non Secret Refs",
      -        "type": "array"
      -      },
      -      "payment_context_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional hash returned by normalize_payment_proof.",
      -        "title": "Payment Context Hash"
      -      },
      -      "request_hash": {
      -        "description": "SHA-256 hash of the tool request.",
      -        "title": "Request Hash",
      -        "type": "string"
      -      },
      -      "response_hash": {
      -        "description": "SHA-256 hash of the tool response.",
      -        "title": "Response Hash",
      -        "type": "string"
      -      },
      -      "tool_call_id": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Public-safe tool call id or correlation id.",
      -        "title": "Tool Call Id"
      -      },
      -      "tool_name": {
      -        "description": "MCP tool name being wrapped.",
      -        "title": "Tool Name",
      -        "type": "string"
      -      },
      -      "tool_schema_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional SHA-256 hash of the tool schema.",
      -        "title": "Tool Schema Hash"
      -      },
      -      "verifier_response_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional hash of a downstream verifier response.",
      -        "title": "Verifier Response Hash"
      -      }
      -    },
      -    "required": [
      -      "tool_name",
      -      "request_hash",
      -      "response_hash"
      -    ],
      -    "title": "MCPToolEvidenceInput",
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / tool_evidence / $ref
      Removed value: -"#/$defs/MCPToolEvidenceInput"
    • addedInput schema / properties / tool_evidence / properties
      Added value: +{
      +  "authority_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "identity_reference_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "non_secret_refs": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "payment_context_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "request_hash": {
      +    "type": "string"
      +  },
      +  "response_hash": {
      +    "type": "string"
      +  },
      +  "tool_call_id": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "tool_name": {
      +    "type": "string"
      +  },
      +  "tool_schema_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "verifier_response_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  }
      +}
    • addedInput schema / properties / tool_evidence / required
      Added value: +[
      +  "tool_name",
      +  "request_hash",
      +  "response_hash"
      +]
    • addedInput schema / properties / tool_evidence / type
      Added value: +"object"
    • removedInput schema / title
      Removed value: -"wrap_mcp_tool_evidenceArguments"
  4. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior. The description adds meaningful non-obvious context: it will not ingest raw prompts, outputs, credentials, or logs, which is a key privacy/behavior trait the annotations don't convey.

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?

A single dense sentence with no filler, and the core action plus the key constraint (no raw content ingestion) are front-loaded. Nothing wasted.

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?

An output schema exists, so return format needn't be explained. For a complex nested evidence wrapper with 0% schema field descriptions, the description conveys the gist but leaves several nested fields and the hash-format expectations undocumented, so it is adequate but not fully complete.

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 0% against a nested object with many fields. The description enumerates the categories (request, response, schema, authority, payment context) which maps to several subfields, but omits tool_name, tool_call_id, non_secret_refs, verifier_response_hash, and identity_reference_hash, so it only partially compensates for the coverage gap.

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?

States a specific verb (convert) and resource (hash-only MCP references into a portable ProofRelay evidence wrapper), so the operation is unambiguous. It does not, however, name or contrast with the many similar evidence-mapping siblings (e.g. map_openapi_operation_evidence), leaving differentiation to inference.

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 'hash-only ... without ingesting raw ...' phrasing implies this is the wrapper for callers who already hold hashes rather than raw content, but there is no explicit when-to-use/when-not or pointer to an alternative sibling. Usage is inferable, not stated.

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