# Alle Werkzeuge

Der MCP-Server bietet 38 Werkzeuge in drei Arten: Lesen, Vorschlagen und Schreiben. Diese Seite nennt jedes mit seiner Aufgabe, seinen Argumenten und den Rechten, die es braucht.

> **Typ:** nachschlagen
> **Für wen:** Entwicklerinnen und Entwickler, die einen Assistenten anbinden oder genau wissen wollen, was er erreicht
> **Voraussetzung:** keine

## Lesen

Diese Werkzeuge ändern nichts.

| Werkzeug | Was es tut | Argumente | Rechte |
|---|---|---|---|
| `whoami` | Nennt Konto, Organisation und Rechte der Verbindung und welche Rechte den Werkzeugen fehlen | keine | keine |
| `list_scenes` | Listet Szenen mit Name, Zustand, Fassung und Format, auf Wunsch nur die nirgends zugewiesenen | `status`, `search`, `assignment`, `limit`, `cursor` | `scene.list` |
| `get_scene` | Zeigt eine Szene mit ihren Bereichen, Widgets und offenen Befunden, jeweils mit Hinweis | `sceneId` | `scene.read` |
| `get_scene_document` | Liefert das vollständige Dokument des Entwurfs und seine Fassung, der Anfang jeder Änderung | `sceneId` | `scene.read` |
| `list_scene_templates` | Listet die kuratierten Szenenvorlagen | `orientation` | `scene.read` |
| `list_widgets` | Listet die Widgets, aus denen Szenen bestehen, die eingebauten und die der installierten Apps | `search`, `installedOnly` | keine |
| `get_widget_schema` | Liefert das JSON Schema der Konfiguration eines Widgets mit Beispielen | `widgetType`, `appId` | keine |
| `list_graphics` | Listet die Motive des eingebauten Widgets `graphic`, durchsuchbar mit deutschen Wörtern | `search`, `category` | keine |
| `list_assets` | Listet Medien mit Name, Typ, Größe und Tags, auf Wunsch nur ungenutzte, ohne Download-Adressen | `search`, `tags`, `usage`, `limit`, `cursor` | `asset.list` |
| `list_players` | Listet Displays mit Zustand, Inhalt, Standort und Tags, auch je Standort, ohne Programm oder länger still | `status`, `search`, `locationId`, `program`, `offlineSince`, `limit`, `cursor` | `fleet.player.list`, `location.list` |
| `get_player` | Zeigt ein Display mit Zustand, Tags, Programm und laufender Übersteuerung | `playerId` | `fleet.player.read` |
| `get_player_screenshot` | Liefert die jüngste Aufnahme eines Displays als Bild | `playerId` | `fleet.player.read` |
| `list_display_groups` | Listet die Videowände mit ihrer Fläche und der Zahl ihrer Displays | keine | `fleet.player.list` |
| `list_locations` | Listet Standorte mit Anschrift, Zeitzone und Zahl der Displays | keine | `location.list` |
| `get_location` | Zeigt einen Standort mit Öffnungszeiten, den Feiertagen der nächsten vier Wochen und seinen Displays | `locationId` | `fleet.player.list`, `location.read` |
| `list_playlists` | Listet Playlisten mit Name, Quelle und Zahl der Einträge | `search`, `sourceKind`, `limit`, `cursor` | `playlist.list` |
| `get_playlist` | Zeigt eine Playlist mit Quelle, Dauer und Abfolge aus Szenen, Medien und App-Inhalten | `playlistId` | `playlist.read` |
| `list_schedules` | Listet Programme mit Grundprogramm, Zahl der Programmpunkte und Zahl der Displays | `search`, `limit`, `cursor` | `schedule.list` |
| `get_hygiene` | Zählt, was sich aufräumen ließe, und nennt zu jeder Zahl das Werkzeug, das die Zeilen dahinter zeigt | `offlineSince`, `dormantSince` | `analytics.query.run` |
| `validate_scene` | Prüft ein Szenendokument, ohne es zu speichern | `document` | `scene.read` |

## Vorschlagen

Diese Werkzeuge legen Entwürfe an oder ändern sie. Auf einem Display erscheinen sie erst, wenn jemand sie veröffentlicht und zuweist. `create_scene` und `update_scene` tragen trotzdem `confirm`, weil sie Inhalt schreiben, den noch niemand gesehen hat.

