{
  "checks": [
    {
      "details": [
        "manifest_url=https://saagarpatel.dev/.well-known/mcp.json",
        "transport=streamable-http",
        "authentication=none"
      ],
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:manifest-reachable",
      "status": "passed",
      "summary": "Manifest advertised status=live and endpoint https://mcp.saagarpatel.dev/mcp.",
      "title": "Public manifest readback"
    },
    {
      "details": [
        "signature_url=https://saagarpatel.dev/.well-known/mcp.json.sig",
        "public_key_url=https://saagarpatel.dev/.well-known/mcp-ed25519.pub"
      ],
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:signature-valid",
      "status": "passed",
      "summary": "Ed25519 signature validity was True.",
      "title": "Detached manifest signature"
    },
    {
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:local-manifest-match",
      "status": "passed",
      "summary": "Live manifest endpoint and tools matched the local public manifest contract.",
      "title": "Local and live manifest contract match"
    },
    {
      "details": [
        "tools=get_document,get_operant_results,get_profile,list_corpus,list_projects,search"
      ],
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:tool-contract",
      "status": "passed",
      "summary": "6 live tool(s) matched the manifest tool list.",
      "title": "Advertised tool contract"
    },
    {
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:read-only-annotations",
      "status": "passed",
      "summary": "Live tools reported read-only and closed-world annotations during the smoke check.",
      "title": "Read-only and closed-world annotations"
    },
    {
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:operant-results-smoke",
      "status": "passed",
      "summary": "get_operant_results returned 9 model row(s).",
      "title": "OPERANT tool smoke result"
    },
    {
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:hosted-pr-checks",
      "status": "passed",
      "summary": "Hosted verify=success, visual=success.",
      "title": "Hosted PR checks"
    },
    {
      "evidence_refs": [
        "mcp-live-readback-summary"
      ],
      "id": "mcp-live:uptime-and-key-custody",
      "status": "not_checked",
      "summary": "The readback does not prove future uptime, DNS state, or private signing-key custody.",
      "title": "Uptime and key custody"
    }
  ],
  "evidence": [
    {
      "description": "Public-safe summary of deployed manifest signature verification and read-only MCP smoke checks.",
      "digest_sha256": "1ae82182d634d38257ae2dffa3d0c05ceada0f2cefdc0926c0a426044923c892",
      "id": "mcp-live-readback-summary",
      "kind": "json",
      "public_safe": true,
      "redaction_status": "summary_only",
      "reference": "local-public-safe-input:mcp-live-readback-summary",
      "supports": [
        "mcp-live:manifest-reachable",
        "mcp-live:signature-valid",
        "mcp-live:local-manifest-match",
        "mcp-live:tool-contract",
        "mcp-live:read-only-annotations",
        "mcp-live:operant-results-smoke",
        "mcp-live:hosted-pr-checks",
        "mcp-live:uptime-and-key-custody"
      ],
      "title": "MCP live-readback summary"
    }
  ],
  "excluded_data": [
    {
      "category": "Private signing key",
      "reason": "Only the public key URL and signature status are included. Private key material is never part of a public receipt."
    },
    {
      "category": "Raw MCP responses",
      "reason": "The receipt records tool names, annotations, and aggregate smoke-check results, not full response payloads."
    },
    {
      "category": "Local deployment paths and operator machine details",
      "reason": "The adapter intentionally keeps local worktree paths, shell paths, runner paths, and private deploy state out of public artifacts."
    }
  ],
  "freshness": {
    "age_seconds": 706,
    "evidence_collected_at": "2026-06-28T01:48:14Z",
    "generated_at": "2026-06-28T02:00:00Z",
    "notes": "Receipt summarizes a public-safe point-in-time MCP live-readback summary. It does not perform live network calls itself.",
    "status": "static_fixture"
  },
  "integrity": {
    "generator": "trust-receipt-generator 0.1.0",
    "payload_sha256": "46e719477ed1eed595c3e82bec292377c6104273f99aabc1968e4a00d2820837",
    "source_digests": [
      {
        "digest_sha256": "1ae82182d634d38257ae2dffa3d0c05ceada0f2cefdc0926c0a426044923c892",
        "id": "mcp-live-readback-summary"
      }
    ]
  },
  "issued_at": "2026-06-28T02:00:00Z",
  "limitations": [
    "This receipt proves only a point-in-time public readback summary, not future uptime or future DNS state.",
    "A valid detached signature proves the public manifest bytes matched the public key at readback time; it is not a key-custody audit.",
    "Read-only tool annotations reduce advertised mutation risk but do not certify every future implementation behavior.",
    "Hosted PR check success is build evidence, not a safety certification or approval to trust arbitrary MCP calls."
  ],
  "producer": {
    "name": "trust-receipt-generator",
    "source_adapter": "mcp-live-readback-summary",
    "source_commands": [
      "node scripts/check-mcp-live.mjs > public-safe-summary.json"
    ],
    "version": "0.1.0"
  },
  "public_safety": {
    "included_data_policy": "Only public URLs, signature validity, advertised tool names, read-only annotations, aggregate smoke results, and source digest are included.",
    "review_notes": [
      "This is a receipt for a public-safe summary, not raw live MCP traffic.",
      "The receipt deliberately avoids claims of certification, uptime, key custody, or future endpoint health."
    ],
    "status": "redacted"
  },
  "receipt_id": "tr_mcp-live-saagarpatel-portfolio",
  "reproduce": [
    {
      "command": "node scripts/check-mcp-live.mjs",
      "step": "Run the live readback in the portfolio-index repo."
    },
    {
      "notes": "Keep private keys, raw responses, local paths, and deployment credentials excluded.",
      "step": "Record only public-safe fields in a summary JSON fixture."
    },
    {
      "command": "trust-receipt mcp-live --input mcp-live-readback-summary.json",
      "step": "Generate this receipt."
    }
  ],
  "schema_version": "trust-receipt/v0.1",
  "subject": {
    "claim": "The deployed public MCP discovery manifest had a valid detached Ed25519 signature and its advertised read-only MCP endpoint responded to a point-in-time smoke check.",
    "name": "MCP live readback: saagarpatel-portfolio",
    "public_reference": "https://saagarpatel.dev/.well-known/mcp.json",
    "type": "mcp-live-readback",
    "version": "0.1.0"
  },
  "summary": {
    "badge": {
      "color": "#b7791f",
      "label": "trust receipt",
      "message": "partial proof with gaps",
      "style": "flat"
    },
    "failed_count": 0,
    "headline": "MCP live readback summarized with signature, tool-contract, and uptime/key-custody limits.",
    "inconclusive_count": 0,
    "not_checked_count": 1,
    "passed_count": 7,
    "verdict": "mixed"
  },
  "unverified": [
    {
      "id": "mcp-live:no-active-monitoring",
      "reason": "The receipt records a point-in-time readback summary and does not monitor the endpoint after that check.",
      "status": "not_checked",
      "title": "No active monitoring"
    },
    {
      "id": "mcp-live:key-custody",
      "reason": "The public summary proves signature validity for the manifest bytes, not custody or rotation controls for the private key.",
      "status": "not_checked",
      "title": "Signing-key custody not audited"
    }
  ]
}
