{
  "title": "MCP Deployment Pattern Taxonomy",
  "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",
  "count": 12,
  "records": [
    {
      "Pattern": "Personal local subprocess",
      "Location": "User laptop",
      "Transport": "stdio",
      "Tenancy": "Single user",
      "State model": "In process/files",
      "Identity model": "OS user + local/upstream tokens",
      "Good fit": "Filesystem, Git, desktop automation",
      "Principal risks": "Package trust, local code execution, environment leakage",
      "Source IDs": "S002 S011 S039",
      "id": "R10-PAT001",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 1,
        "sourceIds": [
          "S002",
          "S011",
          "S039"
        ],
        "raw": {
          "Pattern": "Personal local subprocess",
          "Location": "User laptop",
          "Transport": "stdio",
          "Tenancy": "Single user",
          "State model": "In process/files",
          "Identity model": "OS user + local/upstream tokens",
          "Good fit": "Filesystem, Git, desktop automation",
          "Principal risks": "Package trust, local code execution, environment leakage",
          "Source IDs": "S002 S011 S039"
        }
      }
    },
    {
      "Pattern": "Managed local bundle",
      "Location": "User/enterprise endpoint",
      "Transport": "stdio via MCPB",
      "Tenancy": "Single user/device",
      "State model": "Local files or embedded DB",
      "Identity model": "Managed package policy + OS identity",
      "Good fit": "Machine access with simpler install",
      "Principal risks": "Update provenance, endpoint inventory, secret storage",
      "Source IDs": "S014 S015 S016",
      "id": "R10-PAT002",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 2,
        "sourceIds": [
          "S014",
          "S015",
          "S016"
        ],
        "raw": {
          "Pattern": "Managed local bundle",
          "Location": "User/enterprise endpoint",
          "Transport": "stdio via MCPB",
          "Tenancy": "Single user/device",
          "State model": "Local files or embedded DB",
          "Identity model": "Managed package policy + OS identity",
          "Good fit": "Machine access with simpler install",
          "Principal risks": "Update provenance, endpoint inventory, secret storage",
          "Source IDs": "S014 S015 S016"
        }
      }
    },
    {
      "Pattern": "Local loopback HTTP",
      "Location": "User machine",
      "Transport": "Streamable HTTP on 127.0.0.1",
      "Tenancy": "Single user/device",
      "State model": "Application-defined",
      "Identity model": "Local token or process policy",
      "Good fit": "Browser/cloud bridge or reusable local daemon",
      "Principal risks": "DNS rebinding, exposed port, weak Origin/auth",
      "Source IDs": "S003 S013",
      "id": "R10-PAT003",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 3,
        "sourceIds": [
          "S003",
          "S013"
        ],
        "raw": {
          "Pattern": "Local loopback HTTP",
          "Location": "User machine",
          "Transport": "Streamable HTTP on 127.0.0.1",
          "Tenancy": "Single user/device",
          "State model": "Application-defined",
          "Identity model": "Local token or process policy",
          "Good fit": "Browser/cloud bridge or reusable local daemon",
          "Principal risks": "DNS rebinding, exposed port, weak Origin/auth",
          "Source IDs": "S003 S013"
        }
      }
    },
    {
      "Pattern": "Single-tenant remote service",
      "Location": "Hosted VPC/container",
      "Transport": "Streamable HTTP",
      "Tenancy": "One customer/organization",
      "State model": "Database/cache/explicit handles",
      "Identity model": "OAuth, IAM or private network",
      "Good fit": "Enterprise integration with strong isolation",
      "Principal risks": "Higher per-tenant cost and deployment sprawl",
      "Source IDs": "S004 S056 S057",
      "id": "R10-PAT004",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 4,
        "sourceIds": [
          "S004",
          "S056",
          "S057"
        ],
        "raw": {
          "Pattern": "Single-tenant remote service",
          "Location": "Hosted VPC/container",
          "Transport": "Streamable HTTP",
          "Tenancy": "One customer/organization",
          "State model": "Database/cache/explicit handles",
          "Identity model": "OAuth, IAM or private network",
          "Good fit": "Enterprise integration with strong isolation",
          "Principal risks": "Higher per-tenant cost and deployment sprawl",
          "Source IDs": "S004 S056 S057"
        }
      }
    },
    {
      "Pattern": "Multi-tenant remote SaaS",
      "Location": "Hosted service",
      "Transport": "Streamable HTTP",
      "Tenancy": "Many tenants",
      "State model": "Tenant-aware data stores",
      "Identity model": "OAuth delegated users + workload identity",
      "Good fit": "Vendor-supported SaaS integration",
      "Principal risks": "Cross-tenant leakage, central blast radius, rate limits",
      "Source IDs": "S004 S058 S059 S060",
      "id": "R10-PAT005",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 5,
        "sourceIds": [
          "S004",
          "S058",
          "S059",
          "S060"
        ],
        "raw": {
          "Pattern": "Multi-tenant remote SaaS",
          "Location": "Hosted service",
          "Transport": "Streamable HTTP",
          "Tenancy": "Many tenants",
          "State model": "Tenant-aware data stores",
          "Identity model": "OAuth delegated users + workload identity",
          "Good fit": "Vendor-supported SaaS integration",
          "Principal risks": "Cross-tenant leakage, central blast radius, rate limits",
          "Source IDs": "S004 S058 S059 S060"
        }
      }
    },
    {
      "Pattern": "Private remote service",
      "Location": "On-prem/VPC",
      "Transport": "Streamable HTTP",
      "Tenancy": "One organization",
      "State model": "Shared enterprise systems",
      "Identity model": "SSO/OAuth, mTLS, managed identity",
      "Good fit": "Internal tools and regulated data",
      "Principal risks": "Connectivity, certificate/IdP dependency, gateway bypass",
      "Source IDs": "S050 S053 S062",
      "id": "R10-PAT006",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 6,
        "sourceIds": [
          "S050",
          "S053",
          "S062"
        ],
        "raw": {
          "Pattern": "Private remote service",
          "Location": "On-prem/VPC",
          "Transport": "Streamable HTTP",
          "Tenancy": "One organization",
          "State model": "Shared enterprise systems",
          "Identity model": "SSO/OAuth, mTLS, managed identity",
          "Good fit": "Internal tools and regulated data",
          "Principal risks": "Connectivity, certificate/IdP dependency, gateway bypass",
          "Source IDs": "S050 S053 S062"
        }
      }
    },
    {
      "Pattern": "Enterprise MCP gateway",
      "Location": "Central gateway",
      "Transport": "Streamable HTTP front; multiple upstream transports",
      "Tenancy": "Many teams/servers",
      "State model": "Gateway catalogs/caches plus upstream state",
      "Identity model": "Inbound identity + target credential exchange",
      "Good fit": "Policy, audit, aggregation and version translation",
      "Principal risks": "Concentration risk, semantic mismatch, bypass",
      "Source IDs": "S052 S053 S054 S055",
      "id": "R10-PAT007",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 7,
        "sourceIds": [
          "S052",
          "S053",
          "S054",
          "S055"
        ],
        "raw": {
          "Pattern": "Enterprise MCP gateway",
          "Location": "Central gateway",
          "Transport": "Streamable HTTP front; multiple upstream transports",
          "Tenancy": "Many teams/servers",
          "State model": "Gateway catalogs/caches plus upstream state",
          "Identity model": "Inbound identity + target credential exchange",
          "Good fit": "Policy, audit, aggregation and version translation",
          "Principal risks": "Concentration risk, semantic mismatch, bypass",
          "Source IDs": "S052 S053 S054 S055"
        }
      }
    },
    {
      "Pattern": "Serverless remote function",
      "Location": "Functions/Workers",
      "Transport": "Streamable HTTP",
      "Tenancy": "Single or multi-tenant",
      "State model": "External DB/handle; no hidden session",
      "Identity model": "OAuth/IAM",
      "Good fit": "Bursty tools, APIs, edge proximity",
      "Principal risks": "Cold starts, streaming limits, state design",
      "Source IDs": "S047 S048 S051 S057",
      "id": "R10-PAT008",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 8,
        "sourceIds": [
          "S047",
          "S048",
          "S051",
          "S057"
        ],
        "raw": {
          "Pattern": "Serverless remote function",
          "Location": "Functions/Workers",
          "Transport": "Streamable HTTP",
          "Tenancy": "Single or multi-tenant",
          "State model": "External DB/handle; no hidden session",
          "Identity model": "OAuth/IAM",
          "Good fit": "Bursty tools, APIs, edge proximity",
          "Principal risks": "Cold starts, streaming limits, state design",
          "Source IDs": "S047 S048 S051 S057"
        }
      }
    },
    {
      "Pattern": "Containerized remote service",
      "Location": "Container Apps/ECS/Kubernetes",
      "Transport": "Streamable HTTP",
      "Tenancy": "Single or multi-tenant",
      "State model": "Application-defined",
      "Identity model": "OAuth/IAM/managed identity",
      "Good fit": "General production server",
      "Principal risks": "Patch pipeline, autoscaling, egress and tenancy",
      "Source IDs": "S056 S057",
      "id": "R10-PAT009",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 9,
        "sourceIds": [
          "S056",
          "S057"
        ],
        "raw": {
          "Pattern": "Containerized remote service",
          "Location": "Container Apps/ECS/Kubernetes",
          "Transport": "Streamable HTTP",
          "Tenancy": "Single or multi-tenant",
          "State model": "Application-defined",
          "Identity model": "OAuth/IAM/managed identity",
          "Good fit": "General production server",
          "Principal risks": "Patch pipeline, autoscaling, egress and tenancy",
          "Source IDs": "S056 S057"
        }
      }
    },
    {
      "Pattern": "Managed provider server",
      "Location": "Vendor/cloud service",
      "Transport": "Remote HTTP",
      "Tenancy": "Many customers or projects",
      "State model": "Provider-managed",
      "Identity model": "Provider IAM/OAuth",
      "Good fit": "Zero-install access to managed products",
      "Principal risks": "Vendor lock-in, capability limits, service availability",
      "Source IDs": "S058 S059 S060 S061",
      "id": "R10-PAT010",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 10,
        "sourceIds": [
          "S058",
          "S059",
          "S060",
          "S061"
        ],
        "raw": {
          "Pattern": "Managed provider server",
          "Location": "Vendor/cloud service",
          "Transport": "Remote HTTP",
          "Tenancy": "Many customers or projects",
          "State model": "Provider-managed",
          "Identity model": "Provider IAM/OAuth",
          "Good fit": "Zero-install access to managed products",
          "Principal risks": "Vendor lock-in, capability limits, service availability",
          "Source IDs": "S058 S059 S060 S061"
        }
      }
    },
    {
      "Pattern": "Hybrid host configuration",
      "Location": "User host plus remote services",
      "Transport": "stdio + Streamable HTTP",
      "Tenancy": "Mixed",
      "State model": "Local and remote state",
      "Identity model": "Separate identities per server",
      "Good fit": "Local machine tools plus SaaS/enterprise systems",
      "Principal risks": "Identity fragmentation and cross-server prompt injection",
      "Source IDs": "S006 S039 S042",
      "id": "R10-PAT011",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 11,
        "sourceIds": [
          "S006",
          "S039",
          "S042"
        ],
        "raw": {
          "Pattern": "Hybrid host configuration",
          "Location": "User host plus remote services",
          "Transport": "stdio + Streamable HTTP",
          "Tenancy": "Mixed",
          "State model": "Local and remote state",
          "Identity model": "Separate identities per server",
          "Good fit": "Local machine tools plus SaaS/enterprise systems",
          "Principal risks": "Identity fragmentation and cross-server prompt injection",
          "Source IDs": "S006 S039 S042"
        }
      }
    },
    {
      "Pattern": "Secure-tunnel bridge",
      "Location": "Private/local HTTP behind outbound tunnel",
      "Transport": "Streamable HTTP through tunnel",
      "Tenancy": "Single user or private team",
      "State model": "Local/private service state",
      "Identity model": "Tunnel identity + MCP auth",
      "Good fit": "Cloud host reaches private endpoint without public inbound port",
      "Principal risks": "Tunnel compromise, local HTTP hardening, availability",
      "Source IDs": "S035 S050",
      "id": "R10-PAT012",
      "sourceIds": [
        "S121",
        "S057",
        "S132",
        "S131",
        "S133",
        "S134",
        "S475",
        "S191",
        "S006",
        "S005",
        "S192",
        "S004",
        "S193",
        "S111",
        "S112",
        "S207",
        "S208",
        "S210",
        "S212",
        "S238",
        "S233",
        "S245",
        "S243",
        "S147",
        "S109",
        "S196",
        "S485"
      ],
      "evidenceStatus": "curated-dataset-level-evidence; not an archive row-level citation mapping",
      "archive": {
        "namespace": "research/10/deployment_pattern_taxonomy.json",
        "row": 12,
        "sourceIds": [
          "S035",
          "S050"
        ],
        "raw": {
          "Pattern": "Secure-tunnel bridge",
          "Location": "Private/local HTTP behind outbound tunnel",
          "Transport": "Streamable HTTP through tunnel",
          "Tenancy": "Single user or private team",
          "State model": "Local/private service state",
          "Identity model": "Tunnel identity + MCP auth",
          "Good fit": "Cloud host reaches private endpoint without public inbound port",
          "Principal risks": "Tunnel compromise, local HTTP hardening, availability",
          "Source IDs": "S035 S050"
        }
      }
    }
  ]
}