{
  "title": "MCP Apps App–Host Method Register",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-26",
  "protocolRevision": "MCP Apps 2026-01-26 / ext-apps SDK v1.7.5 / MCP core 2026-07-28",
  "sourcePackage": "research/9",
  "integrityNote": "The 93 ordinary archive entries verify. Two self-referential bookkeeping entries have disclosed stale final rows; public corrections do not modify the raw archive.",
  "count": 19,
  "records": [
    {
      "Method/notification": "ui/initialize",
      "Direction": "View → Host",
      "Stable status": "Stable",
      "Purpose": "Negotiate App–Host protocol version, app capabilities and receive host context",
      "Security/policy note": "Not the removed core MCP initialize handshake. This lifecycle is extension-local.",
      "Sources": "S004 S008",
      "id": "R9-METHOD001",
      "packageSourceIds": [
        "S004",
        "S008"
      ],
      "sourceIds": [
        "S390",
        "S393"
      ]
    },
    {
      "Method/notification": "ui/notifications/initialized",
      "Direction": "View → Host",
      "Stable status": "Stable",
      "Purpose": "Signal that View initialization is complete",
      "Security/policy note": "Host should not send normal View traffic before readiness.",
      "Sources": "S004",
      "id": "R9-METHOD002",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "ui/notifications/tool-input-partial",
      "Direction": "Host → View",
      "Stable status": "Stable optional",
      "Purpose": "Provide progressively assembled tool arguments",
      "Security/policy note": "App must not rely on partial arguments for critical operations.",
      "Sources": "S004",
      "id": "R9-METHOD003",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "ui/notifications/tool-input",
      "Direction": "Host → View",
      "Stable status": "Stable",
      "Purpose": "Provide complete tool arguments",
      "Security/policy note": "Treat as untrusted input and validate before rendering.",
      "Sources": "S004",
      "id": "R9-METHOD004",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "ui/notifications/tool-result",
      "Direction": "Host → View",
      "Stable status": "Stable",
      "Purpose": "Deliver MCP CallToolResult to the View",
      "Security/policy note": "Tool output can contain untrusted or injected content.",
      "Sources": "S004",
      "id": "R9-METHOD005",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "ui/notifications/tool-cancelled",
      "Direction": "Host → View",
      "Stable status": "Stable",
      "Purpose": "Notify the View that the associated call was cancelled",
      "Security/policy note": "UI should preserve a recoverable state and announce cancellation accessibly.",
      "Sources": "S004",
      "id": "R9-METHOD006",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "tools/call",
      "Direction": "View → Host → MCP Server",
      "Stable status": "Stable shared MCP method",
      "Purpose": "Request an app-permitted tool invocation",
      "Security/policy note": "Host and server both retain authorization responsibilities.",
      "Sources": "S004 S027",
      "id": "R9-METHOD007",
      "packageSourceIds": [
        "S004",
        "S027"
      ],
      "sourceIds": [
        "S390",
        "S123"
      ]
    },
    {
      "Method/notification": "resources/read",
      "Direction": "View → Host → MCP Server",
      "Stable status": "Stable shared MCP method",
      "Purpose": "Read an MCP resource through the host proxy",
      "Security/policy note": "Host may restrict URI access; server enforces resource authorization.",
      "Sources": "S004 S028",
      "id": "R9-METHOD008",
      "packageSourceIds": [
        "S004",
        "S028"
      ],
      "sourceIds": [
        "S390",
        "S124"
      ]
    },
    {
      "Method/notification": "ui/open-link",
      "Direction": "View → Host",
      "Stable status": "Stable",
      "Purpose": "Ask host to open an external URL",
      "Security/policy note": "Host validates scheme, destination and user policy.",
      "Sources": "S004",
      "id": "R9-METHOD009",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "ui/message",
      "Direction": "View → Host",
      "Stable status": "Stable",
      "Purpose": "Submit message content into the host conversation",
      "Security/policy note": "Host may request consent and should show provenance.",
      "Sources": "S004",
      "id": "R9-METHOD010",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "ui/update-model-context",
      "Direction": "View → Host",
      "Stable status": "Stable",
      "Purpose": "Replace app-supplied model context for future turns",
      "Security/policy note": "Scope multiple View instances and avoid silent cross-instance overwrite.",
      "Sources": "S004 S076",
      "id": "R9-METHOD011",
      "packageSourceIds": [
        "S004",
        "S076"
      ],
      "sourceIds": [
        "S390",
        "S452"
      ]
    },
    {
      "Method/notification": "ui/request-display-mode",
      "Direction": "View → Host",
      "Stable status": "Stable",
      "Purpose": "Request inline, fullscreen or picture-in-picture",
      "Security/policy note": "Host retains final control and may decline.",
      "Sources": "S004",
      "id": "R9-METHOD012",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "notifications/message",
      "Direction": "View → Host",
      "Stable status": "Stable shared MCP notification",
      "Purpose": "Send log or telemetry message",
      "Security/policy note": "Avoid secrets and sensitive user data in logs.",
      "Sources": "S004",
      "id": "R9-METHOD013",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "ui/notifications/size-changed",
      "Direction": "View → Host",
      "Stable status": "Stable",
      "Purpose": "Notify host of preferred dimensions",
      "Security/policy note": "Host should prevent layout abuse and excessive resizing.",
      "Sources": "S004 S008",
      "id": "R9-METHOD014",
      "packageSourceIds": [
        "S004",
        "S008"
      ],
      "sourceIds": [
        "S390",
        "S393"
      ]
    },
    {
      "Method/notification": "ui/notifications/host-context-changed",
      "Direction": "Host → View",
      "Stable status": "Stable",
      "Purpose": "Update theme, locale, display mode, dimensions and related host context",
      "Security/policy note": "App must handle missing fields and host-specific variation.",
      "Sources": "S004 S008",
      "id": "R9-METHOD015",
      "packageSourceIds": [
        "S004",
        "S008"
      ],
      "sourceIds": [
        "S390",
        "S393"
      ]
    },
    {
      "Method/notification": "ui/notifications/sandbox-proxy-ready",
      "Direction": "Sandbox Proxy → Host",
      "Stable status": "Stable web-host pattern",
      "Purpose": "Signal proxy readiness",
      "Security/policy note": "Host must validate message source window.",
      "Sources": "S004 S061",
      "id": "R9-METHOD016",
      "packageSourceIds": [
        "S004",
        "S061"
      ],
      "sourceIds": [
        "S390",
        "S437"
      ]
    },
    {
      "Method/notification": "ui/notifications/sandbox-resource-ready",
      "Direction": "Host → Sandbox Proxy",
      "Stable status": "Stable web-host pattern",
      "Purpose": "Deliver HTML to the isolated proxy",
      "Security/policy note": "Apply sandbox and CSP before execution.",
      "Sources": "S004 S010",
      "id": "R9-METHOD017",
      "packageSourceIds": [
        "S004",
        "S010"
      ],
      "sourceIds": [
        "S390",
        "S395"
      ]
    },
    {
      "Method/notification": "ui/resource-teardown",
      "Direction": "Host → View",
      "Stable status": "Stable",
      "Purpose": "Request graceful cleanup before destroying the View",
      "Security/policy note": "App should release timers, streams and sensitive state.",
      "Sources": "S004",
      "id": "R9-METHOD018",
      "packageSourceIds": [
        "S004"
      ],
      "sourceIds": [
        "S390"
      ]
    },
    {
      "Method/notification": "App-provided tools/list and tools/call",
      "Direction": "Host ↔ View",
      "Stable status": "Draft only",
      "Purpose": "Let a View declare ephemeral tools to the host",
      "Security/policy note": "Do not present as stable; negotiation and provenance remain active design work.",
      "Sources": "S005 S079",
      "id": "R9-METHOD019",
      "packageSourceIds": [
        "S005",
        "S079"
      ],
      "sourceIds": [
        "S391",
        "S455"
      ]
    }
  ]
}