function registryGatewayFigure(host) { ensureStyles(); var parts = []; function box(cls, x, y, w, h, title, sub, titleCls, subCls) { parts.push(''); parts.push('' + title + ''); if (sub) { parts.push('' + sub + ''); } } function arrow(cls, marker, x1, y1, x2, y2) { parts.push(''); } function label(x, y, text) { parts.push('' + text + ''); } box('l32b', 30, 20, 120, 44, 'Publisher', 'proves owner'); box('l32b', 200, 20, 150, 44, 'Registry', 'server.json'); box('l32b', 420, 20, 120, 44, 'Aggregator', 'polls hourly'); arrow('l32a', 'l32arrow', 150, 42, 200, 42); arrow('l32a', 'l32arrow', 350, 42, 420, 42); label(148, 14, 'verified'); label(358, 14, 'polled'); label(30, 78, 'public listings only; the registry is a preview'); box('l32b', 30, 104, 110, 44, 'Client', 'the caller'); box('l32b', 190, 104, 170, 44, 'Gateway', 'header = body?'); box('l32b', 410, 104, 120, 44, 'Backend', 'Tier 1 SDK'); box('l32bx', 190, 180, 170, 40, '-32020', 'header != body'); arrow('l32a', 'l32arrow', 140, 126, 190, 126); arrow('l32am', 'l32arrowm', 360, 126, 410, 126); arrow('l32a', 'l32arrow', 275, 148, 275, 180); label(370, 118, 'match'); label(283, 172, 'mismatch'); label(30, 246, 'SDK conformance tiers, checked continuously'); box('l32tb', 30, 256, 160, 46, 'Tier 1', '100% conformance', 'l32tt', 'l32ts'); box('l32tb', 210, 256, 160, 46, 'Tier 2', '80% conformance', 'l32tt', 'l32ts'); box('l32tb', 390, 256, 160, 46, 'Tier 3', 'experimental', 'l32tt', 'l32ts'); var shell = document.createElement('div'); shell.className = 'mf-shell'; shell.innerHTML = [ '
Finding, Routing To, and Trusting a Server registry admission, gateway header checks, and SDK tiers as three separate gates
', '
', '', '', '', '', '', '', parts.join(''), '', '
', '
A verified namespace gets a server.json into the registry, where only an aggregator reads it on its own schedule. That is unrelated to whether any one request later reaches a backend: a gateway checks Mcp-Method and Mcp-Name against the request body first, routes a match to the backend, and rejects a mismatch as -32020 before it goes further. An SDK tier badge is a third, independent fact, re-measured continuously rather than granted once.
' ].join(''); host.appendChild(shell); } // register as: mcpa-32-registry-flow