Raw scan report

Run402 — the complete, unedited output of the deterministic mcptrustchecker engine v1.13.0, scanned . Every finding, capability tag and score component below is exactly what the engine produced — no AI, no post-processing.

← Back to the scan page
{
  "tool": {
    "name": "mcptrustchecker",
    "version": "1.13.0",
    "methodologyVersion": "mcptrustchecker-1.13"
  },
  "target": {
    "id": "run402-mcp",
    "source": {
      "kind": "package",
      "origin": "run402-mcp"
    },
    "server": {
      "name": "run402-mcp"
    }
  },
  "grade": "A",
  "score": {
    "score": 90,
    "threatScore": 100,
    "grade": "A",
    "band": "A",
    "categorySubtotals": {
      "injection": 0,
      "exfiltration": 0,
      "permissions": 0,
      "supply-chain": 0,
      "network": 0,
      "hygiene": 0
    },
    "vector": [
      {
        "kind": "client",
        "term": "capability-exposure",
        "level": "critical",
        "label": "capability blast radius (critical) — client exposure if the model is manipulated",
        "appliedPenalty": 10
      },
      {
        "kind": "client",
        "term": "verification-discount",
        "level": "source",
        "label": "publisher verification (provenance) — cryptographic build provenance ties the artifact to its source",
        "appliedPenalty": 0
      },
      {
        "kind": "client",
        "term": "coverage-honesty",
        "level": "source",
        "label": "inspection depth (source) — how much of the target the scan could see",
        "appliedPenalty": 0
      }
    ],
    "gatesFired": [],
    "methodologyVersion": "mcptrustchecker-1.13"
  },
  "capability": {
    "level": "critical",
    "reasons": [
      "ingests untrusted external content (a prompt-injection entry point)",
      "can send data / act on an external service",
      "reads sensitive or local data",
      "has a read → egress path (a data-exfiltration surface)",
      "can execute shell commands or code",
      "untrusted-input, sensitive-source and egress co-exist across tools (toxic-flow surface)",
      "untrusted input can reach code execution"
    ],
    "tags": [
      "sensitive-source",
      "untrusted-input",
      "external-sink",
      "code-exec"
    ]
  },
  "coverage": {
    "level": "source",
    "inputs": {
      "toolSurface": true,
      "implementationSource": true,
      "packageMetadata": true,
      "liveTransport": false
    },
    "caveats": [
      "Tools were statically extracted from the published source (200 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command \"npx -y <package>\"."
    ]
  },
  "findings": [
    {
      "ruleId": "MTC-FLOW-002",
      "title": "Completed toxic-flow trifecta across tools",
      "category": "exfiltration",
      "severity": "critical",
      "confidence": "strong",
      "description": "This server (without client built-ins) exposes a complete data-exfiltration chain: assets_get → list_secrets → delete_mailbox_webhook. Untrusted input is ingested, private data is read, and it can be sent to an external sink via the agent composing the tools (→). Static analysis proves the primitive exists, not that a specific run will occur.",
      "remediation": "Remove one leg of the trifecta: isolate untrusted-input tools from secret-reading tools and from egress tools, or require human approval between them.",
      "location": {
        "kind": "flow",
        "name": "assets_get → list_secrets → delete_mailbox_webhook"
      },
      "owasp": "LLM02:2025 Sensitive Information Disclosure",
      "references": [],
      "data": {
        "untrusted": [
          "assets_get",
          "get_function_run",
          "get_function_run_logs",
          "jobs_download_artifact",
          "deploy_diagnose_url",
          "browse_apps",
          "preview_project_transfer"
        ],
        "sources": [
          "run_sql",
          "list_secrets"
        ],
        "sinks": [
          "send_email",
          "register_mailbox_webhook",
          "delete_mailbox_webhook",
          "update_mailbox_webhook",
          "redrive_mailbox_webhook_delivery",
          "set_notification_preferences",
          "rotate_webhook_secret"
        ],
        "path": [
          "assets_get",
          "list_secrets",
          "delete_mailbox_webhook"
        ],
        "edges": [
          {
            "from": "assets_get",
            "to": "list_secrets",
            "kind": "agent-mediated"
          },
          {
            "from": "list_secrets",
            "to": "delete_mailbox_webhook",
            "kind": "agent-mediated"
          }
        ],
        "wired": false
      }
    },
    {
      "ruleId": "MTC-SRC-006",
      "title": "Reads a sensitive credential path or dumps the environment (sdk/dist/node/files.js)",
      "category": "exfiltration",
      "severity": "high",
      "confidence": "strong",
      "description": "In the server's implementation (`sdk/dist/node/files.js:16`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.",
      "remediation": "Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.",
      "location": {
        "kind": "server",
        "name": "sdk/dist/node/files.js"
      },
      "evidence": "env\", \".envrc\", \".npmrc\", \".pnpmrc\", \".yarnrc\", \".netrc\", \".pypirc\", \"id_dsa\", \"id_ecdsa",
      "owasp": "LLM02:2025 Sensitive Information Disclosure",
      "data": {
        "rule": "MTC-SRC-006",
        "file": "sdk/dist/node/files.js",
        "line": 16,
        "nonRuntime": false
      }
    },
    {
      "ruleId": "MTC-SRC-006",
      "title": "Reads a sensitive credential path or dumps the environment (sdk/dist/node/gitvault-snapshot.js)",
      "category": "exfiltration",
      "severity": "high",
      "confidence": "strong",
      "description": "In the server's implementation (`sdk/dist/node/gitvault-snapshot.js:697`): Reading private keys / cloud credentials, or serializing the whole environment, is a sensitive-data source that becomes exfiltration when combined with any egress. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.",
      "remediation": "Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.",
      "location": {
        "kind": "server",
        "name": "sdk/dist/node/gitvault-snapshot.js"
      },
      "evidence": "\"*.keystore\", \"id_rsa*\", \"id_ed25519*\", \"id_ecdsa*\", \".npmrc\", \".netrc\", \".pypirc\", \".g",
      "owasp": "LLM02:2025 Sensitive Information Disclosure",
      "data": {
        "rule": "MTC-SRC-006",
        "file": "sdk/dist/node/gitvault-snapshot.js",
        "line": 697,
        "nonRuntime": false
      }
    },
    {
      "ruleId": "MTC-SRC-002",
      "title": "Shell/command execution in server code (sdk/dist/node/actions-node.js)",
      "category": "permissions",
      "severity": "high",
      "confidence": "strong",
      "description": "In the server's implementation (`sdk/dist/node/actions-node.js:2`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.",
      "remediation": "Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.",
      "location": {
        "kind": "server",
        "name": "sdk/dist/node/actions-node.js"
      },
      "evidence": "{ execFile } from \"node:child_process\"; import { lstat, mkdir, mkdtemp, readFile, rename, rm, writeFile, } from \"node:fs",
      "owasp": "LLM05:2025 Improper Output Handling",
      "data": {
        "rule": "MTC-SRC-002",
        "file": "sdk/dist/node/actions-node.js",
        "line": 2,
        "nonRuntime": false
      }
    },
    {
      "ruleId": "MTC-SRC-002",
      "title": "Shell/command execution in server code (sdk/dist/node/gitvault-restore.js)",
      "category": "permissions",
      "severity": "high",
      "confidence": "strong",
      "description": "In the server's implementation (`sdk/dist/node/gitvault-restore.js:27`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.",
      "remediation": "Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.",
      "location": {
        "kind": "server",
        "name": "sdk/dist/node/gitvault-restore.js"
      },
      "evidence": "{ execFile } from \"node:child_process\"; import { mkdtempSync, existsSync, readFileSync, appendFileSync, mkdirSync } from",
      "owasp": "LLM05:2025 Improper Output Handling",
      "data": {
        "rule": "MTC-SRC-002",
        "file": "sdk/dist/node/gitvault-restore.js",
        "line": 27,
        "nonRuntime": false
      }
    },
    {
      "ruleId": "MTC-SRC-002",
      "title": "Shell/command execution in server code (sdk/dist/node/gitvault-snapshot.js)",
      "category": "permissions",
      "severity": "high",
      "confidence": "strong",
      "description": "In the server's implementation (`sdk/dist/node/gitvault-snapshot.js:47`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.",
      "remediation": "Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.",
      "location": {
        "kind": "server",
        "name": "sdk/dist/node/gitvault-snapshot.js"
      },
      "evidence": "{ execFile } from \"node:child_process\"; import { existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readlinkSy",
      "owasp": "LLM05:2025 Improper Output Handling",
      "data": {
        "rule": "MTC-SRC-002",
        "file": "sdk/dist/node/gitvault-snapshot.js",
        "line": 47,
        "nonRuntime": false
      }
    }
  ],
  "toxicFlows": [
    {
      "id": "flow-1",
      "severity": "critical",
      "confidence": "strong",
      "untrustedInput": [
        "assets_get",
        "get_function_run",
        "get_function_run_logs",
        "jobs_download_artifact",
        "deploy_diagnose_url",
        "browse_apps",
        "preview_project_transfer"
      ],
      "sensitiveSource": [
        "run_sql",
        "list_secrets"
      ],
      "externalSink": [
        "send_email",
        "register_mailbox_webhook",
        "delete_mailbox_webhook",
        "update_mailbox_webhook",
        "redrive_mailbox_webhook_delivery",
        "set_notification_preferences",
        "rotate_webhook_secret"
      ],
      "selfContained": false,
      "path": [
        "assets_get",
        "list_secrets",
        "delete_mailbox_webhook"
      ],
      "pathWired": false,
      "description": "A cross-tool exfiltration chain exists: assets_get → list_secrets → delete_mailbox_webhook."
    }
  ],
  "capabilities": [
    {
      "tool": "provision_postgres_project",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "run_sql",
      "tags": [
        "sensitive-source"
      ],
      "reasons": {
        "sensitive-source": [
          "keyword \"run_sql\""
        ]
      }
    },
    {
      "tool": "rest_query",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "apply_expose",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "validate_manifest",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "app_up",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_expose",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_schema",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_usage",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "export_project_archive",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "inspect_project_archive",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "verify_project_archive",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "import_project_archive",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_project_snapshot",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_project_snapshots",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_project_snapshot",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "restore_project_snapshot",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_project_snapshot",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_project_branch",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_project_branches",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "renew_project_branch",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_project_branch",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_rehearse",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "assets_put",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "assets_get",
      "tags": [
        "untrusted-input"
      ],
      "reasons": {
        "untrusted-input": [
          "keyword \"download\""
        ]
      }
    },
    {
      "tool": "assets_ls",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "assets_rm",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "assets_sign",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "diagnose_public_url",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "wait_for_cdn_freshness",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "invoke_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_function_logs",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_functions",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "update_function",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "functions_rebuild",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_function_run",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_function_runs",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_function_run",
      "tags": [
        "untrusted-input"
      ],
      "reasons": {
        "untrusted-input": [
          "keyword \"fetch\""
        ]
      }
    },
    {
      "tool": "get_function_run_logs",
      "tags": [
        "untrusted-input"
      ],
      "reasons": {
        "untrusted-input": [
          "keyword \"fetch\""
        ]
      }
    },
    {
      "tool": "cancel_function_run",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "redrive_function_run",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_secret",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_secrets",
      "tags": [
        "sensitive-source"
      ],
      "reasons": {
        "sensitive-source": [
          "keyword \"list_secrets\""
        ]
      }
    },
    {
      "tool": "delete_secret",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "jobs_submit",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "jobs_get",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "jobs_logs",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "jobs_cancel",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "jobs_purge",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "jobs_download_artifact",
      "tags": [
        "untrusted-input"
      ],
      "reasons": {
        "untrusted-input": [
          "keyword \"download\""
        ]
      }
    },
    {
      "tool": "deploy_site",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_site_dir",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_diagnose_url",
      "tags": [
        "untrusted-input"
      ],
      "reasons": {
        "untrusted-input": [
          "keyword \"fetch\""
        ]
      }
    },
    {
      "tool": "deploy_resume",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_list",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_events",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_verify_edge",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_release_get",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_release_active",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "deploy_release_diff",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "ci_create_binding",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "ci_list_bindings",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "ci_get_binding",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "ci_revoke_binding",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "claim_subdomain",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_subdomain",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_subdomains",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "browse_apps",
      "tags": [
        "untrusted-input"
      ],
      "reasons": {
        "untrusted-input": [
          "keyword \"browse\""
        ]
      }
    },
    {
      "tool": "fork_app",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "publish_app",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_versions",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_quote",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "pay_url",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "tier_status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_tier",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_project",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "rename_project",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "admin_set_lease_perpetual",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "admin_archive_project",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "admin_reactivate_project",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "initiate_project_transfer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "preview_project_transfer",
      "tags": [
        "untrusted-input"
      ],
      "reasons": {
        "untrusted-input": [
          "keyword \"fetch\""
        ]
      }
    },
    {
      "tool": "accept_project_transfer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "claim_project_transfer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "cancel_project_transfer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_incoming_transfers",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_outgoing_transfers",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "promote_user",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "demote_user",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "check_balance",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_projects",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_tenant_payments",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "allowance_status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "allowance_create",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "allowance_export",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "request_faucet",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "redeem_voucher",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "generate_image",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_mailbox",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_mailboxes",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_mailbox_defaults",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "send_email",
      "tags": [
        "external-sink"
      ],
      "reasons": {
        "external-sink": [
          "keyword \"send_email\""
        ]
      }
    },
    {
      "tool": "list_emails",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_email",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_email_raw",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_mailbox",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "update_mailbox",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_mailbox",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "register_mailbox_webhook",
      "tags": [
        "external-sink"
      ],
      "reasons": {
        "external-sink": [
          "keyword \"webhook\""
        ]
      }
    },
    {
      "tool": "list_mailbox_webhooks",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_mailbox_webhook",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_mailbox_webhook",
      "tags": [
        "external-sink"
      ],
      "reasons": {
        "external-sink": [
          "keyword \"webhook\""
        ]
      }
    },
    {
      "tool": "update_mailbox_webhook",
      "tags": [
        "external-sink"
      ],
      "reasons": {
        "external-sink": [
          "keyword \"webhook\""
        ]
      }
    },
    {
      "tool": "list_mailbox_webhook_deliveries",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "redrive_mailbox_webhook_delivery",
      "tags": [
        "external-sink"
      ],
      "reasons": {
        "external-sink": [
          "keyword \"webhook\""
        ]
      }
    },
    {
      "tool": "ai_translate",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "ai_moderate",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "ai_usage",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "send_feedback",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_agent_contact",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_agent_contact_status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "verify_agent_contact_email",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "start_operator_passkey_enrollment",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_operator_status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_notification_preferences",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_notification_preferences",
      "tags": [
        "external-sink"
      ],
      "reasons": {
        "external-sink": [
          "keyword \"webhook\""
        ]
      }
    },
    {
      "tool": "list_notifications",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_project_events",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "join_room",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "send_room_message",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "raise_escalation",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_escalation",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_buzz_route",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_buzz_route_deliveries",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "read_room_messages",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "ack_room_message",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "claim_room_resource",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "release_room_claim",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "errors_list",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "test_notification",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "rotate_webhook_secret",
      "tags": [
        "external-sink"
      ],
      "reasons": {
        "external-sink": [
          "keyword \"webhook\""
        ]
      }
    },
    {
      "tool": "list_notification_channels",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_notification_rules",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_notification_rule",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_notification_rule",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_checkout",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "billing_history",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "update_version",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_version",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_app",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "init",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "project_get",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "project_use",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "project_key_cache_status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "project_key_cache_export",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "request_magic_link",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "verify_magic_link",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_auth_user",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "invite_auth_user",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_user_password",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "auth_settings",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "scaffold_roles",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "passkey_register_options",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "passkey_register_verify",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "passkey_login_options",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "passkey_login_verify",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_passkeys",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_passkey",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_ensure",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_get",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_list",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_check",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_apply",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_repair",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_test_receive",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_activate",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "domains_disconnect",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_email_organization",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "link_wallet_to_organization",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_auto_recharge",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "provision_signer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_signer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "list_signers",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_recovery_address",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "set_low_balance_alert",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "contract_call",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "contract_deploy",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "contract_read",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_contract_call_status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "drain_signer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "delete_signer",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "service_status",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "service_health",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "create_org",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "get_org",
      "tags": [],
      "reasons": {}
    },
    {
      "tool": "rename_org",
      "tags": [],
      "reasons": {}
    }
  ],
  "surfaceDigest": "410db9add348111d841e254710c367fc923f2327b7cda6ea2e94048c35b035c3",
  "stats": {
    "tools": 200,
    "prompts": 0,
    "resources": 0,
    "findingsBySeverity": {
      "critical": 1,
      "high": 5,
      "medium": 0,
      "low": 0,
      "info": 0
    }
  }
}