{
  "title": "MCP Apps vs Web Apps and Plugins",
  "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": 11,
  "records": [
    {
      "Dimension": "Primary container",
      "MCP App": "AI host-controlled sandboxed View",
      "Conventional web app": "Top-level browser page or ordinary embed",
      "IDE/browser plugin": "Privileged extension runtime",
      "id": "R9-WEB001",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Entry point",
      "MCP App": "MCP tool linked to ui:// resource",
      "Conventional web app": "URL, route or application shell",
      "IDE/browser plugin": "Installation and extension manifest",
      "id": "R9-WEB002",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Operational backend",
      "MCP App": "MCP server tools/resources",
      "Conventional web app": "Direct APIs and web backend",
      "IDE/browser plugin": "Extension APIs and optional backend",
      "id": "R9-WEB003",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Host relationship",
      "MCP App": "Host mediates messages, tools and display",
      "Conventional web app": "Browser enforces web origin; app controls page",
      "IDE/browser plugin": "Product grants extension capabilities",
      "id": "R9-WEB004",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Conversation integration",
      "MCP App": "Native tool result and model-context bridge",
      "Conventional web app": "External unless separately integrated",
      "IDE/browser plugin": "Product-specific",
      "id": "R9-WEB005",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "UI communication",
      "MCP App": "JSON-RPC over postMessage/AppBridge",
      "Conventional web app": "DOM, HTTP, browser messaging",
      "IDE/browser plugin": "Extension APIs and message channels",
      "id": "R9-WEB006",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Tool authority",
      "MCP App": "Requested through host and MCP server",
      "Conventional web app": "Direct API calls with app credentials",
      "IDE/browser plugin": "Extension permissions and APIs",
      "id": "R9-WEB007",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Security boundary",
      "MCP App": "Iframe sandbox, CSP, Permission Policy and host policy",
      "Conventional web app": "Origin isolation, CSP and browser permissions",
      "IDE/browser plugin": "Extension sandbox and product permission model",
      "id": "R9-WEB008",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Portability",
      "MCP App": "Across compatible hosts, with capability variance",
      "Conventional web app": "Across standards-compliant browsers",
      "IDE/browser plugin": "Usually product-specific",
      "id": "R9-WEB009",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Offline/standalone use",
      "MCP App": "Not guaranteed; designed for host context",
      "Conventional web app": "Possible",
      "IDE/browser plugin": "Product dependent",
      "id": "R9-WEB010",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    },
    {
      "Dimension": "Distribution",
      "MCP App": "MCP server install, connector or host directory",
      "Conventional web app": "Web deployment",
      "IDE/browser plugin": "Marketplace/package",
      "id": "R9-WEB011",
      "packageSourceIds": [
        "S004",
        "S060"
      ],
      "sourceIds": [
        "S390",
        "S436"
      ]
    }
  ]
}