I can talk to my homelab now!
Writing my own express-based RESTful API and Model Context Protocol server (part 2...ish). I can talk to my homelab now!

Regarding the RESTful API and MCP server challenge, there’s been quite a few updates from the first post and now, so let me give y’all a quick run-down:
I introduced TRMNL endpoints. TRMNL users can get WMATA updates for free via my API, and also introduced a TRMNL plugin that supports OAuth. Transitioning from pure API work to building an application that consumes and respects the OAuth2.0 spec was certainly one of the largest challenges I’ve faced in a while; truly a huge moment in growth and humity.
Did you hear that I made an official plugin for TRMNL? If you want to see how fucked screwed your commute can be, you can check it out here.
On the MCP side of the house, I added proxmox/Docker tools, and secured them with Role Based Access Control (RBAC), though Claude helped a LOT with that design and implementation.
(Not subspace-api related, but I made my own music sequencer here, perfect for triggering music sequences for your favorite 5th edition table top playing game…it was fully vibe coded FYSA).
This was also an excellent opportunity for me to try out Claude Code and OpenAI’s Codex. The API repo was getting bloated, and I just couldn’t be arsed to do basic maintenance tasks and organization. Seeing the AI agents go on and organize custom Types based on my request was certainly something to see.
After being burned by bad RAM and destroying any semblance of an SLA for a friend (sorry, Sam!), I wanted single “command center” to perform common homelab tasks for troubleshooting or just getting a bead on what’s going on. This is where “tee-hee fun automation time” became opinionated: I needed better health checks, better debugging, fast diagnostics, better context - all in a single place.
The project I was working on was basically “Morgana 2.0” - Morgana runs an internal API server, separate from the subspace-api/MCP server that can receive webhooks. Hooking up Uptime Kuma and Proxmox events and letting LLMs see those events and perform diagnostics automatically were a massive change in my workflow. Less context switching, less tabs and terminals…I can just ask “yo what’s up with the lab?”
Morgana started off as a fun chatbot integration when I started learning Node, and now it’s expanded into a control plane partner in homelab management that speaks human, and not YAML.
All of it culminating to my favorite internal project ever - a way to interact with my homelab using natural language, featuring my favorite cat person, Morgana!



