Four weeks before the SOC 2 audit window, an engineer is grepping through MCP server logs trying to reconstruct which tool calls reached the production database in March, and the logs rolled over in April. This is the scramble: evidence assembled the month before the audit from systems that were never designed to keep it. The alternative is evidence that accrued, correctly, the day each tool call happened. SOC 2 for MCP servers is mostly a choice between those two timelines.
An MCP server exposes tools to a model or agent. Some of those tools read and write real infrastructure: a query tool that hits Postgres, an ops tool that runs a command on a host. When a tool reaches a system in your SOC 2 scope, the access behind that tool call is in scope too, and it needs an audit trail that survives long enough to show an auditor.
Why the last-minute scramble fails the audit trail
The scramble fails for structural reasons, not effort reasons. MCP server logs are application logs: they tell you a tool was invoked, not who was behind it, what infrastructure it touched, or whether the access was authorized and scoped. They rotate on application schedules, not retention policies. And they live inside the same process that serves the tools, so a misbehaving server can lose or distort exactly the records you need. Reconstructing a SOC 2 audit trail from them is archaeology, and the auditor can tell.
The deeper problem is that the evidence was never separated from the thing being audited. SOC 2's monitoring criteria expect records that demonstrate the controls operated over the whole period. A record produced inside the MCP server, on the server's terms, does not demonstrate that. It demonstrates that the server says so.
Continuous evidence at the access boundary
The architectural requirement is that the audit trail accumulates continuously, at the access boundary, outside the MCP server. Every tool call that reaches infrastructure should cross a point that records who called, what they reached, whether it was approved, and what happened, and that point must not be the server itself. Then evidence is a byproduct of normal operation, not a project you run before the audit.
