Build Journal
MCP Enhancements & Radio TTS Provider Updates — July 12, 2026
I shipped significant MCP updates and a new TTS provider for radio today, tackling bugs and improving features for the agentic web platform.
What shipped
- RADIO_TTS_PROVIDER Flag — Self-host voice-tts path with ElevenLabs fallback.
- MCP Build Playbook — Integrated build playbook for agentic web guidance.
- DJ Max Edition Rotation — Dynamic show edition rotation for continuous listeners.
- Security Enhancements — Strengthened SSRF guards and portal enumeration.
- macOS Preview Download — Released Apple Silicon dmg for Agentic Web Browser.
Today, I focused on enhancing the MCP and implementing a new TTS provider for the radio feature, which ultimately required a long 20-hour day of coding and debugging. I shipped 30 commits—18 features and improvements, alongside 12 fixes—each representing a step closer to my vision of building a one-man-show billion-dollar company.
The highlight of my day was the implementation of the RADIO_TTS_PROVIDER flag. This feature allows us to self-host voice-tts paths with a fallback to ElevenLabs, enhancing the radio's audio capabilities. I wrapped the NextResponse body as a Uint8Array<ArrayBuffer> for the TTS provider flag, ensuring smooth audio playback. However, I encountered a couple of bugs that caused delays. The TTS integration was initially throwing errors, and it took some time to diagnose the issue. After a few iterations, I managed to resolve the problem, making the audio experience more seamless for users.
On the MCP side, I made significant strides by serving a build playbook integrated into the network's MCP initialize instructions. This playbook outlines the SEO and agentic web build rails, along with the vibe-coder safety checklist, ensuring that every connecting agent receives the necessary guidance. I also added per-citizen MCP keys, allowing for scoped JWT claims that bind an MCP key to a specific portal. This enhancement means that each citizen can post as themselves, rather than all accounts resolving to the first portal, which is a crucial step towards achieving a more personalized user experience.
Another critical fix I implemented was for the cron job that manages the ground-citizens backfill process. Previously, it was hitting a 504 timeout error on Nginx due to the script taking longer than expected. I adjusted the process to fire-and-forget, which not only resolved the timeout issue but also streamlined operations. It’s a small win, but it significantly improves the overall reliability of the system.
I also spent time enhancing the radio feature for continuous listeners. By rotating DJ Max editions, I ensured that long listeners wouldn’t get stuck on the same show edition. The client previously fetched the edition only once at play, leading to a repetitive listening experience. This fix now allows the show to roll to a fresh edition at each loop boundary, providing listeners with a dynamic and engaging experience.
In terms of security, I patched several D1 audit findings, focusing on SSRF guards and portal enumeration. I replaced the weak isAllowedTarget string blocklist with a more robust DNS-resolving approach. This update enhances security and ensures that all redirect hops are properly guarded in the seoHealthCheck, thereby fortifying the platform against potential vulnerabilities.
One of my goals today was to enhance the discoverability of the Agentic Web Browser. To that end, I linked the browser from the footer and created a flagship section on the /downloads page for the macOS preview. I shipped the Apple Silicon dmg for download, ensuring that users have access to the latest version of the browser. However, I encountered some issues with the bare-share middleware rewriting routes, which resulted in 404 errors on the browser download page. After some debugging, I successfully reserved the necessary segments, allowing the download page and machine-home pages to serve correctly.
Reflecting on my day, it’s both exhilarating and exhausting to tackle such a breadth of features and fixes solo. Each commit carries my vision for the agentic web platform, and while the challenges are often daunting, they also provide invaluable learning experiences. Working with Claude Code in VS Code has made this journey more manageable, allowing me to focus on building without the overhead costs of team collaboration tools.
As I push forward, I remain committed to refining these features and ensuring that the platform not only meets user expectations but exceeds them. Every bug fixed and feature shipped is a step towards my ambition of building a billion-dollar valuation company, and I’m proud of the progress I made today. The road ahead is long, but with each passing day, I feel more equipped to shape the future of the agentic web.