{
  "title": "MCP Gateway Architecture Taxonomy",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-26",
  "protocolRevision": "MCP 2026-07-28",
  "sourcePackage": "research/11",
  "integrityNote": "All 84 listed archive payloads verify by SHA-256. Public datasets are a narrow, noindex selection; product rankings and unexecuted test results are not published.",
  "checkedAt": "2026-08-26",
  "indexing": "noindex, follow",
  "evidencePolicy": "Archive source IDs are mapped to the site-wide canonical evidence library; analytical rows disclose dataset-level evidence.",
  "analyticalTaxonomy": true,
  "count": 9,
  "records": [
    {
      "Type": "Protocol-aware reverse proxy",
      "Primary job": "Authenticate and forward MCP traffic to one server or equivalent pool",
      "Upstream role": "Appears as MCP server endpoint",
      "Downstream role": "Proxy",
      "Representative evidence": "Pomerium; NetScaler",
      "Key limitation": "May not aggregate catalogs or manage lifecycle",
      "id": "R11-TAX001",
      "sourceIds": [
        "S517",
        "S519",
        "S528"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 1,
        "packageSourceIds": [
          "S036",
          "S038",
          "S047"
        ],
        "raw": {
          "Type": "Protocol-aware reverse proxy",
          "Primary job": "Authenticate and forward MCP traffic to one server or equivalent pool",
          "Upstream role": "Appears as MCP server endpoint",
          "Downstream role": "Proxy",
          "Representative evidence": "Pomerium; NetScaler",
          "Key limitation": "May not aggregate catalogs or manage lifecycle"
        }
      }
    },
    {
      "Type": "Virtual-server / aggregation gateway",
      "Primary job": "Combine multiple downstream servers behind one logical endpoint",
      "Upstream role": "Virtual MCP server",
      "Downstream role": "Multiple MCP clients/proxies",
      "Representative evidence": "AWS AgentCore; Cloudflare portals; Docker",
      "Key limitation": "Name/URI collisions and large catalogs",
      "id": "R11-TAX002",
      "sourceIds": [
        "S476",
        "S512",
        "S527",
        "S537"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 2,
        "packageSourceIds": [
          "S024",
          "S031",
          "S046",
          "S066"
        ],
        "raw": {
          "Type": "Virtual-server / aggregation gateway",
          "Primary job": "Combine multiple downstream servers behind one logical endpoint",
          "Upstream role": "Virtual MCP server",
          "Downstream role": "Multiple MCP clients/proxies",
          "Representative evidence": "AWS AgentCore; Cloudflare portals; Docker",
          "Key limitation": "Name/URI collisions and large catalogs"
        }
      }
    },
    {
      "Type": "API-to-MCP conversion gateway",
      "Primary job": "Generate tools from existing APIs",
      "Upstream role": "MCP server",
      "Downstream role": "REST/API client",
      "Representative evidence": "Apigee; Tyk; WSO2; Zuplo",
      "Key limitation": "Generated schemas do not prove semantic safety",
      "id": "R11-TAX003",
      "sourceIds": [
        "S515",
        "S524",
        "S525",
        "S529",
        "S541"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 3,
        "packageSourceIds": [
          "S034",
          "S043",
          "S044",
          "S048",
          "S071"
        ],
        "raw": {
          "Type": "API-to-MCP conversion gateway",
          "Primary job": "Generate tools from existing APIs",
          "Upstream role": "MCP server",
          "Downstream role": "REST/API client",
          "Representative evidence": "Apigee; Tyk; WSO2; Zuplo",
          "Key limitation": "Generated schemas do not prove semantic safety"
        }
      }
    },
    {
      "Type": "Identity and credential gateway",
      "Primary job": "Centralize auth, token exchange and upstream credentials",
      "Upstream role": "Protected resource / identity broker",
      "Downstream role": "OAuth client or service identity",
      "Representative evidence": "Pomerium; AWS",
      "Key limitation": "Credential concentration",
      "id": "R11-TAX004",
      "sourceIds": [
        "S509",
        "S517",
        "S518",
        "S530",
        "S531"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 4,
        "packageSourceIds": [
          "S028",
          "S036",
          "S037",
          "S049",
          "S050"
        ],
        "raw": {
          "Type": "Identity and credential gateway",
          "Primary job": "Centralize auth, token exchange and upstream credentials",
          "Upstream role": "Protected resource / identity broker",
          "Downstream role": "OAuth client or service identity",
          "Representative evidence": "Pomerium; AWS",
          "Key limitation": "Credential concentration"
        }
      }
    },
    {
      "Type": "Control-plane / lifecycle gateway",
      "Primary job": "Register, deploy, update and remove servers",
      "Upstream role": "Management API and portal",
      "Downstream role": "Workload manager",
      "Representative evidence": "Microsoft MCP Gateway",
      "Key limitation": "Control-plane compromise affects fleet",
      "id": "R11-TAX005",
      "sourceIds": [
        "S504",
        "S505",
        "S537"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 5,
        "packageSourceIds": [
          "S022",
          "S023",
          "S066"
        ],
        "raw": {
          "Type": "Control-plane / lifecycle gateway",
          "Primary job": "Register, deploy, update and remove servers",
          "Upstream role": "Management API and portal",
          "Downstream role": "Workload manager",
          "Representative evidence": "Microsoft MCP Gateway",
          "Key limitation": "Control-plane compromise affects fleet"
        }
      }
    },
    {
      "Type": "Portal and catalog gateway",
      "Primary job": "Curate approved servers and expose one discoverable endpoint",
      "Upstream role": "Portal endpoint",
      "Downstream role": "Catalog plus proxy",
      "Representative evidence": "Cloudflare portals; IBM ContextForge",
      "Key limitation": "Catalog approval is not call authorization",
      "id": "R11-TAX006",
      "sourceIds": [
        "S067",
        "S512",
        "S513",
        "S524",
        "S537"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 6,
        "packageSourceIds": [
          "S020",
          "S031",
          "S032",
          "S043",
          "S066"
        ],
        "raw": {
          "Type": "Portal and catalog gateway",
          "Primary job": "Curate approved servers and expose one discoverable endpoint",
          "Upstream role": "Portal endpoint",
          "Downstream role": "Catalog plus proxy",
          "Representative evidence": "Cloudflare portals; IBM ContextForge",
          "Key limitation": "Catalog approval is not call authorization"
        }
      }
    },
    {
      "Type": "Multi-protocol agent gateway",
      "Primary job": "Govern MCP, A2A and LLM traffic together",
      "Upstream role": "Several protocol endpoints",
      "Downstream role": "Several protocols/providers",
      "Representative evidence": "Solo agentgateway; IBM ContextForge",
      "Key limitation": "Can conflate model, agent and tool authority",
      "id": "R11-TAX007",
      "sourceIds": [
        "S522",
        "S536",
        "S537",
        "S542"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 7,
        "packageSourceIds": [
          "S041",
          "S065",
          "S066",
          "S072"
        ],
        "raw": {
          "Type": "Multi-protocol agent gateway",
          "Primary job": "Govern MCP, A2A and LLM traffic together",
          "Upstream role": "Several protocol endpoints",
          "Downstream role": "Several protocols/providers",
          "Representative evidence": "Solo agentgateway; IBM ContextForge",
          "Key limitation": "Can conflate model, agent and tool authority"
        }
      }
    },
    {
      "Type": "Local-to-remote bridge",
      "Primary job": "Expose local stdio/localhost service to remote host",
      "Upstream role": "Remote HTTP endpoint",
      "Downstream role": "Local stdio/HTTP client",
      "Representative evidence": "Pomerium tunnel; local bridge tools",
      "Key limitation": "Expands local trust boundary",
      "id": "R11-TAX008",
      "sourceIds": [
        "S517",
        "S527",
        "S539",
        "S540"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 8,
        "packageSourceIds": [
          "S036",
          "S046",
          "S069",
          "S070"
        ],
        "raw": {
          "Type": "Local-to-remote bridge",
          "Primary job": "Expose local stdio/localhost service to remote host",
          "Upstream role": "Remote HTTP endpoint",
          "Downstream role": "Local stdio/HTTP client",
          "Representative evidence": "Pomerium tunnel; local bridge tools",
          "Key limitation": "Expands local trust boundary"
        }
      }
    },
    {
      "Type": "Observability and debugging gateway",
      "Primary job": "Capture and inspect MCP messages",
      "Upstream role": "Proxy endpoint",
      "Downstream role": "Proxy client",
      "Representative evidence": "Fiberplane",
      "Key limitation": "Logs may contain secrets and data",
      "id": "R11-TAX009",
      "sourceIds": [
        "S532",
        "S534",
        "S535",
        "S544"
      ],
      "evidenceStatus": "editorial taxonomy supported by representative first-party product documentation; not a core MCP classification",
      "archive": {
        "namespace": "research/11/MCP_GATEWAY_TAXONOMY.json",
        "row": 9,
        "packageSourceIds": [
          "S056",
          "S058",
          "S061",
          "S074"
        ],
        "raw": {
          "Type": "Observability and debugging gateway",
          "Primary job": "Capture and inspect MCP messages",
          "Upstream role": "Proxy endpoint",
          "Downstream role": "Proxy client",
          "Representative evidence": "Fiberplane",
          "Key limitation": "Logs may contain secrets and data"
        }
      }
    }
  ]
}