All tools
Every tool with what it does, its arguments, and the permissions it needs.
- For
- Developers who connect an assistant or want to know exactly what it can reach
- Prerequisite
- none
The MCP server offers 38 tools in three kinds: read, propose, and write. This page lists each one with what it does, its arguments, and the permissions it needs.
Read
These tools change nothing.
| Tool | What it does | Arguments | Permissions |
|---|---|---|---|
whoami |
Names account, organization, and permissions of the connection, and which permissions the tools lack | none | none |
list_scenes |
Lists scenes with name, status, version, and format, also only those assigned nowhere | status, search, assignment, limit, cursor |
scene.list |
get_scene |
Shows a scene with its zones, widgets, and open issues, each with a hint | sceneId |
scene.read |
get_scene_document |
Returns the complete document of the draft and its version, the start for every change | sceneId |
scene.read |
list_scene_templates |
Lists the curated scene templates | orientation |
scene.read |
list_widgets |
Lists the widgets scenes are made of, core widgets and those of installed apps | search, installedOnly |
none |
get_widget_schema |
Returns the JSON Schema of a widget's configuration with examples | widgetType, appId |
none |
list_graphics |
Lists the graphics of the core widget graphic, searchable with German words |
search, category |
none |
list_assets |
Lists media with name, type, size, and tags, also only unused ones, without download addresses | search, tags, usage, limit, cursor |
asset.list |
list_players |
Lists displays with status, content, location, and tags, also by location, without program, or silent for a while | status, search, locationId, program, offlineSince, limit, cursor |
fleet.player.list, location.list |
get_player |
Shows a display with status, tags, program, and a running override | playerId |
fleet.player.read |
get_player_screenshot |
Returns the most recent capture of a display as an image | playerId |
fleet.player.read |
list_display_groups |
Lists the video walls with their surface and number of displays | none | fleet.player.list |
list_locations |
Lists locations with address, time zone, and number of displays | none | location.list |
get_location |
Shows a location with opening hours, the holidays of the next four weeks, and its displays | locationId |
fleet.player.list, location.read |
list_playlists |
Lists playlists with name, source, and number of items | search, sourceKind, limit, cursor |
playlist.list |
get_playlist |
Shows a playlist with source, duration, and sequence of scenes, media, and app contents | playlistId |
playlist.read |
list_schedules |
Lists programs with base, number of entries, and number of displays | search, limit, cursor |
schedule.list |
get_hygiene |
Counts what could be cleaned up and names the tool that shows the rows behind each number | offlineSince, dormantSince |
analytics.query.run |
validate_scene |
Checks a scene document without saving it | document |
scene.read |
Propose
These tools create or change drafts that appear on no display until someone publishes and assigns them. create_scene and update_scene still carry confirm, because they write content nobody has seen yet.
| Tool | What it does | Arguments | Permissions |
|---|---|---|---|
create_scene_from_template |
Creates a draft from a curated template | templateId, name |
scene.create |
create_scene |
Creates a draft from your own document, after a dry run | name, description, document, confirm |
scene.create, scene.read, scene.update |
update_scene |
Replaces the document of a scene as a whole, after a dry run | sceneId, expectedVersion, document, confirm |
scene.read, scene.update |
render_scene |
Renders a published version as a PNG image | sceneId, versionId, width |
scene.read, scene.update |
create_playlist |
Creates a playlist from scenes and media | name, description, items, defaultItemDurationMs |
playlist.create |
add_to_playlist |
Adds scenes or media to a playlist, at the end or first. App contents already in the sequence stay | playlistId, items, position |
playlist.read, playlist.update |
Write
Each of these tools first answers with a preview and changes something only on a second call with confirm: true.
| Tool | What it does | Arguments | Permissions |
|---|---|---|---|
publish_scene |
Publishes a scene, assigned displays fetch the new version | sceneId, releaseNotes, confirm |
scene.publish, scene.read |
set_player_program |
Assigns a program, scene, playlist, or media item to a display, or removes the assignment | playerId, program, confirm |
fleet.player.read, schedule.update |
set_display_group_program |
Assigns content to a video wall and with it to all of its displays | displayGroupId, program, confirm |
fleet.player.list, schedule.update |
set_player_override |
Shows other content on a display until a set time | playerId, content, until, confirm |
fleet.player.read, schedule.update |
clear_player_override |
Ends an override, the display returns to its program | playerId, confirm |
fleet.player.read, schedule.update |
send_player_command |
Sends reboot, refresh-snapshot, identify, or screenshot to a device |
playerId, command, confirm |
fleet.player.command.issue, fleet.player.read |
assign_player_location |
Assigns a display to a location or removes the assignment | playerId, locationId, confirm |
fleet.player.read, fleet.player.update, location.list |
create_location |
Creates a location | name, timeZone, address, coordinates, note, confirm |
location.create |
set_location_opening_hours |
Sets the weekly plan, special days, and federal state of a location | locationId, openingHours, region, confirm |
location.read, location.update |
create_web_display |
Creates a display that runs in a browser and returns its connection address | name, locationId, program, confirm |
fleet.web-display.manage, schedule.update |
issue_web_display_link |
Issues a new connection address for a web display | displayId, confirm |
fleet.player.read, fleet.web-display.manage |
delete_web_display |
Deletes a web display and frees its booked seat, a display with a device is rejected | displayId, confirm |
fleet.player.read, fleet.web-display.manage |
A display that shows something
create_web_display is how an assistant can show anything at all without someone connecting hardware first. It answers with the identifier of the display and a connection address. Opening that address in a browser on the target device is the one step no assistant can do, so the assistant passes it on to you.
Until then, the display is in the fleet as "Not connected" ("status": "not_connected"), with its name, its location, and, if wanted, its program. It occupies a booked seat from the start. If all seats are taken, the tool answers no_seat_available. issue_web_display_link gives the same display a new address if its browser has lost its storage.
Cleaning up
The questions about what is lying around are filters on the lists that exist anyway: list_assets with usage, list_scenes with assignment, and list_players with program or offlineSince. get_hygiene counts them and names for each number the tool that shows the rows.