Topic
6 articles on Security, written from production systems rather than documentation.
Normal testing asks whether the system works for people trying to use it. Adversarial testing asks what happens when somebody is trying to make it fail.
Stdio is the default and it quietly decides your deployment model. The transport question is really a question about process lifetime and blast radius.
Moderating what users send is the familiar half. Moderating what your own product says, in your name, is the half that carries the liability.
Prompts, traces, embeddings and evaluation sets all quietly become copies of user data, and most of them were never on anybody's data map.
Instructions and data arrive in the same channel, so the model cannot tell them apart. No wording fixes that, because it is a property of the design.
An MCP server turns an internal API into something a model calls on its own initiative. The threat model changes, and the existing auth boundary rarely fits.
Whether it needs designing from scratch or rescuing from its own success, tell me what you’re building and I’ll tell you how I’d architect it.
Open to remote and hybrid work worldwide