proxy_check_fingerprint_runtime
Check Docker/Podman runtime readiness for TLS/HTTP2 fingerprint spoofing without sending network traffic.
Instructions
Check Docker/Podman runtime readiness for TLS/HTTP2 fingerprint spoofing without sending traffic.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/tls.ts:242-259 (handler)The tool registration and handler implementation for 'proxy_check_fingerprint_runtime' within the MCP server.
server.tool( "proxy_check_fingerprint_runtime", "Check Docker/Podman runtime readiness for TLS/HTTP2 fingerprint spoofing without sending traffic.", {}, async () => { try { const runtime = await checkSpoofRuntime(); return { content: [{ type: "text" as const, text: JSON.stringify(runtime), }], }; } catch (e) { return { content: [{ type: "text" as const, text: JSON.stringify({ status: "error", error: String(e) }) }] }; } }, ); - src/tls-spoof.ts:224-255 (helper)The 'checkSpoofRuntime' helper function, which probes for docker/podman and checks for container image readiness, used by the tool handler.
export async function checkSpoofRuntime(): Promise<FingerprintRuntimeCheck> { const runtimes = await Promise.all(["docker", "podman"].map((name) => probeRuntime(name))); const recommended = runtimes.find((r) => r.operational)?.name ?? null; const cached = _containerCli; const selected = cached ?? recommended; const cacheStale = !!cached && !runtimes.some((r) => r.name === cached && r.operational); const inspectRuntime = (!cacheStale ? selected : recommended) ?? null; let image: ImageInspectResult = { name: IMAGE_NAME, exists: false }; let container: ContainerInspectResult = { name: CONTAINER_NAME, exists: false, running: false }; if (inspectRuntime) { [image, container] = await Promise.all([ inspectImageByName(inspectRuntime, IMAGE_NAME), inspectContainerByName(inspectRuntime, CONTAINER_NAME), ]); } return { status: "success", ready: !!selected && runtimes.some((r) => r.name === selected && r.operational), runtime: { selected, recommended, cached, cacheStale }, inspectedWithRuntime: inspectRuntime, runtimes, image, container, }; } // ── Container lifecycle ── function getProjectRoot(): string { const thisFile = fileURLToPath(import.meta.url);