
I Rewrote My MCP Documentation Server in Go and Dropped 3 Containers
Before (PHP/Laravel): 4 containers (app, queue worker, websocket, monitoring) + Redis (queues, cache, sessions) + Meilisearch (full-text search) + 9 Airflow DAGs (scheduled jobs) = ~7.4GB memory limits across 7 moving parts After (Go): 1 container + PostgreSQL (already existed) = 22MB RSS, 1 moving part PHP (Laravel) Go Containers 4 + Redis + Meilisearch 1 Image size ~500 MB 48 MB Memory ~7.4 GB (limits) 22 MB (RSS) Search Meilisearch PostgreSQL FTS Job queue Horizon + Redis River (PostgreSQL) Scheduler 9 Airflow DAGs Built-in That's the before and after for DocuMCP , an MCP documentation server I run in production. It serves documents, git project templates, and offline ZIM archives (DevDocs, Wikipedia, Stack Exchange via Kiwix ) to AI agents through the Model Context Protocol . The PHP version worked. But my git history had commits like "Increase Horizon memory limits to prevent OOM crashes" and "Increase documcp-app memory for Vite builds." The feature set had stabilized — I wasn't
Continue reading on Dev.to
Opens in a new tab



