Show HN: An MCP Gateway to block the lethal trifecta
30 76SlashDolphin 14 9/12/2025, 3:22:00 PM github.com ↗
Hi there, me and some friends were inspired by Simon Willison's recent post on the "lethal trifecta" (https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/ ) and started building a gateway to defend against it.
The idea: instead of connecting an LLM directly to multiple MCP servers, you point them all through a Gateway.
The Gateway:
- Connects to each MCP server and inspects their tools + requirements
- Classifies tools along the "trifecta" axes (private data access, untrusted content, external comms)
- When all three conditions are about to align in a single session, the Gateway blocks the last step and tells the LLM to show a warning instead.
That way, before anything dangerous can happen, the user is nudged to review the situation in a web dashboard.
We'd love for the HN community to try it out: https://github.com/Edison-Watch/open-edison
Any feedback very welcome - we'll be around in the thread to answer questions.
1. The "lethal trifecta" is also the "productive trifecta" - people want to be able to use LLMs to operate in this space since that's where much of the value is; using private / proprietary data to interact with (do I/O with) the real world.
2. I worry that there will soon be (if not already) a fourth leg to the stool - latent malicious training within the LLMs themselves. I know the AI labs are working on this, but trying to ferret out Manchurian Candidates embedded within LLMs may very well be the greatest security challenge of the next few decades.
Regarding the second point, that is a very interesting topic that we haven't thought about. It would seem that our approach would work for this usecase too, though. Currently, we're defending against the LLM being gullible but gullible and actively malicious are not properties that are too different. It's definitely a topic on our radar now, thanks for bringing it up!
But, it just seems to me that some of the 'vulnerabilities' are baked in from the beginning, e.g. control and data being in the same channel AFAIK isn't solvable. How is it possible to address that at all? Sure we can do input validation, sanitization, restrict access, etc. ,etc., and a host of other things but at the end of the day isn't it still non-zero chance that something is exploited and we're just playing whack-a-mole? Not to mention I doubt everyone will define things like "private data" and "untrusted" the same. uBlock tells me when a link is on one of it's lists but I still click go ahead anyways.