The Dispatch
The story behind the work,
in your inbox.
When I ship something like pdf-mcp, redmine-mcp-server, or my agent blueclaw, the changelog tells you what changed. The letter is for the rest: the thinking behind it, what surprised me while building it, and what I cut before it shipped.
I also write about the systems behind them: AWS architecture, serverless trade-offs, and what things actually cost.
Roughly weekly while I'm shipping, quiet when I'm not.
Kevin
Writing since
2025
AWS, serverless, and AI agents in production.
Posts in the archive
55
From Bedrock experiments to production MCP servers.
These days
Building & writing
pdf-mcp, blueclaw, and the systems behind them.
The latest
Posted Sep 5, 2026
How to Test and Debug a Python MCP Server
The Inspector, in-process pytest, and the stdio traps that silently break a passing server.
Read the dispatch →
Start here
All writing →The signature essay
A Knowledge Base Is Just a Folder
No pipeline, no vector store. Topic folders, a warm habit, a generated catalog, honest coverage.
Read the essay →How AI Agents Should Read PDFs: 5 Patterns That Survived Production
How agents should navigate documents at production scale, from 50,000+ downloads of one MCP server.
Read the essay →How to Ship an MCP Server to Production (Authentication, Safety, and What Breaks)
MCP tutorials stop at tool integration. The real work is auth, guardrails, and untrusted data.
Read the essay →How Claude Code Actually Reads PDFs: Lessons from Building an MCP Server
Tool boundaries shape agent behavior more than prompts. What I learned shipping pdf-mcp.
Read the essay →How to Build an MCP Server in Python with FastMCP 3.0 (Full Code)
Tools, resources, prompts, SQLite persistence, in-process testing. Under 100 lines of Python.
Read the essay →pdf-mcp: How to Handle Large PDFs in Claude Code with MCP
Claude analyzes visuals for 100 pages, then reads text only. pdf-mcp reads in chunks.
Read the essay →Parallel Processing in AWS Lambda with Python: What Actually Works (And What Doesn't)
What threading, multiprocessing, and async actually do inside a Lambda function. Benchmarked.
Read the essay →How to Connect a Legacy System to AI Agents Using MCP
How to wrap a legacy Redmine API with MCP. No rewriting, no destabilizing anything.
Read the essay →-
A Knowledge Base Is Just a Folder
No pipeline, no vector store. Topic folders, a warm habit, a generated catalog, honest coverage.
-
How AI Agents Should Read PDFs: 5 Patterns That Survived Production
How agents should navigate documents at production scale, from 50,000+ downloads of one MCP server.
-
How to Ship an MCP Server to Production (Authentication, Safety, and What Breaks)
MCP tutorials stop at tool integration. The real work is auth, guardrails, and untrusted data.
-
How Claude Code Actually Reads PDFs: Lessons from Building an MCP Server
Tool boundaries shape agent behavior more than prompts. What I learned shipping pdf-mcp.
-
How to Build an MCP Server in Python with FastMCP 3.0 (Full Code)
Tools, resources, prompts, SQLite persistence, in-process testing. Under 100 lines of Python.
-
pdf-mcp: How to Handle Large PDFs in Claude Code with MCP
Claude analyzes visuals for 100 pages, then reads text only. pdf-mcp reads in chunks.
-
Parallel Processing in AWS Lambda with Python: What Actually Works (And What Doesn't)
What threading, multiprocessing, and async actually do inside a Lambda function. Benchmarked.
-
How to Connect a Legacy System to AI Agents Using MCP
How to wrap a legacy Redmine API with MCP. No rewriting, no destabilizing anything.