# verify_execution_hash

Independently verify a ChainGraph artifact (ChainGraph Standard v0.1 §6). Recomputes SHA-256 over the canonical (sorted-key, whitespace-stripped) JSON of policy_parameters + output_payload and compares it to the claimed execution_hash. A match proves the artifact's stated inputs deterministically produce its stated outputs. Pass either a full artifact object, or policy_parameters + output_payload + claimed_hash. Pure client-safe compute -- no data is stored. Use this to verify artifacts from any vendor that conforms to the ChainGraph Standard.

Agent View of the PolicyLayer registry record for `verify_execution_hash`. HTML page: https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/verify-execution-hash

## Facts

- Tool: `verify_execution_hash`
- Server: Ainumbers Mcp Apps (`postoaklabs/ainumbers-mcp-apps`) — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps.md
- Homepage: https://github.com/PostOakLabs/ainumbers-mcp-apps
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: https://ainumbers.co
- Server rate-limited: no
- Parameters: 4
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `artifact` | object | no | A full ChainGraph artifact envelope (must contain policy_parameters, output_payload, and execution_hash). |
| `claimed_hash` | string | no | The execution_hash to check against (if not passing a full artifact). |
| `output_payload` | object | no | Artifact output_payload (if not passing a full artifact). |
| `policy_parameters` | object | no | Artifact policy_parameters (if not passing a full artifact). |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "verify_execution_hash",
    "arguments": {}
  }
}
```

## Why verify_execution_hash is rated Low

This tool retrieves and validates existing data (artifacts and their hashes) through deterministic cryptographic comparison. It has no side effects, makes no modifications, triggers no external operations, and stores nothing. The verification is purely computational and informational, making it a Read operation with minimal risk even if misused by an agent.

From the tool's own definition: "Tool description explicitly states it 'Recomputes SHA-256' and 'compares it to the claimed execution_hash' to 'verify' and 'proves' outputs. The phrase 'Pure client-safe compute -- no data is stored' confirms read-only verification."

## Use case

AI agents call verify_execution_hash to retrieve information from Ainumbers Mcp Apps without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Ainumbers Mcp Apps:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "verify_execution_hash": {}
  }
}
```

## Other tools on Ainumbers Mcp Apps (687)

- `agentic_mandate_sandbox` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/agentic-mandate-sandbox.md
- `allocate_ihb_interest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/allocate-ihb-interest.md
- `amortize_asc606_commissions` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/amortize-asc606-commissions.md
- `anchor_document_integrity` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/anchor-document-integrity.md
- `apply_climate_scenario` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/apply-climate-scenario.md
- `assemble_aiuc1_evidence_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/assemble-aiuc1-evidence-pack.md
- `assemble_ocg_evidence_bundle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/assemble-ocg-evidence-bundle.md
- `attest_bulk_disbursement_integrity` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-bulk-disbursement-integrity.md
- `attest_calc_agent_independence` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-calc-agent-independence.md
- `attest_daily_reconciliation` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-daily-reconciliation.md
- `attest_margin_call_lifecycle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-margin-call-lifecycle.md
- `bind_attested_subject` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/bind-attested-subject.md
- `build_226j_response_evidence_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-226j-response-evidence-pack.md
- `build_agent_test_evidence` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-agent-test-evidence.md
- `build_agent_traffic_policy` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-agent-traffic-policy.md
- `build_ai_conformity_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ai-conformity-pack.md
- `build_ai_workpaper_record` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ai-workpaper-record.md
- `build_allocation_decision_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-allocation-decision-receipt.md
- `build_amortization_schedule` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-amortization-schedule.md
- `build_ap2_cartmandate_hashchain` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ap2-cartmandate-hashchain.md
- `build_cbcr_report` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-cbcr-report.md
- `build_chaingraph` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-chaingraph.md
- `build_claim_dispute_bundle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-claim-dispute-bundle.md
- `build_conditional_relief_collateral_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-conditional-relief-collateral-receipt.md
- `build_conversion_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-conversion-receipt.md
- `build_digest_manifest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-digest-manifest.md
- `build_disclosure_manifest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-disclosure-manifest.md
- `build_dora_roi_register` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-dora-roi-register.md
- `build_dual_control_certification` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-dual-control-certification.md
- `build_etr_possession_chain` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-etr-possession-chain.md
- …and 657 more: https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=postoaklabs-ainumbers-mcp-apps · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/postoaklabs-ainumbers-mcp-apps
