<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Jeff Hooton</title><description>Writing on MCP servers, AI agent tooling, Go developer tools, and 3D-printed telescopes for deep-sky astrophotography.</description><link>https://hooton.codes/</link><language>en-us</language><item><title>I Built a Knowledge Graph for Everything I Work On</title><link>https://hooton.codes/blog/scry-knowledge-graph-everything/</link><guid isPermaLink="true">https://hooton.codes/blog/scry-knowledge-graph-everything/</guid><description>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.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate><category>scry</category><category>knowledge-graphs</category><category>ai-agents</category><category>go</category><category>tooling</category></item><item><title>The Best MCP Servers for Developers in 2026: A Curated Guide</title><link>https://hooton.codes/blog/best-mcp-servers/</link><guid isPermaLink="true">https://hooton.codes/blog/best-mcp-servers/</guid><description>There are hundreds of MCP servers now. Most aren&apos;t worth your time. These are the ones I use, have built, or would recommend to another developer who ships code daily.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate><category>mcp</category><category>ai</category><category>tooling</category><category>agents</category><category>developer-tools</category></item><item><title>Building an MCP Server for Git Intelligence: How I Built Lore</title><link>https://hooton.codes/blog/mcp-server-git-intelligence-lore/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-server-git-intelligence-lore/</guid><description>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.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>tooling</category><category>ai</category><category>git</category></item><item><title>Setting Up MCP Servers with Claude Desktop and Claude Code</title><link>https://hooton.codes/blog/claude-mcp-setup/</link><guid isPermaLink="true">https://hooton.codes/blog/claude-mcp-setup/</guid><description>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&apos;t connect.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><category>mcp</category><category>claude-code</category><category>ai</category><category>tooling</category><category>tutorial</category></item><item><title>Building an MCP Server for Code Intelligence: How I Built Scry</title><link>https://hooton.codes/blog/mcp-server-code-intelligence-scry/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-server-code-intelligence-scry/</guid><description>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.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>tooling</category><category>ai</category><category>code-intelligence</category></item><item><title>Deploying MCP Servers to Production: Hosting, Docker, and Transport Decisions</title><link>https://hooton.codes/blog/mcp-server-deployment/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-server-deployment/</guid><description>Most MCP servers run on a developer&apos;s laptop. When you need a team to share one, everything changes: transport, auth, lifecycle, and monitoring all become real problems.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>tooling</category><category>ai</category><category>deployment</category></item><item><title>Building an MCP Server for Database Schema: How I Built Tome</title><link>https://hooton.codes/blog/mcp-server-database-schema-tome/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-server-database-schema-tome/</guid><description>Designing MCP tools that give AI agents real-time database schema awareness, instead of making them read migration files and guess.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>tooling</category><category>ai</category><category>databases</category></item><item><title>MCP Server Security: OAuth 2.1, Authentication, and Authorization Patterns</title><link>https://hooton.codes/blog/mcp-server-security/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-server-security/</guid><description>MCP servers inherit the full permissions of their host process, which makes remote deployments a different threat model entirely. Here&apos;s how the spec handles auth with OAuth 2.1 and which authorization patterns hold up in practice.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>security</category><category>ai</category><category>tooling</category></item><item><title>MCP Tools vs Resources vs Prompts: When to Use Which Primitive</title><link>https://hooton.codes/blog/mcp-tools-resources-prompts/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-tools-resources-prompts/</guid><description>Most MCP servers expose everything as tools. The protocol has three primitives for a reason, and here&apos;s when each one is the right choice, with Go examples from servers I run in production.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>tooling</category><category>ai</category><category>architecture</category></item><item><title>MCP Server Transports: Stdio vs SSE vs Streamable HTTP in Practice</title><link>https://hooton.codes/blog/mcp-transport-patterns/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-transport-patterns/</guid><description>The first architecture decision when building an MCP server is which transport to use. I&apos;ve shipped servers on all three, and here&apos;s what matters when choosing between stdio, SSE, and Streamable HTTP.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>tooling</category><category>ai</category><category>architecture</category></item><item><title>MCP Architecture Explained: Tools, Resources, Prompts, and How They Fit Together</title><link>https://hooton.codes/blog/mcp-architecture-deep-dive/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-architecture-deep-dive/</guid><description>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.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate><category>mcp</category><category>ai</category><category>tooling</category><category>architecture</category></item><item><title>Navigating BAAs for HIPAA Compliance</title><link>https://hooton.codes/blog/navigating-baas-hipaa-compliance/</link><guid isPermaLink="true">https://hooton.codes/blog/navigating-baas-hipaa-compliance/</guid><description>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.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate><category>hipaa</category><category>compliance</category><category>baa</category><category>healthcare</category><category>build-vs-buy</category></item><item><title>Expo MCP Server: Let AI Agents See and Control Your React Native App</title><link>https://hooton.codes/blog/building-expo-agent-bridge/</link><guid isPermaLink="true">https://hooton.codes/blog/building-expo-agent-bridge/</guid><description>AI agents can write mobile code but can&apos;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.</description><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><category>mcp</category><category>react-native</category><category>expo</category><category>ai</category><category>tooling</category><category>agents</category><category>typescript</category></item><item><title>I Built Helm Instead of Buying It. I&apos;m Not Open-Sourcing It Either.</title><link>https://hooton.codes/blog/built-helm-not-open-sourcing/</link><guid isPermaLink="true">https://hooton.codes/blog/built-helm-not-open-sourcing/</guid><description>Someone sells a terminal workspace tool for around $100/yr. I built my own in an afternoon. I&apos;m not putting it on GitHub, and that decision is the part of the build/buy story most people skip.</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate><category>build-vs-buy</category><category>ai</category><category>open-source</category><category>tooling</category></item><item><title>Testing and Debugging MCP Servers: Inspector, Integration Tests, and CI Patterns</title><link>https://hooton.codes/blog/mcp-server-testing/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-server-testing/</guid><description>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.</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate><category>mcp</category><category>go</category><category>testing</category><category>tooling</category><category>ai</category></item><item><title>What Are MCP Servers? The Developer&apos;s Guide to the Model Context Protocol</title><link>https://hooton.codes/blog/mcp-servers-guide/</link><guid isPermaLink="true">https://hooton.codes/blog/mcp-servers-guide/</guid><description>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.</description><pubDate>Mon, 20 Apr 2026 12:00:00 GMT</pubDate><category>mcp</category><category>ai</category><category>tooling</category><category>agents</category><category>go</category></item><item><title>Building MCP Servers in Go: The Complete Guide</title><link>https://hooton.codes/blog/building-mcp-servers-in-go/</link><guid isPermaLink="true">https://hooton.codes/blog/building-mcp-servers-in-go/</guid><description>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.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate><category>go</category><category>mcp</category><category>ai</category><category>tooling</category><category>agents</category><category>tutorial</category></item><item><title>The Context Layer: Four Daemons That Replace Half of Claude Code&apos;s Tool Calls</title><link>https://hooton.codes/blog/the-context-layer/</link><guid isPermaLink="true">https://hooton.codes/blog/the-context-layer/</guid><description>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.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate><category>go</category><category>claude-code</category><category>ai</category><category>tooling</category><category>mcp</category></item><item><title>Building Scry: An Agent-First Code Index That Replaces Read and Grep</title><link>https://hooton.codes/blog/building-scry/</link><guid isPermaLink="true">https://hooton.codes/blog/building-scry/</guid><description>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.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><category>go</category><category>claude-code</category><category>ai</category><category>tooling</category><category>lsp</category><category>scip</category></item><item><title>Trawl: A Free, Local Firecrawl Alternative for Web Scraping</title><link>https://hooton.codes/blog/building-trawl/</link><guid isPermaLink="true">https://hooton.codes/blog/building-trawl/</guid><description>A single Go binary for tiered web scraping, BFS crawling, schema extraction, and clean markdown. No API key, no recurring cost, polite by default, with opt-in stealth tiers for the sites that fight back.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><category>go</category><category>scraping</category><category>ai</category><category>tooling</category><category>agents</category><category>firecrawl</category></item><item><title>11 Targets Through a 3D-Printed Telescope</title><link>https://hooton.codes/blog/eleven-targets-through-a-printed-telescope/</link><guid isPermaLink="true">https://hooton.codes/blog/eleven-targets-through-a-printed-telescope/</guid><description>Every image in this gallery was shot through a telescope I designed in Fusion 360 and printed in PET-CF. Here&apos;s what I pointed it at, what I learned, and what I&apos;d reshoot.</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate><category>astrophotography</category><category>3d-printing</category><category>telescopes</category><category>deep-sky</category></item><item><title>Building a CRM Where the Agent Is the Primary User</title><link>https://hooton.codes/blog/building-agentic-crm/</link><guid isPermaLink="true">https://hooton.codes/blog/building-agentic-crm/</guid><description>We built internal agency tooling where the AI agent is the primary user, not the human. What agentic-first looks like when you&apos;re managing client work.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><category>ai</category><category>laravel</category><category>mcp</category><category>agents</category><category>architecture</category></item><item><title>Designing a 3D Printed Telescope for Astrophotography</title><link>https://hooton.codes/blog/designing-telescopes-for-3d-printing/</link><guid isPermaLink="true">https://hooton.codes/blog/designing-telescopes-for-3d-printing/</guid><description>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.</description><pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate><category>astrophotography</category><category>3d-printing</category><category>engineering</category><category>telescopes</category></item><item><title>Building Cockpit: A Terminal Dashboard for the Multi-Project Developer</title><link>https://hooton.codes/blog/building-cockpit/</link><guid isPermaLink="true">https://hooton.codes/blog/building-cockpit/</guid><description>I juggle a dozen projects across tmux sessions, git repos, and Obsidian tasks. Cockpit is a single TUI that shows me what&apos;s hot right now without leaving the terminal.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate><category>go</category><category>tui</category><category>tmux</category><category>tooling</category><category>productivity</category></item><item><title>Forking gstack to Close the Plan-to-Execution Gap</title><link>https://hooton.codes/blog/forking-gstack-for-orch/</link><guid isPermaLink="true">https://hooton.codes/blog/forking-gstack-for-orch/</guid><description>Gary Tan&apos;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.</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><category>ai</category><category>claude-code</category><category>tooling</category><category>multi-agent</category><category>gstack</category></item><item><title>What AI Changed About Running Engineering at an Agency</title><link>https://hooton.codes/blog/agency-engineering-ai/</link><guid isPermaLink="true">https://hooton.codes/blog/agency-engineering-ai/</guid><description>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.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><category>ai</category><category>engineering-leadership</category><category>agency</category><category>delivery</category></item><item><title>Building Orch: A CLI Orchestrator for Multi-Agent Claude Code</title><link>https://hooton.codes/blog/building-orch/</link><guid isPermaLink="true">https://hooton.codes/blog/building-orch/</guid><description>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.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><category>go</category><category>claude-code</category><category>ai</category><category>tooling</category><category>tmux</category></item><item><title>Multi-Agent Patterns That Held Up, and the Ones That Didn&apos;t</title><link>https://hooton.codes/blog/multi-agent-patterns/</link><guid isPermaLink="true">https://hooton.codes/blog/multi-agent-patterns/</guid><description>After months of running coordinated AI agents, here are the patterns that hold up and the ones that fall apart.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><category>ai</category><category>tooling</category><category>claude-code</category><category>multi-agent</category></item></channel></rss>