The MCP checklist
MCP turned every SaaS tool into something an AI agent can call, and most of it arrived without a ticket. Two surfaces decide how that goes: the servers already running on laptops, which no identity provider or network log will ever name, and the gateway between an agent and the systems you care about.
Work down the list. Each control you confirm takes its weight off the exposure score. Nothing is sent anywhere, and your progress stays in this browser.
- 33
- controls
- 3
- surfaces
- weighted 0 to 100
- vendor neutral
Discover what is already running
0 / 10Most MCP servers are local processes a desktop AI client starts from a config file in a home directory. They hold long lived credentials, they are not sandboxed, and nothing in an identity provider, a CASB or a network log will ever name one.
Gate what the agent may actually do
0 / 12A gateway earns its place by what it refuses. These are the gates that hold when an agent is confused, when a token is replayed, and when a tool somebody disabled this morning is still registered on an open session.
Prove it, and say what you cannot prove
0 / 11The part that decides whether any of this survives an audit, a leaver, or a Monday morning. It includes the limits worth stating out loud, because a control that quietly overclaims is worse than one you know you are missing.
Where the weights come from
The discovery weights answer the three questions a local MCP server actually turns on: where the credential is stored, what the process can reach under the user's account since a local server is not sandboxed, and whether the package is pinned and attributable. The OWASP MCP Top 10 supplies the rest. It is an Incubator document, so it is treated as provisional rather than settled.
The gateway controls are taken from running one: audience bound tokens, consent per user and per server, write grants that name an approver, and a tool inventory that doubles as the permission surface. Several of them exist because the obvious version was wrong first.
Every control here is verifiable without Lutril. We automate the parts that do not survive a spreadsheet: a read-only agent that finds local servers across macOS, Linux and Windows, drift detection on definitions you already approved, and a gateway that holds these gates on every call.
Questions about the checklist
How is the exposure score calculated?
Each control carries a weight between 10 and 35 points, set by how much damage the gap behind it allows. The score is the share of unconfirmed weight, expressed from 0 to 100, so it starts at 100 and falls as you confirm controls. Confirming every critical control alone takes it to 51.
Why does the checklist cover laptops and not just the gateway?
Because most MCP servers never reach a gateway. They are stdio processes launched by Cursor, Claude Desktop or VS Code from a config file in a home directory, holding a long lived token, with no outbound connection for a network tool to see. A gateway governs what you route through it, and nothing else.
Do I need a product to work through it?
No. Every control is a statement you can verify by reading a config file, a token claim or a log line. A scored spreadsheet gets a team through it once. What a spreadsheet cannot do is notice when an approved definition changes next month, which is the single highest weighted control on the list.
Is my progress sent anywhere?
No. Ticking a control writes to this browser's local storage and nowhere else. There is no account, no form and no tracking of which controls you confirmed. Copy open items puts the remaining controls on your clipboard as plain text so you can paste them into your own tracker.
What counts as confirming a control?
That you have checked the current state and it holds, not that it is on a roadmap. Several controls are about honesty rather than configuration: attribution shown as inferred, a partial scan retiring nothing, a scoring version on every row. Those are worth confirming because the alternative is a report that quietly overclaims.