Hey —

Six weeks ago my homelab was a place to host Pi-hole and a scraper. This week it shipped three paid MCP servers to the Apify Store — without polluting my laptop with a single Python venv, a Node toolchain, or an apify-cli install.

The trick is dumb: Claude Code on the laptop, Raspberry Pi on the other side of SSH. Every python, npm, apify command runs on the Pi. The laptop just edits files and reads results.

## What I did

1. Set up passwordless SSH from laptop to Pi (one-time, ~3 min). Generated an ed25519 key, added a Host alias in ~/.ssh/config. After that, every Bash call from Claude Code is just ssh noelpi <cmd>. No password, no friction.

2. Installed the build toolchain on the Pi, not the laptop. Node 20, Python 3.13, Docker 29, apify-cli. The laptop stays as clean as the day I unboxed it.

3. Shipped docker-compose-audit to Apify — 25 security checks against any docker-compose.yml, MCP-native, $0.02 per audit. Found three privileged: true containers and one literal POSTGRES_PASSWORD=changeme in the first compose file I threw at it (my own).

4. Shipped hu-postcode-validator — embedded SQLite of 3,484 Hungarian postcodes built at dev-time from Magyar Posta's official XLSX + KSH data. 410 KB file. Lookups in <10ms. $0.001 per call.

5. Shipped dockerfile-audit — 19 Hadolint-grade checks against any Dockerfile. Catches USER root, chmod 777, curl | bash, hardcoded ENV API_TOKEN=..., and a dozen more — with line numbers and copy-paste fix snippets. Same framework as the compose audit; took me about a day from scaffold to passing smoke tests.

Five containers, ~1.5 GB RAM used, 15 days uptime as of writing. Pi 4 with 4 GB.

## Why it matters

If you've been side-eyeing "AI coding agents" because you don't want a tool installing Node modules into your work machine — the right answer is to put the agent in front of an environment you already trust. For me that's a Pi I've owned for years. For you it might be a $5 VPS, an old NUC, or an Orange Pi gathering dust.

The agent doesn't need to live where the artifacts live. SSH is fine. The compounding effect is real: every new MCP server I build now is ~80% framework reuse from the last one. Server one took three weeks. Server two took two days. Server three took half a day.

## Try it yourself

Generate a key on your laptop (no passphrase for automation), copy it to the Pi with ssh-copy-id, add a Host alias in ~/.ssh/config, then in Claude Code point all Bash calls at ssh pi <cmd>. It just works.

For the MCP-server-on-Apify side, the template is python-mcp-empty:

ssh pi "cd ~/apify && apify create my-server --template python-mcp-empty"

Three weeks ago I'd never published an MCP server. Now I've shipped three. The blocker was never the code — it was the cognitive load of running everything locally.

## This week's reading

- Apify's MCP creator docs (https://apify.com/mcp/developers) — 80% rev share, pay-per-event, auto-distribution to Make / n8n / Zapier. The economics are real.

- FastMCP (https://github.com/jlowin/fastmcp) — the Python MCP framework I'm using. Apache-2.0, most widely used MCP Python library per install counts.

- tamas-ferenci/IrszHnk (https://github.com/tamas-ferenci/IrszHnk) — the Hungarian-postcode dataset I merged with Magyar Posta's catalog for hu-postcode-validator. Someone has done the boring work; reuse it.

- docker-compose-audit on Apify Store (https://apify.com/unbearable_dev/docker-compose-audit?utm_source=newsletter&utm_medium=email&utm_campaign=issue-1) — the first Actor that shipped out of this setup. $0.02 per audit.

---

If you found this useful: the MCP Server Boilerplate Pack documents every pattern I learned across the full sprint — scaffolding, PPE pricing structure, Standby URL quirks, smoke testing, and the 15 most common failure modes with exact fixes. €49 on Gumroad: https://unbearable0.gumroad.com/l/mcp-server-boilerplate-pack?utm_source=newsletter&utm_medium=email&utm_campaign=issue-1-pack

Keep reading