Skip to main content
Glama

GENESIS ProofRelay MCP Verifier

Map OpenAPI operation evidence

proofrelay.map_openapi_operation_evidence
Read-onlyIdempotent

Map public OpenAPI operation metadata and schema hashes into a ProofRelay event plan with checkpoint recommendations for paid, mutating, or relied-upon API operations.

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": {
      "operation": "<operation>"
    },
    "name": "proofrelay.map_openapi_operation_evidence"
  }
}

Input Schema

NameRequiredDescriptionDefault
operationYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / operation / additionalProperties
      Added value: +false
    • changedInput schema / properties / operation / properties / request_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 / operation / properties / response_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 / operation / properties / server_url_hash / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed6 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "OpenAPIOperationEvidenceInput": {
      -    "description": "Public OpenAPI operation metadata mapped to ProofRelay evidence.",
      -    "properties": {
      -      "idempotency_required": {
      -        "default": false,
      -        "description": "True if the operation should require idempotency.",
      -        "title": "Idempotency Required",
      -        "type": "boolean"
      -      },
      -      "method": {
      -        "description": "HTTP method for the operation.",
      -        "enum": [
      -          "GET",
      -          "POST",
      -          "PUT",
      -          "PATCH",
      -          "DELETE"
      -        ],
      -        "title": "Method",
      -        "type": "string"
      -      },
      -      "operation_id": {
      -        "description": "OpenAPI operationId or stable id.",
      -        "title": "Operation Id",
      -        "type": "string"
      -      },
      -      "path_template": {
      -        "description": "Public path template, no secrets.",
      -        "title": "Path Template",
      -        "type": "string"
      -      },
      -      "payment_required": {
      -        "default": false,
      -        "description": "True if operation requires payment or entitlement.",
      -        "title": "Payment Required",
      -        "type": "boolean"
      -      },
      -      "request_schema_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional SHA-256 hash of the request schema.",
      -        "title": "Request Schema Hash"
      -      },
      -      "response_schema_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional SHA-256 hash of the response schema.",
      -        "title": "Response Schema Hash"
      -      },
      -      "security_scheme_refs": {
      -        "description": "Non-secret names of OpenAPI security schemes used.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "title": "Security Scheme Refs",
      -        "type": "array"
      -      },
      -      "server_url_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional SHA-256 hash of the server URL.",
      -        "title": "Server Url Hash"
      -      }
      -    },
      -    "required": [
      -      "operation_id",
      -      "method",
      -      "path_template"
      -    ],
      -    "title": "OpenAPIOperationEvidenceInput",
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / operation / $ref
      Removed value: -"#/$defs/OpenAPIOperationEvidenceInput"
    • addedInput schema / properties / operation / properties
      Added value: +{
      +  "idempotency_required": {
      +    "type": "boolean"
      +  },
      +  "method": {
      +    "enum": [
      +      "GET",
      +      "POST",
      +      "PUT",
      +      "PATCH",
      +      "DELETE"
      +    ],
      +    "type": "string"
      +  },
      +  "operation_id": {
      +    "type": "string"
      +  },
      +  "path_template": {
      +    "type": "string"
      +  },
      +  "payment_required": {
      +    "type": "boolean"
      +  },
      +  "request_schema_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "response_schema_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "security_scheme_refs": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "server_url_hash": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  }
      +}
    • addedInput schema / properties / operation / required
      Added value: +[
      +  "operation_id",
      +  "method",
      +  "path_template"
      +]
    • addedInput schema / properties / operation / type
      Added value: +"object"
    • removedInput schema / title
      Removed value: -"map_openapi_operation_evidenceArguments"
  3. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the scope of computed output (event plan plus checkpoint recommendations), but does not say whether anything is persisted, what the plan contains, or what the tool assumes about the provided hashes. Adequate but not rich.

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?

One clean sentence, front-loaded with the verb, that adds no filler. It is efficient, though a short usage clause would have earned the fifth point without adding much length.

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 values need not be explained. But with a single deeply nested, fully undocumented parameter object, the description should do more to help the agent construct a correct operation payload (which hash forms are accepted, whether security_scheme_refs are required). It is minimally sufficient rather than 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% for a nested operation object with eight fields, so the description carries real weight. It partially compensates by naming 'metadata and schema hashes' and by tying the tool to 'paid, mutating' operations, which hints at payment_required, idempotency_required, and the hash fields. However, it does not explain how the hashes should be formatted or computed, leaving per-field meaning undocumented.

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 verb+resource: mapping OpenAPI operation metadata and schema hashes into a ProofRelay event plan with checkpoint recommendations. An agent can tell it produces a plan rather than a receipt or a verification result. It does not explicitly differentiate itself from sibling tools like recommend_checkpoint or wrap_mcp_tool_evidence, which is the only thing keeping it from 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 Guidelines3/5

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

The phrase 'for paid, mutating, or relied-upon API operations' implies a usage scope, but it does not tell the agent when to prefer this over wrappers like wrap_mcp_tool_evidence or recommend_checkpoint. There are no explicit when-not conditions or prerequisites.

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