| Werkzeug | Was es tut | Argumente | Rechte |
|---|---|---|---|
| `create_scene_from_template` | Legt einen Entwurf aus einer kuratierten Vorlage an | `templateId`, `name` | `scene.create` |
| `create_scene` | Legt einen Entwurf aus einem eigenen Dokument an, nach einem Probelauf | `name`, `description`, `document`, `confirm` | `scene.create`, `scene.read`, `scene.update` |
| `update_scene` | Ersetzt das Dokument einer Szene als Ganzes, nach einem Probelauf | `sceneId`, `expectedVersion`, `document`, `confirm` | `scene.read`, `scene.update` |
| `render_scene` | Rendert eine veröffentlichte Fassung als PNG-Bild | `sceneId`, `versionId`, `width` | `scene.read`, `scene.update` |
| `create_playlist` | Legt eine Playlist aus Szenen und Medien an | `name`, `description`, `items`, `defaultItemDurationMs` | `playlist.create` |
| `add_to_playlist` | Fügt Szenen oder Medien einer Playlist hinzu, am Ende oder vorn. App-Inhalte, die schon in der Abfolge stehen, bleiben | `playlistId`, `items`, `position` | `playlist.read`, `playlist.update` |

## Schreiben

Jedes dieser Werkzeuge antwortet zuerst mit einer Vorschau und ändert erst beim zweiten Aufruf mit `confirm: true` etwas.

| Werkzeug | Was es tut | Argumente | Rechte |
|---|---|---|---|
| `publish_scene` | Veröffentlicht eine Szene, zugewiesene Displays holen die neue Fassung | `sceneId`, `releaseNotes`, `confirm` | `scene.publish`, `scene.read` |
| `set_player_program` | Weist einem Display ein Programm, eine Szene, eine Playlist oder ein Medium zu oder hebt die Zuweisung auf | `playerId`, `program`, `confirm` | `fleet.player.read`, `schedule.update` |
| `set_display_group_program` | Weist einer Videowand Inhalt zu und damit allen ihren Displays | `displayGroupId`, `program`, `confirm` | `fleet.player.list`, `schedule.update` |
| `set_player_override` | Zeigt auf einem Display bis zu einer festen Zeit etwas anderes | `playerId`, `content`, `until`, `confirm` | `fleet.player.read`, `schedule.update` |
| `clear_player_override` | Beendet eine Übersteuerung, das Display kehrt zu seinem Programm zurück | `playerId`, `confirm` | `fleet.player.read`, `schedule.update` |
| `send_player_command` | Schickt `reboot`, `refresh-snapshot`, `identify` oder `screenshot` an ein Gerät | `playerId`, `command`, `confirm` | `fleet.player.command.issue`, `fleet.player.read` |
| `assign_player_location` | Ordnet ein Display einem Standort zu oder hebt die Zuordnung auf | `playerId`, `locationId`, `confirm` | `fleet.player.read`, `fleet.player.update`, `location.list` |
| `create_location` | Legt einen Standort an | `name`, `timeZone`, `address`, `coordinates`, `note`, `confirm` | `location.create` |
| `set_location_opening_hours` | Setzt Wochenplan, Sondertage und Bundesland eines Standorts | `locationId`, `openingHours`, `region`, `confirm` | `location.read`, `location.update` |
| `create_web_display` | Legt ein Display an, das im Browser läuft, und liefert seine Verbindungsadresse | `name`, `locationId`, `program`, `confirm` | `fleet.web-display.manage`, `schedule.update` |
| `issue_web_display_link` | Stellt eine neue Verbindungsadresse für ein Web-Display aus | `displayId`, `confirm` | `fleet.player.read`, `fleet.web-display.manage` |
| `delete_web_display` | Löscht ein Web-Display und gibt seinen gebuchten Platz frei, ein Display mit Gerät wird abgewiesen | `displayId`, `confirm` | `fleet.player.read`, `fleet.web-display.manage` |

## Ein Display, auf dem etwas zu sehen ist

Mit `create_web_display` kann ein Assistent überhaupt etwas zeigen, ohne dass vorher jemand Hardware anschließt. Es antwortet mit der Kennung des Displays und einer Verbindungsadresse. Diese Adresse in einem Browser auf dem Zielgerät zu öffnen, ist der eine Schritt, den kein Assistent selbst kann, deshalb gibt er sie an Sie weiter.

Bis dahin steht das Display als „Nicht verbunden“ in der Flotte (`"status": "not_connected"`), mit seinem Namen, seinem Standort und auf Wunsch seinem Programm. Es belegt von Anfang an einen gebuchten Platz. Sind alle Plätze vergeben, antwortet das Werkzeug `no_seat_available`. `issue_web_display_link` gibt demselben Display eine neue Adresse, wenn sein Browser den Speicher verloren hat.

## Aufräumen

Die Fragen, was herumliegt, sind Filter auf den Listen, die es ohnehin gibt: `list_assets` mit `usage`, `list_scenes` mit `assignment` und `list_players` mit `program` oder `offlineSince`. `get_hygiene` zählt sie und nennt zu jeder Zahl das Werkzeug, das die Zeilen zeigt.

## Weiterführendes

- [Was kann ein KI-Assistent mit Szenera tun?](/de/mcp/about-mcp)
- [Rechte und Einwilligung](/de/mcp/permissions)
- [Eine Szene mit einem Assistenten bauen](/de/mcp/build-scene)
