{
  "title": "Remote MCP Cloud Hosting Platform Matrix",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-26",
  "protocolRevision": "MCP 2026-07-28",
  "sourcePackage": "research/10",
  "integrityNote": "All 108 listed ordinary archive payloads verify. The package contains two incompatible numeric source namespaces; public records preserve an explicit archive namespace and never resolve IDs across families.",
  "evidencePolicy": "Only manually curated build_context source groups appear in sourceIds. Raw row tokens are preserved under archive and are not treated as publication citations.",
  "checkedAt": "2026-08-26",
  "liveCheckRequired": true,
  "count": 11,
  "records": [
    {
      "Provider": "Cloudflare",
      "Service/pattern": "Workers + Agents SDK createMcpHandler",
      "Deployment model": "Stateless edge/serverless remote server",
      "Scaling": "Automatic Workers scaling",
      "Identity": "OAuth/Access/custom auth",
      "State": "External storage or explicit handles",
      "Best fit": "Low-ops global HTTP MCP endpoint",
      "Caveat": "Legacy McpAgent/sessionful path is deprecated and needs staged migration",
      "Source IDs": "S047 S048 S049",
      "id": "R10-CLOUD001",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 1,
        "sourceIds": [
          "S047",
          "S048",
          "S049"
        ],
        "raw": {
          "Provider": "Cloudflare",
          "Service/pattern": "Workers + Agents SDK createMcpHandler",
          "Deployment model": "Stateless edge/serverless remote server",
          "Scaling": "Automatic Workers scaling",
          "Identity": "OAuth/Access/custom auth",
          "State": "External storage or explicit handles",
          "Best fit": "Low-ops global HTTP MCP endpoint",
          "Caveat": "Legacy McpAgent/sessionful path is deprecated and needs staged migration",
          "Source IDs": "S047 S048 S049"
        }
      }
    },
    {
      "Provider": "Cloudflare",
      "Service/pattern": "Tunnel",
      "Deployment model": "Outbound tunnel from private/local HTTP service",
      "Scaling": "Tunnel network",
      "Identity": "Tunnel/Access plus MCP auth",
      "State": "State stays private/local",
      "Best fit": "Connect ChatGPT or cloud hosts to private server without public inbound port",
      "Caveat": "Tunnel does not fix insecure local service or excessive authority",
      "Source IDs": "S035 S050",
      "id": "R10-CLOUD002",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 2,
        "sourceIds": [
          "S035",
          "S050"
        ],
        "raw": {
          "Provider": "Cloudflare",
          "Service/pattern": "Tunnel",
          "Deployment model": "Outbound tunnel from private/local HTTP service",
          "Scaling": "Tunnel network",
          "Identity": "Tunnel/Access plus MCP auth",
          "State": "State stays private/local",
          "Best fit": "Connect ChatGPT or cloud hosts to private server without public inbound port",
          "Caveat": "Tunnel does not fix insecure local service or excessive authority",
          "Source IDs": "S035 S050"
        }
      }
    },
    {
      "Provider": "AWS",
      "Service/pattern": "Bedrock AgentCore Runtime",
      "Deployment model": "Managed serverless containers/microVM runtime",
      "Scaling": "Automatic scaling",
      "Identity": "AgentCore Identity, IAM, OAuth/JWT",
      "State": "Stateless or platform-specific stateful patterns",
      "Best fit": "Production remote MCP server/proxy with observability",
      "Caveat": "Version/stateful feature behavior must be frozen by date",
      "Source IDs": "S051 S052",
      "id": "R10-CLOUD003",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 3,
        "sourceIds": [
          "S051",
          "S052"
        ],
        "raw": {
          "Provider": "AWS",
          "Service/pattern": "Bedrock AgentCore Runtime",
          "Deployment model": "Managed serverless containers/microVM runtime",
          "Scaling": "Automatic scaling",
          "Identity": "AgentCore Identity, IAM, OAuth/JWT",
          "State": "Stateless or platform-specific stateful patterns",
          "Best fit": "Production remote MCP server/proxy with observability",
          "Caveat": "Version/stateful feature behavior must be frozen by date",
          "Source IDs": "S051 S052"
        }
      }
    },
    {
      "Provider": "AWS",
      "Service/pattern": "AgentCore Gateway",
      "Deployment model": "Managed MCP gateway and target aggregation",
      "Scaling": "Managed",
      "Identity": "IAM/OAuth and target credential management",
      "State": "Gateway catalog/cache and upstream state",
      "Best fit": "Central policy, version translation and server aggregation",
      "Caveat": "Gateway is a trust concentration and not all cross-version features translate",
      "Source IDs": "S052 S053 S054 S055",
      "id": "R10-CLOUD004",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 4,
        "sourceIds": [
          "S052",
          "S053",
          "S054",
          "S055"
        ],
        "raw": {
          "Provider": "AWS",
          "Service/pattern": "AgentCore Gateway",
          "Deployment model": "Managed MCP gateway and target aggregation",
          "Scaling": "Managed",
          "Identity": "IAM/OAuth and target credential management",
          "State": "Gateway catalog/cache and upstream state",
          "Best fit": "Central policy, version translation and server aggregation",
          "Caveat": "Gateway is a trust concentration and not all cross-version features translate",
          "Source IDs": "S052 S053 S054 S055"
        }
      }
    },
    {
      "Provider": "Azure",
      "Service/pattern": "Container Apps standalone",
      "Deployment model": "Containerized custom remote MCP server",
      "Scaling": "Autoscale including scale-to-zero",
      "Identity": "Entra ID optional, managed identity",
      "State": "Application stores/handles",
      "Best fit": "General custom tools in any SDK language",
      "Caveat": "Min replica may be needed to avoid interactive cold start",
      "Source IDs": "S056 S057",
      "id": "R10-CLOUD005",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 5,
        "sourceIds": [
          "S056",
          "S057"
        ],
        "raw": {
          "Provider": "Azure",
          "Service/pattern": "Container Apps standalone",
          "Deployment model": "Containerized custom remote MCP server",
          "Scaling": "Autoscale including scale-to-zero",
          "Identity": "Entra ID optional, managed identity",
          "State": "Application stores/handles",
          "Best fit": "General custom tools in any SDK language",
          "Caveat": "Min replica may be needed to avoid interactive cold start",
          "Source IDs": "S056 S057"
        }
      }
    },
    {
      "Provider": "Azure",
      "Service/pattern": "Container Apps dynamic sessions",
      "Deployment model": "Platform-managed code-execution MCP",
      "Scaling": "Per-session pools",
      "Identity": "API key",
      "State": "Dedicated Hyper-V sandbox session",
      "Best fit": "Sandboxed Python/shell execution",
      "Caveat": "Predefined tools and older protocol version; not a general custom server",
      "Source IDs": "S056",
      "id": "R10-CLOUD006",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 6,
        "sourceIds": [
          "S056"
        ],
        "raw": {
          "Provider": "Azure",
          "Service/pattern": "Container Apps dynamic sessions",
          "Deployment model": "Platform-managed code-execution MCP",
          "Scaling": "Per-session pools",
          "Identity": "API key",
          "State": "Dedicated Hyper-V sandbox session",
          "Best fit": "Sandboxed Python/shell execution",
          "Caveat": "Predefined tools and older protocol version; not a general custom server",
          "Source IDs": "S056"
        }
      }
    },
    {
      "Provider": "Azure",
      "Service/pattern": "App Service",
      "Deployment model": "Code or built-in OpenAPI-to-MCP endpoint",
      "Scaling": "Plan-based",
      "Identity": "Entra ID",
      "State": "Application state",
      "Best fit": "Existing web app/API integration",
      "Caveat": "Preview/built-in behavior and cost depend on service tier",
      "Source IDs": "S057",
      "id": "R10-CLOUD007",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 7,
        "sourceIds": [
          "S057"
        ],
        "raw": {
          "Provider": "Azure",
          "Service/pattern": "App Service",
          "Deployment model": "Code or built-in OpenAPI-to-MCP endpoint",
          "Scaling": "Plan-based",
          "Identity": "Entra ID",
          "State": "Application state",
          "Best fit": "Existing web app/API integration",
          "Caveat": "Preview/built-in behavior and cost depend on service tier",
          "Source IDs": "S057"
        }
      }
    },
    {
      "Provider": "Azure",
      "Service/pattern": "Functions",
      "Deployment model": "Event-driven stateless tools",
      "Scaling": "Per-invocation/serverless",
      "Identity": "Azure identity/auth integration",
      "State": "External state",
      "Best fit": "Bursty tool calls",
      "Caveat": "Streaming and long-running workflows need validation",
      "Source IDs": "S057",
      "id": "R10-CLOUD008",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 8,
        "sourceIds": [
          "S057"
        ],
        "raw": {
          "Provider": "Azure",
          "Service/pattern": "Functions",
          "Deployment model": "Event-driven stateless tools",
          "Scaling": "Per-invocation/serverless",
          "Identity": "Azure identity/auth integration",
          "State": "External state",
          "Best fit": "Bursty tool calls",
          "Caveat": "Streaming and long-running workflows need validation",
          "Source IDs": "S057"
        }
      }
    },
    {
      "Provider": "Azure",
      "Service/pattern": "AKS",
      "Deployment model": "Kubernetes deployment",
      "Scaling": "KEDA/HPA/custom",
      "Identity": "Cluster/IAM/mesh",
      "State": "Any application model",
      "Best fit": "Teams needing Kubernetes control",
      "Caveat": "Highest operations burden",
      "Source IDs": "S057",
      "id": "R10-CLOUD009",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 9,
        "sourceIds": [
          "S057"
        ],
        "raw": {
          "Provider": "Azure",
          "Service/pattern": "AKS",
          "Deployment model": "Kubernetes deployment",
          "Scaling": "KEDA/HPA/custom",
          "Identity": "Cluster/IAM/mesh",
          "State": "Any application model",
          "Best fit": "Teams needing Kubernetes control",
          "Caveat": "Highest operations burden",
          "Source IDs": "S057"
        }
      }
    },
    {
      "Provider": "Google Cloud",
      "Service/pattern": "Google-managed remote MCP servers",
      "Deployment model": "Fully managed vendor endpoints",
      "Scaling": "Provider managed",
      "Identity": "Google Cloud IAM",
      "State": "Provider managed",
      "Best fit": "Zero-install access to Google services",
      "Caveat": "Capability set and region/product availability are provider-controlled",
      "Source IDs": "S058 S059 S060 S061 S071",
      "id": "R10-CLOUD010",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 10,
        "sourceIds": [
          "S058",
          "S059",
          "S060",
          "S061",
          "S071"
        ],
        "raw": {
          "Provider": "Google Cloud",
          "Service/pattern": "Google-managed remote MCP servers",
          "Deployment model": "Fully managed vendor endpoints",
          "Scaling": "Provider managed",
          "Identity": "Google Cloud IAM",
          "State": "Provider managed",
          "Best fit": "Zero-install access to Google services",
          "Caveat": "Capability set and region/product availability are provider-controlled",
          "Source IDs": "S058 S059 S060 S061 S071"
        }
      }
    },
    {
      "Provider": "Google Cloud",
      "Service/pattern": "Self-hosted local/toolbox server",
      "Deployment model": "Customer process or container",
      "Scaling": "Customer managed",
      "Identity": "Local credentials or IAM",
      "State": "Customer managed",
      "Best fit": "More flexibility/control",
      "Caveat": "More setup, updates and operational responsibility",
      "Source IDs": "S058 S060",
      "id": "R10-CLOUD011",
      "sourceIds": [
        "S467",
        "S468",
        "S471",
        "S472",
        "S473",
        "S474",
        "S475",
        "S476",
        "S478",
        "S479",
        "S480",
        "S486",
        "S487",
        "S488"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/cloud_hosting_platform_matrix.json",
        "row": 11,
        "sourceIds": [
          "S058",
          "S060"
        ],
        "raw": {
          "Provider": "Google Cloud",
          "Service/pattern": "Self-hosted local/toolbox server",
          "Deployment model": "Customer process or container",
          "Scaling": "Customer managed",
          "Identity": "Local credentials or IAM",
          "State": "Customer managed",
          "Best fit": "More flexibility/control",
          "Caveat": "More setup, updates and operational responsibility",
          "Source IDs": "S058 S060"
        }
      }
    }
  ]
}