proxy_get_session_handshakes
Retrieve TLS handshake details including JA3/JA4/JA3S fingerprints for session traffic analysis in proxy-mcp server.
Instructions
Summarize TLS handshake/fingerprint availability (JA3/JA4/JA3S) for session exchanges.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID | |
| limit | No | ||
| offset | No | ||
| sort | No | desc | |
| hostname_contains | No | Filter by hostname substring | |
| url_contains | No | Filter by URL substring |
Implementation Reference
- src/tools/sessions.ts:178-205 (handler)The handler for the 'proxy_get_session_handshakes' tool, which wraps the proxyManager.getSessionHandshakes function.
server.tool( "proxy_get_session_handshakes", "Summarize TLS handshake/fingerprint availability (JA3/JA4/JA3S) for session exchanges.", { session_id: z.string().describe("Session ID"), limit: z.number().optional().default(200), offset: z.number().optional().default(0), sort: z.enum(["asc", "desc"]).optional().default("desc"), hostname_contains: z.string().optional().describe("Filter by hostname substring"), url_contains: z.string().optional().describe("Filter by URL substring"), }, async ({ session_id, limit, offset, sort, hostname_contains, url_contains }) => { try { const report = await proxyManager.getSessionHandshakes(session_id, { limit, offset, sort, hostnameContains: hostname_contains, urlContains: url_contains, }); return { content: [{ type: "text", text: truncateResult({ status: "success", ...report }) }], }; } catch (e) { return { content: [{ type: "text", text: JSON.stringify({ status: "error", error: toError(e) }) }] }; } }, );