Undox: approval-gated data-broker opt-outs on TrueForge A developer built Undox, a TrueForge agent that automates data-broker opt-outs with approval-gated submissions, for the WeMakeDevs × TrueFoundry × Qodo agent-harness hackathon. The system uses a custom HTTP MCP server and durable session state, and was reviewed with Qodo's agentic review tool. People-search sites still republish names, addresses, phones, and dates of birth. Opting out is tedious, easy to mess up, and basically irreversible once you hit Submit. For the WeMakeDevs × TrueFoundry × Qodo agent-harness hackathon, I built Undox — a TrueForge agent that does the annoying work carefully, then stops until a person allows the exact payload. Live demo: undox.vercel.app https://undox.vercel.app/app?session=demo-test-2 Repo: github.com/manasdutta04/undox https://github.com/manasdutta04/undox Connect MCP paste-ready : undox.vercel.app/app/connect https://undox.vercel.app/app/connect Privacy products exist because this workflow is painful. An agent that “just submits” is worse than no agent. We needed a harness that: Chat summaries don’t count. Tool JSON and a dashboard do. Undox is a TrueForge orchestrator wired to a custom HTTP MCP server undox-tools : | TrueForge piece | How we use it | |---|---| MCP tools | find → run sandbox prepare → approval-gated submit opt out ; plus get session state / get exposure dashboard | Sandbox + skills | Broker prepare scripts prepare runtime: sandbox-script | Approval | Submit requires human Allow on the exact fields | Subagents | dynamicSubAgents + parallel tool fan-out fallback | Sessions | File store keyed by session id — survives TrueForge restart | Status UI | Next.js dashboard on Vercel; same store as MCP on Render | Demo brokers PeopleFind and Clearbook are fixtures no live CAPTCHA on stage . Spokeo uses real URL mapping; submit stays mock . The agent isn’t “one mock function + a chat UI.” Kill TrueForge, restart, reopen the same session id — statuses are still there. That’s the Double-O story: durable harness state, not a one-shot demo. Judges and you can walk the seeded session without cloning: Exposure → Brokers → Approval → Connect Session: demo-test-2 web/ /mcp undox-demo-public mock submits only Render free tier sleeps — first hit after idle can take ~a minute. Ping /healthz before a live demo. Every substantive change shipped as a PR with /agentic review . Qodo caught real issues — auth edges, stale UI after failed loads, CSS specificity bugs — and we fixed High/Medium before merge. CI also runs typecheck , test , and prove:heart on every PR. That mattered more than polish: the approval path and session store had to be trustworthy on camera. Built with TrueForge. Reviewed with Qodo. Submits stay mock on purpose. Thanks for reading — if you try the Connect paste, tell me what broke first. That’s usually the most useful review.