Purpose
fritzbox-mcp-server is an MCP (Model Context Protocol) server that lets users interact with an AVM FRITZ!Box router in natural language through an AI assistant (such as Claude). It runs on the user's own computer and acts as a secure bridge between the cloud AI agent and the local FRITZ!Box: the FRITZ!Box does not need to be exposed to the internet, no ports need to be opened, and there is no cloud connection to the router; credentials are stored in a local .env file and are used only to communicate with the router within the local network, and the AI receives only the results of operations (for example "3 devices connected" or "router uptime: 5 days"), not the credentials or direct access to the router.
Main capabilities
- Asking questions and querying: external IP address, list of connected devices, router uptime, current network speed, whether WiFi is secure, etc.
- Network analysis: checking connection quality, identifying problems, explaining log patterns and giving recommendations.
- Device management: listing WiFi devices, viewing the devices with the highest bandwidth usage, listing unknown devices, prioritizing bandwidth for a laptop (for example during a video call).
- Parental controls and scheduling: for example "block the Nintendo Switch after 20 minutes", "disable internet access for all gaming devices during working hours", "turn on guest WiFi at 6 PM for a party". Scheduled operations are persistently executed in the background via the server's CLI mode, and are carried out automatically even if the chat is closed.
- Troubleshooting: diagnosing the cause of slow network speeds, checking connection problems, viewing recent disconnection records.
The project claims compatibility with all FRITZ!Box models and firmware versions, automatically adapting by discovering the router's capabilities in real time, so the server does not need to be updated when AVM releases new features or new models.
How to use
- Installation: use the installation script with automatic checksum verification; the script automatically detects the platform (operating system and architecture), downloads the latest release from GitHub, verifies the SHA256 checksum, installs to ~/.local/bin/fritz-mcp and grants executable permissions. You can also manually download the package for the corresponding platform from Releases (linux-amd64/arm64, darwin-amd64/arm64, windows-amd64/arm64), extract it and grant executable permissions (on Windows, simply extract the ZIP).
- Interactive configuration: automatically discover FRI via SSDP on the local networkTZ!Box devices, identify the Mesh Master (gateway), prompt for the host, username, password and TLS preference, and save the credentials to the .env file with 0600 permissions.
- FRITZ!Box user permissions: in the router web interface (http://fritz.box)进入 System → FRITZ!Box users → [your user] → Permissions, enable "FRITZ!Box settings" (the user can view and edit all FRITZ!Box settings).
- Configure the AI assistant: edit the Claude Desktop configuration file (Windows: %APPDATA%\Claude\claude_desktop_config.json; macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Linux: ~/.config/claude/claude_desktop_config.json), add the server path (Windows paths require double backslashes), then restart Claude Desktop.
Use cases
Suitable for users who want to manage their home FRITZ!Box network, perform network health checks, inventory devices, use parental controls, and schedule network operations in natural language through an AI assistant.
Limitations and notes
- This server exposes 143 tools to the AI. Each tool definition (name, description, JSON schema) is sent with every message, and the tool definition overhead is about 25,000–30,000 tokens/message; the estimated cost is about $0.08 per message for Sonnet and $0.45 per message for Opus (tool overhead only). The tool schemas occupy the context window. It is recommended to disable the server when it is not needed, or enable it only for specific projects that require router access; when used with local models (llama.cpp, Ollama), 143 tools may overwhelm smaller models, so tool filtering can be used to expose only the needed tools. After the first message in a session, Claude's prompt caching reduces the token cost of subsequent messages, and the overhead is most noticeable in short conversations.
- The FRITZ!Box user needs full settings permissions.
- The development environment requires Go 1.25 or later, a FRITZ!Box router on the local network for testing, and a username and password.
- The project uses the community MCP SDK (mark3labs/mcp-go v0.7.0) rather than the official SDK, because the official SDK has issues with tools notdisplaying in MCP clients, initialization races and client timeouts, pointer-type schema generation, and the two APIs are incompatible.
- Security and verification: all communication stays within the local network, with no cloud services and no external servers; VirusTotal scan results, SLSA provenance (SLSA Level 2 for GitLab, SLSA Level 3 for GitHub), Cosign keyless signing (OIDC), and cross-Git-platform reproducible build verification are provided (the same source code produces identical binaries on GitLab and GitHub).
- Information not explicitly stated in the materials, such as fees, pricing, and the specific scope of platform support, is not provided for now.