The problem
An MCP client connects to whatever it is pointed at.
MCP made tool access easy. It did not make the operator behind a tool knowable. A client is handed a URL, a transport and a token. Nothing in the protocol says which organisation runs that endpoint, what they were authorised to do, or whether whatever was true at integration time is still true this morning.
- An endpoint is not an operator.
- A URL tells an agent where to send bytes. It does not say which legal entity stands behind them, in which jurisdiction, or whether anyone has ever said so on the record.
- Configuration is copied, not checked.
- Server entries travel through READMEs, gists, screenshots, forum answers and agent-generated config files. Provenance does not travel with them, and by the third copy nobody remembers where the first one came from.
- Authority gets assumed from access.
- A token that works proves a credential was accepted. It does not record what the holder was authorised to do, on whose behalf, or whether that authority is still in force.
- Evidence is private, so outsiders cannot use it.
- The operator's logs sit inside the operator's own systems. The people who most need them — a customer, their auditor, their insurer — are exactly the people who cannot read them.
- State is a moment, and moments expire.
- Whatever an approval was based on may not hold at the next call. Without a record that can be re-checked from outside, a change of state is something you find out about afterwards.
None of that is a flaw in MCP. MCP is a protocol for connecting to tools, and it does that well. It was never designed to answer who is on the other end — which is why that answer has to live somewhere else.