The request path
Signal group -> bot (VM) -> /v1/chat/completions over Tailscale -> Hermes gateway (Mac) -> Ollama
^ |
+---- finance MCP server (VM, 8 read-only tools) <----+
How it is built
- Hermes Agent runs as a login service on the Mac with its API server bound to the Tailscale address only and a mandatory key.
- Every Hermes toolset except memory and the finance MCP server is disabled for the API platform. No terminal, no browser, no file access reachable from the group chat.
- The MCP server runs from the bot's image on the VM, published on the Tailscale interface with a bearer token.
- Ollama keeps the model warm for 30 minutes so a question does not pay a 20-second reload.
What the measurements said
Three models were tested on the same end-to-end question. The MoE model won on prefill speed, which matters because the tool schemas make every prompt about 15k tokens.
- Gemma 4 26B-A4B: 22 seconds cold, 8 seconds warm.
- Qwen3 32B dense: 109 seconds for the same question, long enough to forget what you asked.
What it taught me
The model is the least interesting part. The tool boundary is the product: eight read-only functions with an as-of timestamp on every payload, and bank-feed text declared as data, not instructions.
Audio · 2 minLocal model versus API: the honest tradeoffs