Real-server MCP proof; no unit tests or mocked server responses. For each commit, install dependencies with vp i in its separate worktree. Start the unmodified application from source: T3CODE_DEV_SEED=0 node apps/server/src/bin.ts serve --host 127.0.0.1 --port PORT --base-dir EMPTY_HOME Run the same outside-client driver against each server: python3 drive.py --checkout CHECKOUT --home EMPTY_HOME --port PORT --side base-or-head --out OUTPUT_DIRECTORY The driver obtains pairing codes through the real CLI, registers a public OAuth client, exchanges a PKCE authorization code, initializes MCP, lists tools, then directly calls all 29 thread-bound names and t3_project_list as a control, for auto and read-only. Credentials remain in memory and are omitted from the transcript. Some base calls with empty arguments fail schema validation; these are not claimed as handler executions. request_secret, send_to_user, preview_status, device_list, delegate_task and t3_worktree_status do reach their handlers on base and reject the outside caller. All 29 direct calls return tool-not-found on head. For the thread control, stop the server and configure a local synthetic ACP provider in EMPTY_HOME/userdata/settings.json: {"providerInstances":{"mcpProof":{"driver":"acpRegistry","displayName":"Synthetic MCP probe","config":{"source":"local","commandPath":"/absolute/path/to/node","commandArgs":["/absolute/path/to/thread-probe.mjs","/absolute/path/to/thread-transcript.json"]}}}} Restart the same server, then run: node apps/server/src/bin.ts project add CHECKOUT --title 'MCP proof' --base-dir EMPTY_HOME node apps/server/src/bin.ts thread start CHECKOUT 'Run synthetic MCP probe' --provider mcpProof --model probe --wait --json --base-dir EMPTY_HOME The synthetic ACP provider receives a real thread MCP credential from the application. It uses that credential for MCP initialize, tools/list, and tools/call send_to_user. Both commits advertise 71 tools and successfully send the synthetic message. No implementation files are modified. No paid model or external account is used. PNG files are formatted captures of the actual HTTP response transcripts, not web UI screenshots. Both use the same 1360x2100 canvas and font. Full responses and lists are in the JSON transcripts. The scripts and transcripts contain synthetic data only.