# Why I Built Statio

> A lot of what I build comes down to who gets through which door. MCP gave AI agents a master key. Statio is my attempt to give them a badge instead.

- Date: 2026-10-12
- Tags: statio, mcp, security, ai, founder
- Source: https://logicalbytes.dev/posts/building-statio/

---
Statio is live. It's an MCP gateway: it sits between your people and agents and the MCP servers they call, and it decides, per tool, who gets to call what. This post is the personal version of why it exists. The technical argument, with interactive demos you can poke at, is on the Statio blog: [Grant the tool, not the server](https://statio.dev/blog/grant-the-tool-not-the-server?utm_source=logicalbytes&utm_medium=referral&utm_campaign=launch-post).

## Doors, not buildings

I'm a software engineer and a lot of what I've built comes down to access. Risk scoring for businesses onboarding at Plaid. A ledger at SoLo Funds that records who moved which dollars. Most recently at Amazon, secure access to servers on isolated building networks. None of that work is glamorous but building secure systems never has been. It's nitty gritty work that isn't as shiny, I call it the plumbing for a company. With AI barreling into the world, if you want it or not, I figured that it would be a good opportunity to build some plumbing that other people could use.

## MCPs showed up

The first time I wired an agent up to a real MCP server, I noticed the config file. It had a GitHub token in it, and that or it was taking the credentials right off my laptop and using my CLI. Plain text, sitting in a JSON file on my laptop, scoped to whatever that token could do. The agent could do anything that token could do, and so could anyone who copied the file. 

That's the default shape of MCP access today. You connect to a server, and you get every tool on it. The GitHub server puts `merge_pull_request` next to `list_issues`, so a bot you set up to sort issues can also merge to main. The usual fix is to split the server: a read-only copy for the bots, a write copy for the people who need it, one per environment. The problem is without a permissions layer you end up having to build multiple copies of the same server just to serve different audiences, so instead of re-writing the server and the permissions each time, that's where I came up with the idea for Statio. 

```chart
type: bars
title: 4 roles, 2 environments, 25 people
series: Split servers, One server with per-tool grants
Servers to deploy and patch: 8, 2
Keys to rotate: 8, 2
Access entries to keep in sync: 50, 25
note: Same defaults as the calculator in the Statio post. Move the sliders there to try your own numbers.
```

Currently the split is another deployment, another credential, another place for someone's access to drift. That's the building-with-one-door-per-employee approach, and nobody runs a building that way.

## What Statio does instead

Statio puts one checkpoint in front of all of it. People sign in with SSO. Agents get their own identity instead of borrowing a person's key. Grants are per tool, so the triage bot can call `list_issues` and only your release engineers can call `merge_pull_request`, on the same server. Every call goes through the same path: identity, grant check, argument checks, then the call, then the response gets scanned on the way out. If an agent goes sideways you suspend the agent, and the person who set it up keeps working.

The part I care about most is what happens when something is already wrong. A stolen laptop shouldn't hand over a pile of long-lived API keys. A compromised server shouldn't be able to reach whatever it likes on the network. A bad release with a critical CVE shouldn't get promoted. I built Statio assuming each of those will happen to someone eventually, because in my day job, they do. My joke about security at this point is, "Security was getting boring so we invested AI"

## Why I built it myself

In 2019 I wanted to be able to talk to my data so I started down that path, I was an early beta tester for Chat GPT and I have been an avid AI customer for a long time. I was building my version of "talk to your data" for a long time but pivoted a few times and here we are. When I was looking at the security model most gateways I found mostly made the decision at the server: you're allowed to talk to this server, or you're not. Some then have since moved toward per-tool controls, which I think is the right direction and good for everyone. I wanted that to be the starting point instead of an add-on, and I wanted the identity side (people and agents as separate, suspendable things) built in from day one.

I also had most of the pieces lying around. [Pilum](/posts/pilum-road-to-production) handles deployment and orchestration of MCPs. [mcp-gen](/posts/mcp-token-problem) came out of the token problem I wrote about in June. The CI work in [CI/CD Optimizations, Part 1](/posts/ci-critical-path) was on Statio's monorepo. I also had a lot of my own plumbing built in my own internal plumbing called platform-core. So creating this application is my first published software that I built myself and am putting out into the world. I will have more coming but this is also something I use every day and I think it's really cool and easy to work with. 

## What happens to this blog

Nothing changes here. Logical Bytes stays the place for projects, build logs, and whatever else I'm working through. I need to write more articles, I have had a backlog going while pushing this over the finish line. The MCP and security writing moves to the [Statio blog](https://statio.dev/blog?utm_source=logicalbytes&utm_medium=referral&utm_campaign=launch-post), where the posts can have live demos built into the page. When something here touches Statio, I'll link across, and the other way around.

## If you want to try it

There's a free tier, and setup is a few minutes if you already have an MCP server. If you run MCP for a team and the split-server math above looks familiar, I'd like to hear how you're handling it today. Reply on X or reach out through the site, and I'll read it. If I am missing an MCP server you want just ping me and I'll get it added to the catalog! I would be more than happy to hear from any of your experiences with this.

[Statio](https://statio.dev?utm_source=logicalbytes&utm_medium=referral&utm_campaign=launch-post)