{
  "slug": "forestadmin",
  "tool_id": "npm/@forestadmin/mcp-server",
  "verdict_url": "/verdict/forestadmin",
  "verdict_content_hash": "sha256:3eb20c7747b818740abd9a2e48be2868c5d18f140f3c0e71953636913d05bdfb",
  "version": "1.12.3",
  "commit": "b31132cbccf27742a3d3bb94be3fa58cae77651f",
  "dist_shasum": "92e6dd53952a9bb744c99ea3ae3c82db4745872e",
  "scanned_at": "2026-06-14T00:00:00Z",
  "capture_self_test": "verified — a beacon decoy was emitted from the tool's network context; its presence in the intercept means a 'no egress' result would have been trustworthy.",
  "method": "Installed and run in an isolated container; fed traceable decoy data; all outbound traffic intercepted (TLS broken via own CA, iptables transparent redirect). Endpoints, resolved geo/jurisdiction and frequency are observed facts. Capture self-test passed.",
  "request_count": 2,
  "captured_requests": [
    {
      "method": "GET",
      "scheme": "https",
      "host": "api.forestadmin.com",
      "path": "/liana/forest-schema",
      "headers": {
        "Host": "api.forestadmin.com",
        "Accept-Encoding": "gzip, deflate",
        "forest-secret-key": "canary-dummy",
        "Connection": "close"
      },
      "body_redacted": "",
      "blocked": true,
      "tls_inspected": true
    },
    {
      "method": "GET",
      "scheme": "https",
      "host": "api.forestadmin.com",
      "path": "/liana/environment",
      "headers": {
        "host": "api.forestadmin.com",
        "connection": "keep-alive",
        "forest-secret-key": "canary-dummy",
        "Content-Type": "application/json",
        "accept": "*/*",
        "accept-language": "*",
        "sec-fetch-mode": "cors",
        "user-agent": "node",
        "accept-encoding": "br, gzip, deflate"
      },
      "body_redacted": "",
      "blocked": true,
      "tls_inspected": true
    }
  ],
  "reproduce": {
    "scanner": "canary-sandbox (open methodology; Docker backend)",
    "command": "python -m canary.cli scan <target> --backend docker   # target: npm @forestadmin/mcp-server@1.12.3",
    "note": "Re-run it yourself: the scanner installs the pinned version, drives the tool over MCP, and intercepts all egress."
  },
  "note": "Raw captured outbound requests from one sandbox run (identifiers/keys redacted). This is the underlying observation behind the verdict — re-run the scan to verify.",
  "verification": "verdict_content_hash = sha256 over the canonical verdict JSON; dist_shasum = the npm tarball checksum of the pinned version. Signed artifacts + an append-only immutable log are on the roadmap (toward independent verifiability).",
  "verdict_signature": "ed25519:ZLRY7WuvTxP0lnayIYV/CPwnwNnKOWIgU/dSGhsp/kAhJlKMaNw7153qcx7mkbESXStMOaQfHIwtsD5VfgpxBA=="
}