freebox-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@freebox-mcplist devices on my LAN"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
freebox-mcp
A spec-driven Model Context Protocol server for the Freebox OS API — exposing the entire local API of your Freebox Server to any MCP client (Claude, etc.) as ready-to-call tools.
Every tool is generated from an OpenAPI 3.1 document that is itself auto-generated from the official Freebox documentation (https://dev.freebox.fr/sdk/os/). When Free ships a new API version, a weekly job regenerates the spec and ships a release — no hand-written tool code to maintain.
official docs (Sphinx)
│ scrape + parse objects.inv & httpdomain/jsondomain HTML (deterministic, pure Python)
▼
spec/freebox-openapi.json ──► FastMCP.from_openapi ──► ~230 MCP tools
▲ ▲
spec/overrides.json (committed) authenticated httpx client
(one-time AI audit, static data) (discovery · HMAC session · TLS · envelope unwrap)Exhaustive — 220 documented operations across 29 sections (wifi, lan, connection, calls, contacts, downloads, fs, nat, dhcp, vpn server + client, pvr, parental control, airmedia, system, …) ⇒ ~230 MCP tools.
Self-maintaining — the spec regenerates from the docs deterministically; CI does it weekly and auto-releases on change.
Secure — app-token never leaves your machine, HMAC-SHA1 sessions, TLS verified against the bundled Freebox root CAs,
0600credential store. See SECURITY.md.
Quick start
# 1. Authorize the app on your Freebox (one time — press the button on the box).
uvx freebox-mcp authorize
# 2. Point your MCP client at it (stdio).
uvx freebox-mcpauthorize is a one-time physical confirmation (Freebox anti-hijack design). After it, the
token is saved and every later session opens automatically — you never touch the box again.
MCP client config (Claude Desktop / Claude Code)
{
"mcpServers": {
"freebox": { "command": "uvx", "args": ["freebox-mcp"] }
}
}Docker
docker run -i --rm -v ~/.config/freebox-mcp:/home/app/.config/freebox-mcp \
ghcr.io/nelson-proia/freebox-mcp(The container needs LAN access to the box; on Linux add --network host.)
Run from source, no install
uvx --from git+https://github.com/Nelson-PROIA/freebox-mcp freebox-mcp discoverRelated MCP server: Promethean OS MCP
What you can do
Because the whole API is exposed, an LLM can chain real tasks:
List every device on the LAN, then reboot the box.
Set up a port-forward / NAT redirect for a self-hosted service.
Schedule a TV recording on the PVR and manage existing recordings.
Toggle wifi, change the SSID/passphrase, split 2.4/5 GHz bands.
Read live xDSL / FTTH line stats (rate, SNR, attenuation).
Apply per-device parental controls and time schedules.
Configure the built-in VPN server and provision VPN client tunnels.
Manage downloads + RSS feeds, FTP, network shares, Freeplug & switch ports.
CLI
freebox-mcp run the MCP server over stdio (default)
freebox-mcp --http run over streamable-HTTP (--host/--port)
freebox-mcp authorize register the app (press the button on the box)
freebox-mcp login open a session and print granted permissions
freebox-mcp discover print discovery info and the chosen transport
freebox-mcp tools list the generated MCP tools
freebox-mcp call OP [JSON] invoke one operation, e.g. `freebox-mcp call get_system`Configuration
Env var | Default | Purpose |
|
|
|
| — | Force a base URL, e.g. |
| — | Comma list to expose only some sections, e.g. |
| — | Comma list of sections to hide. |
|
| App identity on the box. |
Scoping the sections keeps the tool surface small when you only care about a few areas.
Permissions. Configuration-changing tools need the
settingspermission. Grant it (andparental, etc.) for this app in the Freebox OS web UI: Paramètres ▸ Gestion des accès ▸ Applications — no walking to the box.
Regenerating the spec
python -m tools.build # scrape live docs → parse → emit spec/freebox-openapi.json
python -m tools.build --offline # rebuild from the committed cache (deterministic; what CI verifies)The CI regenerate workflow runs this weekly; on any spec change it bumps the version, commits,
tags, and releases automatically.
Development
uv sync --group dev
uv run pytest # unit + integration (mocked); add FREEBOX_TEST=1 for live
uv run ruff check . && uv run ruff format .License
MIT — see LICENSE. Not affiliated with Free / Iliad.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nelson-PROIA/freebox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server