Writing
42 posts, mostly about building MCP servers that hold up in production, with detours into Go tooling, multi-agent patterns, HIPAA delivery, and telescope design.
- Posts
- 42
- First
- 2026-03-15
- Latest
- 2026-10-06
Filter
2026
42 posts 10-06 Vibe coding security checklist: 100 checks before you launch Check the security, privacy, billing and legal gaps in an AI-built app, with 100 practical checks and a prompt for your coding agent. Everything else 10-04 The Missing Edge: Connecting Agent Memory to Code Scry can recall why a project changed and separately map the repository that implements it. The next step is a native path from remembered intent to the exact code, schema, and runtime evidence it affected. Scry 10-04 Graph-First Software Exploration Most coding agents enter a repository by listing files and searching likely names. Scry gives them a structural report first, then uses targeted paths to decide which source files are worth reading. Scry 10-03 A Multi-Agent Task Board Is Also a Knowledge Graph Tasks, dependencies, interface contracts, claims, reviews, and verdicts describe how autonomous work happened. Scry rooms keep that structure instead of reducing a fleet run to a chat transcript. Scry 10-03 One Daemon, 37 Tools, Seven Knowledge Domains Scry began as four separate agent tools with almost identical infrastructure. Folding them into one binary removed duplicated daemons and made cross-domain graph questions possible. Scry 10-02 Shared Memory, Local Code I wanted every agent and machine to remember the same projects without copying every repository index to a central server. Scry shares one memory authority and keeps code intelligence beside the code. Scry 09-29 Provenance Matters More Than Perfect Recall Agent memory will get facts wrong. Scry keeps the session, commit, schema, or runtime observation behind every useful answer so an agent can verify it before acting. Scry 09-25 What Can a Knowledge Graph Tell You That Grep Can't? Grep finds matching text. A project graph can connect a failing endpoint to its handler, database table, commit history, coverage, and owner without making the agent reconstruct every relationship from files. Scry 09-22 Your Agent's Memory Should Be Temporal Projects change, but most agent memory stores facts as if they were permanent. Scry keeps the old state, marks when it stopped being current, and can reconstruct what was true during an earlier incident. Scry 09-18 From Disposable Agent Sessions to Durable Knowledge My Claude and Codex transcripts held months of project history, but almost none of it survived into the next session. Scry turns those logs into compact episodes and queryable facts. Scry 09-15 Why My Knowledge Graph Has Two Halves Scry keeps parsed repository facts separate from inferred memories. The split makes trust, storage, freshness, and failure much easier to reason about. Scry 09-11 The Six Kinds of Knowledge a Coding Agent Needs Source code is only one view of a running system. Useful coding agents also need history, data shape, runtime behavior, test evidence, and the decisions that explain why the system looks this way. Scry 09-08 Building a project-brief planner with WebMCP I added WebMCP to a small planner on this site. A visitor and an agent can prepare the same project brief, with changes visible in the form and sharing left to the visitor. WebMCP 09-08 When I'd use WebMCP or an MCP server The first question is where the work should happen. A shared browser workflow and a background service integration need different things from an agent. WebMCP 08-31 I Built a Knowledge Graph for Everything I Work On Every codebase, debugging session, agent run, and architecture decision leaves useful knowledge behind. Scry turns that trail into a graph that the next agent can query instead of rediscovering it. Scry 07-27 The Best MCP Servers for Developers in 2026: A Curated Guide There are hundreds of MCP servers now. Most aren't worth your time. These are the ones I use, have built, or would recommend to another developer who ships code daily. MCP servers 07-23 Building an MCP Server for Git Intelligence: How I Built Lore Git data is rich but unstructured. Lore is an MCP server that pre-indexes blame, history, and co-change patterns into BadgerDB and serves them as seven focused tools, giving agents structured git intelligence instead of raw CLI output. MCP servers 07-19 Setting Up MCP Servers with Claude Desktop and Claude Code A practical walkthrough for configuring MCP servers in Claude Desktop and Claude Code: where the config lives, what the JSON looks like, and how to debug when things don't connect. MCP servers 07-15 Building an MCP Server for Code Intelligence: How I Built Scry The protocol layer of an MCP server is trivial. The hard part is designing tool interfaces that agents use well: narrow tools, precise descriptions, structured returns, and sub-10ms latency that changes agent behavior. MCP servers 07-09 Deploying MCP Servers to Production: Hosting, Docker, and Transport Decisions Most MCP servers run on a developer's laptop. When you need a team to share one, everything changes: transport, auth, lifecycle, and monitoring all become real problems. MCP servers 07-05 Building an MCP Server for Database Schema: How I Built Tome Designing MCP tools that give AI agents real-time database schema awareness, instead of making them read migration files and guess. MCP servers 06-30 MCP Server Security: OAuth 2.1, Authentication, and Authorization Patterns MCP servers inherit the full permissions of their host process, which makes remote deployments a different threat model entirely. Here's how the spec handles auth with OAuth 2.1 and which authorization patterns hold up in practice. MCP servers 06-24 MCP Tools vs Resources vs Prompts: When to Use Which Primitive Most MCP servers expose everything as tools. The protocol has three primitives for a reason, and here's when each one is the right choice, with Go examples from servers I run in production. MCP servers 06-17 MCP Server Transports: Stdio vs SSE vs Streamable HTTP in Practice The first architecture decision when building an MCP server is which transport to use. I've shipped servers on all three, and here's what matters when choosing between stdio, SSE, and Streamable HTTP. MCP servers 06-11 MCP Architecture Explained: Tools, Resources, Prompts, and How They Fit Together The MCP spec is dense but well-designed. This post breaks down the architecture most developers skip: capability negotiation, the primitive lifecycle, server-initiated notifications, and how clients decide what to ask your server for. MCP servers 06-02 Navigating BAAs for HIPAA Compliance A BAA is not a form you sign at the start of a healthcare build. It is the middle of a dependency graph: insurance, authority, internal controls, and subcontractor BAAs all have to line up first. Everything else 05-10 Expo MCP Server: Let AI Agents See and Control Your React Native App AI agents can write mobile code but can't see the screen, check navigation state, or observe network traffic. I built an MCP server and Expo dev plugin that fixes that, including discovering that iOS Simulator has no tap API and working around it with AppleScript CGEvents. MCP servers 04-26 I Built Helm Instead of Buying It. I'm Not Open-Sourcing It Either. Someone sells a terminal workspace tool for around $100/yr. I built my own in an afternoon. I'm not putting it on GitHub, and that decision is the part of the build/buy story most people skip. Everything else 04-26 Testing and Debugging MCP Servers: Inspector, Integration Tests, and CI Patterns The MCP SDKs show you how to build servers but say nothing about testing them. After shipping four servers and writing tests for all of them, here are the patterns that hold up. MCP servers 04-20 What Are MCP Servers? The Developer's Guide to the Model Context Protocol MCP is how AI agents talk to the outside world. This is the working version: what the protocol does, how the pieces fit together, and what I ran into building and running MCP servers in production. MCP servers 04-18 Building MCP Servers in Go: The Complete Guide Every existing MCP tutorial gets you to a hello-world stdio server and stops. This is the rest of it: SDK choice, transports, testing, production patterns, and what I learned shipping four MCP servers that handle real workloads. MCP servers 04-12 The Context Layer: Four Daemons That Replace Half of Claude Code's Tool Calls Claude Code spends most of its time finding things, not doing things. I built four Go daemons that pre-compute code intelligence, database schemas, git history, and HTTP traffic, then serve it all in single-digit milliseconds over MCP. MCP servers 04-10 Building Scry: An Agent-First Code Index That Replaces Read and Grep Claude Code spends 30-50% of every session just finding code. I built a local daemon that pre-computes a semantic index of every repo and answers symbol queries in single-digit milliseconds. Go tooling 04-10 Trawl: A Free, Local Firecrawl Alternative for Web Scraping A single Go binary for tiered web scraping, BFS crawling, schema extraction, and clean markdown. No API key or hosted-service subscription, polite by default, with opt-in stealth tiers for the sites that fight back. Go tooling 04-06 11 Targets Through a 3D-Printed Telescope Every image in this gallery was shot through a telescope I designed in Fusion 360 and printed in PET-CF. Here's what I pointed it at, what I learned, and what I'd reshoot. Telescopes 04-01 Building a CRM Where the Agent Is the Primary User We built internal agency tooling where the AI agent is the primary user, not the human. What agentic-first looks like when you're managing client work. MCP servers 03-28 Designing a 3D Printed Telescope for Astrophotography I design and 3D print Newtonian astrographs for deep-sky astrophotography. A $60 Chinese mirror and a roll of PET-CF filament can produce images of the Horsehead Nebula. This is how. Telescopes 03-25 Building Cockpit: A Terminal Dashboard for the Multi-Project Developer I juggle a dozen projects across tmux sessions, git repos, and Obsidian tasks. Cockpit is a single TUI that shows me what's hot right now without leaving the terminal. Go tooling 03-20 Forking gstack to Close the Plan-to-Execution Gap Gary Tan's gstack gives Claude Code structured planning skills. Orch gives it parallel execution. I forked gstack to bridge the two, so a reviewed plan becomes running agents in one step. Multi-agent 03-15 What AI Changed About Running Engineering at an Agency Running engineering at a small agency means shipping 30+ client projects with a tiny team. AI sped things up, but more importantly it changed which decisions matter. Everything else 03-15 Building Orch: A CLI Orchestrator for Multi-Agent Claude Code How I built a thin coordination layer that lets multiple Claude Code instances work as a team, and the design decisions that made it work. Multi-agent 03-15 Multi-Agent Patterns That Held Up, and the Ones That Didn't After months of running coordinated AI agents, here are the patterns that hold up and the ones that fall apart. Multi-agent
Nothing in that category yet.