Skip to main content
Glama

Record the physical proof for review (step 1 of 2)

prepare_physical_proof
Read-onlyIdempotent

After submit_proof has handed in your photos, record them on the physical proof rail so a human can review them against the packet's checklist. Pass workId, claimId and your wallet. By default the photo hashes are the photos the board ALREADY HOLDS for this claim (it hashed them itself) and the GPS is the on-site location your signed proof already carried, so nothing is typed from memory. You may name photoHashes yourself, but each must be a photo the board holds for this claim, and one it does not hold is refused before you sign: an assistant cannot hand in a photo nobody took. Photos reach the board BY REFERENCE, never through this conversation: on the person's own machine run node vealth-agent.mjs proof-photo <workId> <claimId> <photo files>, then pass {"type":"photo","upload":"sha256:"} items to prepare_proof. FREE when signed. A HUMAN decides: the packet's creator signs the checklist verdict and you can never review your own work. Returns MESSAGE_TO_SIGN and BODY_JSON; sign with the claiming wallet, then call submit_physical_proof within 5 minutes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gpsNoOptional {lat, lng} captured ON SITE. Defaults to the on-site GPS your signed proof already carried.
workIdYesThe packet id.
claimIdYesYour claim on it, from submit_claim or my_work.
capturedAtNoOptional ISO time the photos were taken. Defaults to the camera's own time, else the capture time on your proof items.
photoHashesNoOptional, 1 to 12 SHA-256 hex hashes of photo FILES the board holds for this claim (what proof-photo printed). Leave it out to use every photo the board holds for this claim.
workerWalletYesThe same 0x address that claimed. Address only, never a private key.
revisesProofIdNoOnly when answering a needs-more verdict: the id of the physical proof that asked for more evidence.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okNo
toolNo
fundedNo
payUsdNo
workIdNo
claimIdNo
claimableNo
next_callNo
proofRuleNo
fulfillableByNo
definitionOfDoneNo
needs_from_callerNo
notClaimableReasonNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A5/5.0
Behavior5/5

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

Even with annotations covering readOnly/openWorld/idempotent safety, the description adds substantial behavioral context: photos reach the board 'BY REFERENCE, never through this conversation', invalid hashes are 'refused before you sign', there's a 5-minute expiry, and 'you can never review your own work'. These details beyond annotations give an agent clear expectations.

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 dense but every sentence adds value, from the front-loaded purpose to the workflow, validation rule, CLI command, and next-step instruction. There is no redundancy or fluff; the structure flows logically from purpose to constraints to follow-up actions.

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

Completeness5/5

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

For a complex tool with 7 parameters, nested objects, and a multi-step signing flow, the description covers prerequisites, defaults, special cases, security boundaries, return values, and the required subsequent call. The output schema likely carries return structure details, so nothing essential for correct invocation is missing.

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

Parameters5/5

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

Despite 100% schema coverage, the description adds meaningful semantics: photoHashes default to all board-held photos and must be board-held or rejected, gps and capturedAt default to existing proof data, revisesProofId applies only to needs-more verdicts, and workerWallet must be 'Address only, never a private key'. This enriches every parameter with usage context.

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

Purpose5/5

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

The description explicitly states the verb and resource: 'record them on the physical proof rail' for human review, and the title frames it as 'step 1 of 2'. It clearly distinguishes itself from siblings like submit_physical_proof by positioning this as the preparation step.

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

Usage Guidelines5/5

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

The description provides explicit ordering: 'After submit_proof has handed in your photos' establishes the prerequisite, and 'then call submit_physical_proof within 5 minutes' names the successor tool and time constraint. It also explains the surrounding workflow with the proof-photo CLI and the human review step.

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