{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ds4ke2sgqygu","handle":"freebox-mcp","url":"https://wellknown.network/agents/freebox-mcp","links":{"self":"https://wellknown.network/agents/freebox-mcp/record.json","html":"https://wellknown.network/agents/freebox-mcp","markdown":"https://wellknown.network/agents/freebox-mcp/record.md","api":"https://wellknown.network/api/v1/agents/freebox-mcp","status":"https://wellknown.network/api/v1/agents/freebox-mcp/status","claim":"https://wellknown.network/agents/freebox-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/freebox-mcp/claim.json","badge":"https://wellknown.network/agents/freebox-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/freebox-mcp/history","tools":"https://wellknown.network/api/v1/agents/freebox-mcp/tools"},"ard":{"identifier":"urn:air::server:freebox-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"freebox-mcp","summary":"Spec-driven MCP server for the Freebox OS API, generated from the official documentation.","description":"# freebox-mcp\n\nA **spec-driven** [Model Context Protocol](https://modelcontextprotocol.io) server for the\n**Freebox OS API** — exposing the *entire* local API of your Freebox Server to any MCP client\n(Claude, etc.) as ready-to-call tools.\n\nEvery tool is generated from an **OpenAPI 3.1** document that is itself **auto-generated from the\nofficial Freebox documentation** (<https://dev.freebox.fr/sdk/os/>). When Free ships a new API\nversion, a scheduled job on a France-reachable host regenerates the spec; on a change it ships a\nrelease automatically — **no hand-written tool code to maintain**.\n\n### Three bricks, one contract\n\n```\n  ┌── 1. SCRAPER ──┐   ┌──── 2. GENERATOR ────┐   ┌─── 3. GENERATED CLIENT ───┐\n  official docs  ─►   tools/cache  ─────────►   spec/freebox-openapi.json ─►  FastMCP.from_openapi() ─► MCP tools\n  (dev.freebox.fr)    (html + objects.inv)      (pure Python — no AI)          (raw output — no edits)\n```\n\n**The whole pipeline is deterministic — no AI anywhere.** The scraper and generator are pure\nPython; the generated client is the verbatim output of `FastMCP.from_openapi(spec)` — no tool is\nhand-added, edited, pre-processed, or post-processed. A CI test (`test_tools_are_raw_generated_output`)\nenforces the last step: every exposed tool must be an `operationId` from the generated spec, or the\nbuild fails.\n\nThe only hand-written code is the authenticated transport the generated client *runs on*\n(discovery · HMAC session · TLS · envelope unwrap) — things no API spec can express. It is generic,\nnever edited per-endpoint, and app registration / login live in the CLI, not as injected tools.\n\n- **Exhaustive** — every documented operation across every section (wifi, lan, connection, calls,\n  contacts, downloads, fs, nat, dhcp, vpn server + client, pvr, parental control, airmedia,\n  system, …) becomes a tool. `login` (auth handshake) and `/ws/` (WebSocket) are excluded. Run\n  `freebox-mcp sections` for the live list and counts.\n- **Self-maintaining** — rege…","publisher":{"name":"Nelson Proia","url":null},"homepage":null,"repository":null,"version":"0.1.2","license":"MIT","protocols":["mcp"],"tags":["freebox","freebox-os","mcp","model-context-protocol","openapi"],"pricing":null,"endpoints":[{"url":"pypi:freebox-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"data.apis","name":"API Access","confidence":1,"provenance":"declared"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.756,"provenance":"derived"}],"categories":["data","dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"freebox-mcp","registry":"pypi","observedAt":"2026-09-15T15:24:25.459Z","publishedAt":"2026-06-21T15:04:26.226564Z","latestVersion":"0.1.2"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"freebox-mcp","url":"https://pypi.org/project/freebox-mcp/","firstSeenAt":"2026-09-09T15:23:43.669Z","fetchedAt":"2026-09-15T15:22:12.199Z","normalizedAt":"2026-09-15T15:22:12.199Z"}]},"firstSeenAt":"2026-09-09T15:23:43.669Z","updatedAt":"2026-09-15T15:24:25.459Z"}