Kevlar = MCP Firewall for LLM's Ablation-Tool released Kevlar, an open-source proxy firewall for the Model Context Protocol (MCP) that sits between an LLM client and MCP servers to block tool-poisoning and prompt-injection attacks. Kevlar strips every tool `description` field to an empty string on `tools/list` responses, scans `tools/call` results against roughly 60 injection indicators sourced from published prompt-injection research, blocks outbound calls carrying credentials, and in strict mode locks the tool registry after the initial handshake so servers cannot inject new tools mid-session. The tool requires Python 3.10+ and runs on Linux and macOS only, with strict, lenient and audit modes whose reject thresholds are scores of 40, 80 and never-block respectively. Kevlar is a proxy firewall for Model Context Protocol LLM KEVLAR MCP It sits between you and everyone else MCP servers control their own tools. Those tools good or bad go into your LLM blindly, due to trust. Any MCP server can exploit this to redirect the model, pull credentials, or add any tools they want. The MCP spec does not prevent any of this. You do not control what an MCP server puts in its messages. TL;DR Kevlar sits between client and server and does four things: 1. Strips all tool descriptions before they reach the LLM. No exceptions. 2. Scans tool call responses for injection payloads and either redacts matched spans or blocks the response entirely. 3. Blocks outbound calls carrying credentials in their arguments, even if the LLM has already been compromised. 4. Locks the tool registry after the initial handshake so the server cannot inject new tools mid-session. CDR on tools/list Kevlar strips every description field to "" unconditionally on every tools/list response, before the message reaches the client. The LLM sees name and inputSchema only. inputSchema is rebuilt from an allowlist: prose fields like description , title , examples , and $comment are stripped there too, and enum values, property keys, $ref targets, and type values are validated against the MCP spec. Score 0 on this pass cannot be achieved by adding description text back, because description text is never forwarded regardless of score. Analysis on tools/call responses Tool call results cannot be stripped without breaking functionality. Kevlar scans them against ~60 indicators sourced from published prompt injection research. Responses scoring above the mode threshold are quarantined matched spans replaced with KEVLAR: