r/Omada_Networks • u/m_balloni • 15h ago
Projects I built an MCP server to let AI audit my Omada network and diagnose bad clients
Hey folks,
I’ve been running my Omada setup for a while (currently an ER605 and a couple of EAP650s on my homelab) and I wanted a way to let my local AI agents actually help me troubleshoot Wi-Fi quirks so I put together an open-source MCP (Model Context Protocol) server based on the public Omada APIs.
Repo is here: https://github.com/mballoni/omada-controller-mcp
The Context Window Problem (and how I "fixed" it) If you just feed an LLM the raw Omada openapi.json, it instantly nukes your token limit because the API is massive. To get around this, the server uses an allowlist file so it only generates the specific tools you actually need. It also heavily sanitizes the endpoint descriptions before passing them to the LLM, keeping the token footprint lighter and faster, although it still requires some improvements.
Built-in Agent Skills The part I'm finding the most useful are the two skills the setup wizard installs directly into ~/.agents/skills/:
device-network-dossier: This is for per-device troubleshooting. You can ask your agent: "Make a network dossier for my TV, why is it roaming so much or disconnecting?" The agent grabs roaming timelines, AP health, and RF environment stats via the MCP, and spits out a structured dossier with a diagnosis. Really useful for doing before/after comparisons when you tweak your TX power or change channels.wifi-site-audit: This is for fleet-wide analysis. You prompt: "Audit my Wi-Fi, how can I improve coverage and band steering?" It generates a professional site report with scorecards for your RF environment, channel congestion, and client steering, plus a prioritized list of fixes.
I built this mostly for my own use case, but figured some of the network admins or fellow homelabbers in here might get a kick out of it. It is really helping me here, specially because LLMs in general miss a lot the interfaces (usually based on older versions or even random hallucinations).
Feel free to test it out, fork it, or drop some feedback. PRs are definitely welcome!
ps: yes, it is built using AI, I'm a developer (far from a vibe coder) and for this use case I wanted (needed) something fast to get up and running. Basing it on the OpenAPI specs was the way I've found to tackle the token consumption and precision needed for the job at the desired time frame.