Claude-Code- und Codex-Plugin, das einen ioBroker-MCP-Server um drei Skills ergänzt, die erklären wann die ioBroker-Tools greifen — für Geräte-Diagnose, State-Suche und Batterie-Checks.
Das Plugin ist die dritte Iteration des Unit-3-Patterns aus dem Hugging Face Context Course (nach paperless-bulk-plugin): Skills beschreiben wie und wann, MCP-Server liefern was — das Plugin bringt beide so zusammen, dass Discovery automatisch greift, ohne dass der Nutzer den MCP explizit aufruft.
Anders als die Geschwister-Plugins ist dieses nicht an einen bestimmten MCP-Server gebunden. Die Skills beschreiben Ziele (State lesen, Historie abfragen, Adapter-Health prüfen) und nennen konkrete Tools nur als Beispiele — aus beiden unterstützten Backends:
- McCavity/iobroker-mcp — FastMCP-Wrapper um den SimpleAPI-Adapter, stdio. Stabil, im produktiven Einsatz.
- offiziell ioBroker/ioBroker.mcp (GermanBluefox) — ioBroker-Adapter, Streamable-HTTP/SSE. Zukunftslinie, Stand 2026-06 noch experimentell (v0.1.4, nicht auf npm).
Die vollständige Tool-Entsprechung steht in docs/tool-mapping.md. Ein späterer Backend-Wechsel kostet damit nur einen .mcp.json-Swap, keine Skill-Umschreibung.
Reines Plugin-Repo — distribuiert über den gemeinsamen mccavity-Marketplace-Hub, der dieses Plugin via git-subdir aus plugins/iobroker-plugin/ zieht:
iobroker-plugin/
├── docs/
│ └── tool-mapping.md # Backend-A ↔ Backend-B Tool-Mapping
└── plugins/
└── iobroker-plugin/ # Plugin-Verzeichnis
├── .claude-plugin/plugin.json # Claude-Code-Manifest
├── .codex-plugin/plugin.json # Codex-Manifest
├── .mcp.json # MCP-Backend-Referenz (Template, beide Backends dokumentiert)
└── skills/...
| Skill | Trigger | Workflow-Kern |
|---|---|---|
diagnose-device |
„warum reagiert X nicht?", „Gerät tot?" | online → battery → history → adapter-health, in dieser Reihenfolge (verhindert Fehlschlüsse) |
find-state-by-pattern |
„wie heißt der State für X?" | SimpleAPI-Glob-Fallen (whole-string, segment-anchored, script.js/scenes.0 gefiltert) |
battery-check-pattern |
„welche Batterien sind schwach?" | available=false-Guard gegen getState-WARN-Spam + numerische Validierung vor Schwellvergleich |
Die Skills sind in den Lerneinträgen aus Hennings KI-OS verwurzelt (Glob-Pattern-Falle 2026-05-25, available-Guard + undefined > N === false-Falle 2026-05-27).
Das Plugin enthält keinen Server-Code und registriert standardmäßig keinen MCP-Server — es ist skills-only und nutzt die ioBroker-MCP, die du bereits registriert hast (z.B. ein user-scope iobroker-Eintrag in ~/.claude.json). So kann die Installation nie doppelt registrieren oder an unset Env-Vars scheitern.
Noch keine ioBroker-MCP registriert? Wähle ein Backend und kopiere eines der Templates aus .mcp.json in einen Top-Level-mcpServers-Block (entweder die Plugin-.mcp.json ODER dein user-scope ~/.claude.json):
Path-launched (venv-Python + server.py), Credentials aus einer .env neben server.py:
git clone git@github.com:McCavity/iobroker-mcp.git
cd iobroker-mcp && python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # IOBROKER_URL (+ optional IOBROKER_USER/PASS) setzen{ "mcpServers": { "iobroker": { "type": "stdio",
"command": "/abs/pfad/iobroker-mcp/.venv/bin/python",
"args": ["/abs/pfad/iobroker-mcp/server.py"], "env": {} } } }Adapter in ioBroker installieren + Instanz starten:
{ "mcpServers": { "iobroker": { "type": "http", "url": "http://<host>:<port>/mcp" } } }Stand 2026-06 experimentell (v0.1.4, kein npm) — erst evaluieren, dann migrieren.
Über den gemeinsamen mccavity-Marketplace-Hub (claude-marketplace):
/plugin marketplace add McCavity/claude-marketplace
/plugin install iobroker-plugin@mccavity
Dieses Repo hostet keinen eigenen Marketplace mehr — Marketplace-Namen sind pro Nutzer eindeutig, ein self-hosted
mccavitywürde den Hub verdrängen. Füge nur den Hub hinzu, nicht dieses Repo direkt.
mkdir -p ~/.codex/plugins
cp -R /abs/pfad/iobroker-plugin/plugins/iobroker-plugin ~/.codex/plugins/iobroker-pluginDann ~/.agents/plugins/marketplace.json um diesen Eintrag erweitern und Codex neu starten.
Mit dem Plugin installiert wird folgendes möglich, ohne dass der Nutzer den MCP explizit erwähnt:
- „Warum reagiert der Flur-Bewegungsmelder nicht mehr?" →
diagnose-devicetriggert, läuft die online→battery→history→adapter-Checkliste. - „Wie heißt der Datenpunkt für die Couch-Lampe?" →
find-state-by-patternumschifft die Glob-Fallen. - „Welche Batterien sind schwach?" →
battery-check-patternmitavailable-Guard.
Ohne das Plugin: der Nutzer muss daran denken, dass es eine ioBroker-MCP gibt, und die Tools selbst orchestrieren.
- Versionierung folgt Semantic Versioning.
- Skills sind atomar — neue Workflows kommen als neue Skill-Verzeichnisse rein, nicht als Erweiterung existierender Skills.
- Bei MCP-Tool-Updates (neue Tools, geänderte Signaturen):
docs/tool-mapping.md+ die betroffene SKILL.md aktualisieren, Version bumpen. - Reift der offizielle ioBroker.mcp-Adapter (npm/beta), Migration via Mapping re-evaluieren.
MIT — siehe LICENSE.