{
 "product": "MCP Attestor",
 "slug": "mcp-attestor",
 "base": "https://cainstudio.online",
 "page": "https://cainstudio.online/guide-mcp-attestor.html",
 "claims": [
  {
   "id": "C01",
   "kind": "control",
   "claim": "A calculator that really adds -> Clean.",
   "requests": [
    {
     "method": "POST",
     "url": "/mcp-attestor/scan",
     "body": {
      "sample_id": "safe-sum"
     }
    }
   ],
   "path": "grade",
   "expect": [
    "REAL"
   ]
  },
  {
   "id": "C02",
   "kind": "attack",
   "claim": "A description with a hidden instruction -> Prompt injection in the description.",
   "requests": [
    {
     "method": "POST",
     "url": "/mcp-attestor/scan",
     "body": {
      "sample_id": "injected-description"
     }
    }
   ],
   "path": "grade",
   "expect": [
    "STUB"
   ]
  },
  {
   "id": "C03",
   "kind": "attack",
   "claim": "A command parameter that exposes a secret -> Unconstrained parameter.",
   "requests": [
    {
     "method": "POST",
     "url": "/mcp-attestor/scan",
     "body": {
      "sample_id": "leaky-resource"
     }
    }
   ],
   "path": "grade",
   "expect": [
    "PARTIAL"
   ]
  },
  {
   "id": "C04",
   "kind": "control",
   "claim": "A 'search' that ignores the query (scan only) -> The scan alone cannot see this: its description is fine. That is why the probe below exists.",
   "requests": [
    {
     "method": "POST",
     "url": "/mcp-attestor/scan",
     "body": {
      "sample_id": "canned-search"
     }
    }
   ],
   "path": "grade",
   "expect": [
    "REAL"
   ]
  },
  {
   "id": "C05",
   "kind": "attack",
   "claim": "Probe the canned search, then prove the fix -> Behaviour tests fail on the canned tool (same answer for different queries) and pass on the fixed one.",
   "requests": [
    {
     "method": "POST",
     "url": "/mcp-attestor/attest",
     "body": {
      "sample_id": "canned-search"
     }
    }
   ],
   "path": "verdict",
   "expect": [
    "VERIFIED_ATTESTATION"
   ]
  }
 ]
}