Skip to content

Run it behind a Cloudflare Portal

Put the server behind a Cloudflare MCP Server Portal and require it with Gateway policy, with the server properties that make this simpler and the open questions.

Updated 02 Nov 2026Checked against mcp-server@1725a04

For administrators running Cloudflare Zero Trust who want one managed endpoint in front of MCP servers.

Cloudflare controls

Control Gives you Configured in
MCP Server Portal One endpoint in front of upstream servers, with Access identity, a curated tool catalogue and logs Zero Trust dashboard
Gateway MCP detection Flags inspected requests carrying MCP-Protocol-Version, so a policy can allow or block MCP Gateway, with TLS inspection
Portal-only enforcement Tells Portal traffic from direct connections Gateway network and HTTP policies
Logpush Exports Portal tool activity Zero Trust logs

Cloudflare’s published example for blocking direct MCP traffic, with action Block:

experimental.is_mcp == true and not traffic.onramp in ("mcp_portal")

What the server already does

Property Detail
Read-only tools Every VDB tool and vdb_request declares readOnlyHint: true. Only vulnetix_auth_start and vulnetix_auth_poll are not read-only, and both are destructiveHint: false.
Routing headers Mcp-Method and Mcp-Name are on every request and must match the body, so a WAF can act on tools/call for a given tool without parsing JSON
Stable catalogue tools/list is the same for every caller and cached 300 seconds
Public discovery GET /mcp/server-card returns the endpoint and required header without a connection
No stored state Nothing per user to keep in step

Curating the catalogue

Goal Expose
Data only, no AI Everything; the five AI tools still return VDB data, and callers can pass ai: false
No sign-in from chat Everything except vulnetix_auth_start and vulnetix_auth_poll

Open questions

Question Why it matters
How does the Portal pass Authorization? The server accepts only a per-user credential in that header and never supplies one
Will the Portal inject one shared credential? vdb-api meters quota per organisation. One shared credential puts every user in one bucket.
Can your clients be TLS-inspected? Gateway MCP detection depends on it; clients that pin certificates are not inspected
Edit this pageSources: mcp-server/src/tools/, mcp-server/src/mcp/server.ts, mcp-server/src/discovery/server-card.ts
esc
↑ ↓ move↵ openSearches in your browser. A key like autonomy.max or a code like threshold_required jumps straight to it.