Skip to main content

fritzos8-mcp

CI CodeQL PyPI Python versions License: MIT OpenSSF Scorecard

English · Deutsch

Let your AI assistant run your FRITZ!Box – safely. An MCP server for AVM FRITZ!Box routers on FRITZ!OS 8: diagnose slow internet, audit security, clean up the device list, manage guest Wi-Fi, telephony and smart home – read-only by default, and every change is verified.

Demo: network doctor, security check and the plan → token → execute safety model

What you can ask

"Why is my internet slow tonight?" Runs the network doctor: line values (SNR margin, errors, resyncs), event log, Wi-Fi and mesh, LAN link flapping, DNS as a single point of failure – and returns findings with severity, likely cause and what to do.

"How secure is my FRITZ!Box?" Security check with a 0–100 score: remote access, MyFRITZ!, port forwards, WPS, Wi-Fi encryption, guest isolation, firmware, DNS over TLS – each finding with the exact menu path to fix it.

"Clean up devices that haven't been online for three months." Finds candidates (long offline, random MACs, duplicates, orphaned static IPs), suggests better names via vendor lookup, shows you the plan and changes nothing until you confirm.

"Turn on guest Wi-Fi for two hours." · "Boost the living room heating for 30 minutes." · "Block this spam number." Write actions – each one is read back from the box and reported as verified: true or false.

Features

  • Diagnostics – network doctor, line diagnostics for DSL, cable, fibre and LTE, per-device connection quality, link-flapping detection, system transparency (TR-069, NTP, IPv6/DS-Lite)
  • Security – scored security check, two-factor status, firmware and update overview for all AVM devices
  • Devices – both device names (TR-064 and web UI), rename, static IP, clean-up assistant, snapshots with diff, Wake-on-LAN, mesh and LAN ports
  • Wi-Fi & family – Wi-Fi channels and settings, guest Wi-Fi with time limit, access profiles, tickets, internet block per device
  • Telephony – call list with reverse lookup, answering machines, phone books, call deflection and barring, alarm clocks
  • Smart home – thermostats, switches, blinds, energy report, routines, holiday periods (REST API, AHA fallback)
  • Monitoring – optional collector for a local measurement series, ISP fault reports, anomaly detection, alerts via webhook, ntfy or Telegram
  • Multi-box – manage several boxes from one server, with a family-admin report across all of them

About 160 tools in total – see the generated tool reference.

Quick start

1. Prepare the box. Enable Home Network › Network › Network Settings › Allow access for applications and create a dedicated user under System › FRITZ!Box Users.

2. Store the password in your OS keychain (or use FRITZ_PASSWORD_FILE with mode 600):

uvx --from 'fritzos8-mcp[keyring]' keyring set fritzos8-mcp <user>

3. Add the server to your client – Claude Code shown. Other clients and Windows/Linux: docs/clients.md. Claude Desktop: install the one-click bundle fritzos8-mcp-<version>.mcpb from the latest release instead – it asks for host, user and password and needs neither step 2 nor a terminal.

claude mcp add fritzos8 -s user -e FRITZ_HOST=fritz.box -e FRITZ_USER=<user> -- \
  uvx --from 'fritzos8-mcp[keyring]' fritzos8-mcp

4. Ask your assistant to run setup_check. It verifies TR-064, the user's rights and two-factor settings, and tells you which tools a missing right would disable.

The server starts read-only. Enable changes with FRITZ_ALLOW_WRITE=1, critical actions additionally with FRITZ_ALLOW_CRITICAL=1.

Safety model

Tier Enabled by What it allows
read always read-only tools
write FRITZ_ALLOW_WRITE=1 changes – each one is read back and reports verified
critical + FRITZ_ALLOW_CRITICAL=1 reboot, port forwards, firmware update, … only via plan → one-time token → execute, plus a yes/no prompt in clients that support it
  • Never claims success it didn't see. If the result can't be read back, you get verified: false.
  • Never bypasses two-factor confirmation. If the box asks for it, the tool reports confirmation_required and explains how to confirm.
  • Never shows secrets. Passwords, Wi-Fi keys, PINs, session IDs and VPN keys are redacted from every output, error and log line.
  • Protects the box. Throttling, caching and a circuit breaker per box; server_status shows the health of each interface (last success/error, re-logins) even when the client still shows the server as connected.

Details: SECURITY.md.

Works with

  • Boxes: FRITZ!OS 8 – tested on FRITZ!Box 7583 (DSL) and 6660 Cable. Reports for other models are welcome: compatibility.
  • Clients: any MCP client – Claude Code, Claude Desktop, Cursor, VS Code, …
  • Interfaces: TR-064 (via fritzconnection), the AHA and Smart Home REST APIs, and the web UI's /api/v0 – the latter only where TR-064 can't help.
  • Language: tool descriptions and messages are in German; assistants handle them fine in any conversation language.

Not a Home Assistant replacement. For HA entities use the official AVM FRITZ!Box Tools, FRITZ!SmartHome and Call Monitor integrations. This server is for AI assistants – diagnostics, audits and guarded changes. Alerts can be sent to a Home Assistant webhook.

Documentation

Configuration permissions, all environment variables, multiple boxes, client setup
Tool reference every tool with tier, required right and parameters
Remote access Streamable HTTP with bearer token, e.g. on a Raspberry Pi
Interface coverage what is covered against the official AVM documentation
Compatibility · Fixtures tested models, contributing anonymized box answers

Contributing

Bug reports, compatibility reports and pull requests are welcome – see CONTRIBUTING.md. make setup installs everything including the git hooks; tests run against mocks only, no box required.

License

MIT. Parts are adapted from MIT-licensed projects, see NOTICE.

Independent project, not affiliated with AVM / FRITZ! GmbH. FRITZ!Box and FRITZ!OS are trademarks of FRITZ! GmbH. The /api/v0 endpoints are undocumented and may change with firmware updates; affected tools then report unsupported_firmware.

Metadata

Release files for fritzos8-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fritzos8-mcp 0.2.0
File Size Uploaded Provenance Actions
fritzos8_mcp-0.2.0.tar.gz 277.3 kB With provenance Details for fritzos8_mcp-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fritzos8-mcp 0.2.0
File Interpreter ABI Platform Actions
fritzos8_mcp-0.2.0-py3-none-any.whl Python 3 none any Details for fritzos8_mcp-0.2.0-py3-none-any.whl

Total release size: 592.4 kB

Release files / fritzos8_mcp-0.2.0.tar.gz

Download URL fritzos8_mcp-0.2.0.tar.gz
Size 277.3 kB
Tags Source
SHA-256 checksum
How to use checksums
018ffa33508cc50100123c85f7eaaf63b90ed08daf5b6e857f937200f7d47673
BLAKE2b-256 checksum
How to use checksums
fcbaf4e2ae6ded9e0d7401ba6e94c0a6f5f145d02b4a90ca333ff5581415eb8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 15, 2026.

Transparency log

Release files / fritzos8_mcp-0.2.0-py3-none-any.whl

Download URL fritzos8_mcp-0.2.0-py3-none-any.whl
Size 315.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34e15ff708c73f2dd60a2ecc7e067666e771a83723f4a69b4f89dbf5043fae38
BLAKE2b-256 checksum
How to use checksums
b258937609702730769782f8c83f0e82648e59b754ed60bf102b2fbc8b7b73ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 15, 2026.

Transparency log

Security for fritzos8-mcp 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fritzos8_mcp-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 15, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page