Which transport is the server actually running?
Transport decides whether HTTP authentication, scopes, and host validation apply at all.
transport.typeWhy this matters
Every HTTP-layer defense in this audit — authentication, scopes, host validation — exists only when the server listens over streamable_http. Over stdio none of it runs. v1.17.0 rejects an auth block placed under stdio instead of silently ignoring it, but an environment variable can still flip the transport out from under a locked-down file.
See the pinned v1.17.0 sourceMark Pass when
File and environment agree. The effective value is stdio or streamable_http. If it is stdio, checks 02–05 do not apply because no auth, scope, or Host check runs on a call.
Still true after a pass
Authentication still does not run over stdio. v1.17.0 prevents the misleading configuration by refusing to start when an auth block is placed under stdio.
Read the configured transport
Shows the file value and makes the documented stdio default explicit.
yq -r '.transport.type // "stdio"' 'config.yaml'Expected: Exactly one value: stdio or streamable_http.
Compare it with Step 1
Environment variables win when the file and running environment disagree.
Review the override evidence saved in Step 1. If TRANSPORT__TYPE appears, treat its value as effective. If Step 1 found no Apollo overrides, the file result is effective.
Expected: The file value and any APOLLO_MCP_TRANSPORT__TYPE override agree.
If this needs work
Make file and environment agree: streamable_http with a transport.auth block for anything network-reachable. If stdio is intended, confirm the process is reachable only by its local parent and record checks 02–05 as N/A.
Open Apollo guidanceRecord the result
Choose this last. Pass and Needs work require an interpreted output and evidence; N/A requires an interpreted output and rationale; Accepted exception requires every exception field above.