{
  "title": "MCP Apps State Model Matrix",
  "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": 8,
  "records": [
    {
      "State type": "Core MCP protocol-session state",
      "Where it lives": "Removed from current 2026-07-28 core MCP",
      "Durability": "None in modern core",
      "Portable across hosts": "Not applicable",
      "Design guidance": "Do not rely on initialize or Mcp-Session-Id for modern requests.",
      "Sources": "S026 S082",
      "id": "R9-STATE001",
      "packageSourceIds": [
        "S026",
        "S082"
      ],
      "sourceIds": [
        "S054",
        "S058"
      ]
    },
    {
      "State type": "App–Host extension lifecycle",
      "Where it lives": "App and Host bridge",
      "Durability": "For the lifetime of one rendered View unless host restores it",
      "Portable across hosts": "Protocol-level messages are portable; persistence behavior is host-specific",
      "Design guidance": "Distinguish ui/initialize from the removed core MCP initialize.",
      "Sources": "S004 S008",
      "id": "R9-STATE002",
      "packageSourceIds": [
        "S004",
        "S008"
      ],
      "sourceIds": [
        "S390",
        "S393"
      ]
    },
    {
      "State type": "View-local JavaScript state",
      "Where it lives": "Sandboxed iframe memory",
      "Durability": "Until reload or teardown",
      "Portable across hosts": "No guarantee",
      "Design guidance": "Use for transient interaction, not authoritative business state.",
      "Sources": "S004 S013",
      "id": "R9-STATE003",
      "packageSourceIds": [
        "S004",
        "S013"
      ],
      "sourceIds": [
        "S390",
        "S398"
      ]
    },
    {
      "State type": "Browser storage inside sandbox",
      "Where it lives": "Host-assigned app origin",
      "Durability": "Host/browser dependent",
      "Portable across hosts": "No",
      "Design guidance": "Treat as optional cache; dedicated domains create additional privacy and lifecycle questions.",
      "Sources": "S004 S010 S076",
      "id": "R9-STATE004",
      "packageSourceIds": [
        "S004",
        "S010",
        "S076"
      ],
      "sourceIds": [
        "S390",
        "S395",
        "S452"
      ]
    },
    {
      "State type": "Host conversation state",
      "Where it lives": "AI host",
      "Durability": "Host policy",
      "Portable across hosts": "Usually no",
      "Design guidance": "Use ui/update-model-context sparingly and make provenance clear.",
      "Sources": "S004 S076",
      "id": "R9-STATE005",
      "packageSourceIds": [
        "S004",
        "S076"
      ],
      "sourceIds": [
        "S390",
        "S452"
      ]
    },
    {
      "State type": "Server application state",
      "Where it lives": "MCP server or backing datastore",
      "Durability": "Application-defined",
      "Portable across hosts": "Yes if server identity and authorization are stable",
      "Design guidance": "Make continuity explicit through IDs or handles.",
      "Sources": "S026 S027",
      "id": "R9-STATE006",
      "packageSourceIds": [
        "S026",
        "S027"
      ],
      "sourceIds": [
        "S054",
        "S123"
      ]
    },
    {
      "State type": "Tool execution state",
      "Where it lives": "Server, task system or external service",
      "Durability": "Operation-defined",
      "Portable across hosts": "Potentially, if exposed through explicit identifiers",
      "Design guidance": "Do not rely on a particular iframe or server process surviving.",
      "Sources": "S026 S027",
      "id": "R9-STATE007",
      "packageSourceIds": [
        "S026",
        "S027"
      ],
      "sourceIds": [
        "S054",
        "S123"
      ]
    },
    {
      "State type": "Multi-instance View state",
      "Where it lives": "Per rendered App instance",
      "Durability": "Host-specific",
      "Portable across hosts": "Not safely assumed",
      "Design guidance": "Namespace context and storage by instance; the current issue record shows ambiguity remains.",
      "Sources": "S076",
      "id": "R9-STATE008",
      "packageSourceIds": [
        "S076"
      ],
      "sourceIds": [
        "S452"
      ]
    }
  ]
}