Reading your box's own service descriptors instead of hard-coding a feature list is what keeps it working across models and firmware updates — and it is also why it registers 143 tools, about 25,000–30,000 tokens of schema on every message by the project's own estimate. Switch it on for the sessions where you are actually working on the network, rather than leaving it loaded everywhere.
A Go binary that sits between an MCP client and an AVM FRITZ!Box router, reaching it over your local network only. It ships no fixed feature list: at start it reads the router's own service descriptors and registers what that model and firmware actually offer, which is why the same binary works on an older box and on a current one after a firmware update. Credentials stay in a `.env` file on your machine, the router never needs to be reachable from the internet, and the assistant receives results rather than access.
- Every service the router publishes, listed, with the actions under each one and the arguments each action takes
- Any of those actions executed by name, with the read-only ones also registered individually — so "what is my external IP" is a single call
- Connected devices: what is online, on WiFi or Ethernet, and which ones you do not recognise
- WiFi and guest WiFi switched on or off, and bandwidth prioritised for one device
- Parental controls and schedules — a device blocked now, or at a time you name, running on after you close the chat
- Line and connection state: uptime, sync rates, error counts, reconnection history and the log entries underneath them
A FRITZ!Box on the same network and a router account with full settings access — the "FRITZ!Box-Einstellungen" permission under System → FRITZ!Box-Benutzer; without it calls come back as permission errors. Host, port, username and password live in a local `.env`, which the binary's `--setup` mode discovers over SSDP and writes for you. The licence is source-available rather than open source: free for exactly one FRITZ!Box credential pair, commercial licence beyond that. Release binaries are signed, published on GitHub and GitLab with matching checksums, and carry SLSA provenance.
One command plus a key — curl -fsSL https://raw.githubusercontent.com/kambriso/fritzbox-mcp-server/main/install.sh | sh, then supply credentials
