Skip to content
impressBox

MCP server

The impressBox MCP server

The impressBox MCP server at https://m.impressbox.eu/mcp lets Claude (Desktop, web and mobile) and other MCP-compatible AI clients run your digital signage network through 117 tools for devices, diagnostics, content, templates, playlists and publishing. You connect by signing in with your impressBox account.

tools on the production server (15 October 2026)
117
tool groups, from device diagnostics to publishing
4
confirmation step before sensitive actions
ask_user
sign-in with your impressBox account; permissions follow your role
OAuth

What MCP is, and why it matters for signage

The Model Context Protocol (MCP) is an open standard that lets AI assistants use external tools. An MCP server describes what it can do; an MCP client, such as Claude, decides which tool to call to answer your request.

For a screen network, that means the assistant you already use can check a display, fix a schedule or publish a campaign without a separate integration. It is the same work the impressBox AI Agent does inside the dashboard, WhatsApp and Slack.

How to connect

The server is public and uses OAuth, so there is no access to request and no token to copy: add the URL to your AI client and sign in.

  1. 1

    Open the connector settings

    In Claude (Desktop, web or mobile), go to Settings → Connectors → Add custom connector.

  2. 2

    Paste the server URL

    Enter https://m.impressbox.eu/mcp. Leave Client ID and Client Secret empty: the server registers the client automatically.

  3. 3

    Sign in

    Click Connect. A browser window opens where you sign in with your impressBox account.

  4. 4

    Ask

    The connector is now available in your conversations, with the permissions of your account role. Claude asks before it runs a destructive tool.

Connector settings

Server URL:     https://m.impressbox.eu/mcp
Client ID:      leave empty
Client Secret:  leave empty
Sign-in:        your impressBox account (OAuth 2.0)

Claude (Desktop, web and mobile):
Settings → Connectors → Add custom connector

Other MCP clients use the same URL. Transport: Streamable HTTP. The client discovers the sign-in through /.well-known/oauth-protected-resource (OAuth 2.0, PKCE, scopes read and write); a request without sign-in gets HTTP 401.

Every tool, with parameters and examples

Grouped by what the tools work on. The badge shows how each tool is marked for the AI client:

  • Read-only Only reads data. Claude may run it without asking.
  • Changes data Creates or changes data but is not marked destructive. Whether Claude asks first depends on your tool permissions in Claude.
  • Destructive (asks first) Can delete or overwrite data, or act on live screens. It is marked destructive, so Claude asks before it runs.

117 tools in 4 groups. Open a tool to see its parameters and an example request; the link icon copies a link to it.

Devices & diagnostics 49 tools

Find screens, see what they are doing, fix network problems, and control power, display, sound and software, on one screen or many.

Status & info 10 tools

  • Get Devices get_devices Read-only
    Lists the devices (screens and players) in your account with their names and identifiers. Most device tools need the identifier it returns.
    Parameters of get_devices
    ParameterTypeRequiredDescription
    limitintegerNoMaximum number of devices to return (default 200).

    Example: “Show me all my screens.”

  • Find Device find_device Read-only
    Finds a device from any fragment you know: part of its identifier or name, a tag, its numeric ID or the device UUID of a balenaOS player. It searches the whole account, including devices beyond the first page of the device list.
    Parameters of find_device
    ParameterTypeRequiredDescription
    querystringYesWhat to look for: an identifier or part of it, a device name, a tag name, a numeric ID or a balenaOS device UUID (full or the start of it).
    all_accountsbooleanNoAdmin only: also search every sub-account you can switch to (slower). Default: the current account only.
    limitintegerNoMaximum number of matches (default 25, max 100).

    Example: “Find the device whose ID contains 7F3A.”

  • Get Device Status get_device_status Read-only
    Shows the live status of your devices: online or offline, when each was last seen, which playlist and content it is playing, and any errors.
    Parameters of get_device_status
    ParameterTypeRequiredDescription
    device_namestringNoOnly this device, given by its identifier from get_devices (not its name).
    online_onlybooleanNoReturn only devices that are online.
    offline_onlybooleanNoReturn only devices that are offline.
    limitintegerNoMaximum number of devices to return (default 100).

    Example: “Which screens are offline right now?”

  • Get Device Info get_device_info Read-only
    Shows the profile of a device: name, address and map coordinates, contact phone, tags and monitoring settings.
    Parameters of get_device_info
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device (from get_devices).

    Example: “What address is set for the Lobby screen?”

  • Get Device Settings get_device_settings Changes data
    Shows the configuration of a device, such as display rotation and resolution, audio, network interfaces and brightness. The assistant reads it before changing anything with update_device_settings.
    Parameters of get_device_settings
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device (from get_devices).

    Example: “Which resolution and rotation is the Entrance LED set to?”

  • Get Device Schedules get_device_schedules Read-only
    Shows the schedules of one device, several devices or all of them, as the Schedules view of the dashboard does, optionally for a date range.
    Parameters of get_device_schedules
    ParameterTypeRequiredDescription
    device_identifierstringNoOne device identifier.
    device_identifiersarrayNoSeveral device identifiers.
    all_devicesbooleanNoSet to true for every device you can access.
    start_datestringNoStart of the date range (YYYY-MM-DD).
    end_datestringNoEnd of the date range (YYYY-MM-DD).

    Example: “What is scheduled on the Lobby screen next week?”

  • Take Device Screenshot take_device_screenshot Read-only
    Takes a screenshot of what a screen shows right now and returns the image. It needs a physical player or TV; web-based players cannot take screenshots.
    Parameters of take_device_screenshot
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    hdbooleanNoCapture in high definition (default true).

    Example: “Show me what the Lobby screen is displaying.”

  • Get Device Logs get_device_logs Read-only
    Returns the raw log entries of a device with timestamps, to see what happened on a screen. Without a time window it covers the last six hours.
    Parameters of get_device_logs
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    limitintegerNoNumber of log entries (default 500). One of: 100, 200, 500, 800.
    time_fromstringNoStart of the time window (ISO 8601). Default: six hours ago.
    time_tostringNoEnd of the time window (ISO 8601). Default: now.

    Example: “Show the logs of the Entrance LED from this morning.”

  • Get Device Action History get_device_action_history Read-only
    Shows what was actually sent to a device and when: published playlists, display on and off, reboots, volume changes and other commands, with their source and who sent them. The history survives reboots and log rotation.
    Parameters of get_device_action_history
    ParameterTypeRequiredDescription
    devicestringYesIdentifier of the device.
    action_typestringNoOnly this kind of action, for example playlist, display_on, display_off, reboot or volume.
    time_fromstringNoStart of the window (ISO date-time or YYYY-MM-DD).
    time_tostringNoEnd of the window (ISO date-time or YYYY-MM-DD).
    limitintegerNoMaximum number of records.

    Example: “Who turned off the Lobby screen yesterday?”

  • Get Device State History get_device_state_history Read-only
    Shows the state timeline of a device: when it went online or offline, when its display was switched on or off, and when it reported an error.
    Parameters of get_device_state_history
    ParameterTypeRequiredDescription
    devicestringNoIdentifier of the device.
    statestringNoKeep only this state. One of: operational, operational_off, offline, error, new, ignored.
    only_changesbooleanNoOnly the changes of state (default), or every raw sample.
    time_fromstringNoStart of the window.
    time_tostringNoEnd of the window.
    limitintegerNoMaximum number of records (default 500, max 2000).

    Example: “When was the Lobby screen offline this week?”

Diagnostics 7 tools

  • Diagnose Device diagnose_device Read-only
    Explains why a screen is offline, not playing or showing an error: it reads the live status and error codes of the device and returns the likely cause and a step-by-step fix for each. It changes nothing on the device.
    Parameters of diagnose_device
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device (from get_devices).

    Example: “Why is the Entrance LED not playing anything?”

  • Check Device Reachability check_device_reachability Read-only
    Tests from the device itself whether it can reach the internet and the impressBox servers (DNS, TCP and TLS checks), even when the dashboard shows it offline. It tells a dead device apart from a firewall, DNS or router problem and lists the addresses a local IT team has to allow.
    Parameters of check_device_reachability
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.
    interfacestringNoTest only this network interface, for example eth0 or wlan0. Default: the interface with the default route.

    Example: “The Lobby player shows offline. Can it reach the internet at all?”

  • Ping Target From Device ping_device_target Read-only
    Pings an IP address or host name from a device and reports packet loss and round-trip times, to see whether it reaches a server, a router or another player and how good the link is. It works on devices that appear offline.
    Parameters of ping_device_target
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.
    targetstringYesIP address or host name to ping, for example 8.8.8.8.
    countintegerNoNumber of pings (default 5).
    packet_sizeintegerNoPayload size in bytes (default 56).
    interfacestringNoNetwork interface to ping from, for example eth0.

    Example: “Can the Lobby player reach the router at 192.168.1.1?”

  • Traceroute From Device traceroute_from_device Read-only
    Traces the network path from a device to a host, hop by hop with the latency of each, to show where the connection breaks: in the local network, at the internet provider or further on.
    Parameters of traceroute_from_device
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.
    targetstringYesIP address or host name to trace to.
    max_hopsintegerNoMaximum number of hops (default 20).
    interfacestringNoNetwork interface to trace from.

    Example: “Trace the route from the Entrance player to 8.8.8.8.”

  • Get Device Network Info get_device_network_info Read-only
    Shows the current network setup of a device: its interfaces with IPv4 addresses and link state, the default gateway, DNS servers and the public IP address it goes out from.
    Parameters of get_device_network_info
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.

    Example: “What IP address does the Lobby player have?”

  • Check Device Time Sync check_device_time_sync Read-only
    Checks the clock and time zone of a device and, if you name a time server, how far off it is. A wrong clock is a common reason for schedules that fire at the wrong time and for certificate errors.
    Parameters of check_device_time_sync
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.
    ntp_hoststringNoTime server to compare with, for example pool.ntp.org. Leave empty to report only the clock and time zone of the device.

    Example: “Is the clock right on the Lobby player?”

  • List Device Network Neighbours list_device_network_neighbours Read-only
    Lists the other devices on the local network of a player (IP and MAC addresses from its ARP table), to confirm it is on the right network, spot IP conflicts, or find the router and other players nearby.
    Parameters of list_device_network_neighbours
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.

    Example: “Which other devices can the Lobby player see on its network?”

Network & LAN setup 6 tools

  • Configure Device Network configure_device_network Destructive (asks first)
    Sets a static IP address, subnet mask, gateway or DNS servers on an existing network interface of a device; only the values you give change. A wrong address can make the device unreachable, so the assistant confirms the change first; to join a Wi-Fi network, use configure_device_wifi.
    Parameters of configure_device_network
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    interfacestringNoInterface to configure, for example eth0 or wlan0 (default eth0).
    ip_addressstringNoStatic IP address.
    subnet_maskstringNoSubnet mask.
    gatewaystringNoDefault gateway.
    dnsstringNoDNS server or servers, separated by commas or spaces.

    Example: “Give the Lobby player the static IP 192.168.1.50 with gateway 192.168.1.1.”

  • Configure Device WiFi configure_device_wifi Destructive (asks first)
    Connects a device to a Wi-Fi network by name and password, or turns the device into a Wi-Fi hotspot. The device may be unreachable for a moment while it reconnects, so the assistant confirms first.
    Parameters of configure_device_wifi
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    ssidstringYesName (SSID) of the Wi-Fi network.
    passwordstringNoWi-Fi password; leave out for an open network.
    security_typestringNoopen, wep, wpa, wpa2 or wpa2enterprise (default wpa2).
    hiddenbooleanNoSet to true if the network does not broadcast its name.
    modestringNoclient (default) joins the network; hotspot makes the device an access point with this name and password that hands out addresses.
    interfacestringNoWireless interface (default wlan0).
    ip_addressstringNoStatic IP address; leave out to get one by DHCP.
    subnet_maskstringNoSubnet mask of the static address.
    gatewaystringNoGateway of the static address.

    Example: “Move the Lobby player to the Wi-Fi network OfficeWiFi.”

  • Start DHCP Server start_device_dhcp_server Destructive (asks first)
    Makes a player hand out IP addresses (DHCP) on its local network for a limited time, for example so that factory-new TVs on an isolated switch get an address during installation. It stops by itself and refuses to start when another DHCP server already answers on that network.
    Parameters of start_device_dhcp_server
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.
    interfacestringNoInterface to serve on, for example eth0. Default: the interface with the default route.
    ttl_minutesnumberNoStop automatically after this many minutes (default 15, max 240).
    forcebooleanNoStart even if another DHCP server answers on the network. Only for a network you control.
    pool_startstringNoFirst address of the pool (IPv4); give it together with pool_end.
    pool_endstringNoLast address of the pool (IPv4); give it together with pool_start.
    gatewaystringNoGateway handed to the clients. Default: taken from the live interface.
    dnsstringNoDNS servers handed to the clients, separated by commas or spaces.
    lease_minutesnumberNoLease time in minutes.
    reservationsarrayNoFixed addresses by MAC address, so that the listed devices always get the same IP. Needs a player version that supports reservations.
    pin_known_devicesbooleanNoAlso give the other devices of this account on the subnet their current IP addresses, pinned by MAC, so the addresses do not change. Needs a player version that supports reservations.

    Example: “Let the Lobby player hand out IP addresses for 30 minutes so the new TVs get one.”

  • Stop DHCP Server stop_device_dhcp_server Destructive (asks first)
    Stops a temporary DHCP server on a player and restores the interface to its normal settings. It is safe to run when nothing is running.
    Parameters of stop_device_dhcp_server
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.
    interfacestringNoInterface to stop. Empty: every temporary server on the device.

    Example: “Stop the DHCP server on the Lobby player.”

  • DHCP Server Status get_device_dhcp_server_status Read-only
    Shows whether a player is handing out IP addresses and which devices took a lease (IP and MAC), for example to check that new screens got an address before installing onto them.
    Parameters of get_device_dhcp_server_status
    ParameterTypeRequiredDescription
    device_identifierstringYesThe device: its identifier, numeric ID or name.
    interfacestringNoOnly this interface. Empty: all interfaces.

    Example: “Which TVs got an address from the Lobby player?”

  • Deploy Screens (Static IP) deploy_screens_static Destructive (asks first)
    Moves the screens on a store network from DHCP to fixed IP addresses: it finds the account's screens on the subnet of a serving player, pins each one to its current address with a temporary DHCP server and switches it to that static IP (applied on balenaOS and x86 players). It is a dry run that only returns the plan until you apply it.
    Parameters of deploy_screens_static
    ParameterTypeRequiredDescription
    device_identifierstringYesThe serving player on the store network, which runs the DHCP server: its identifier, numeric ID or name.
    apply_staticbooleanNofalse (default): only return the plan. true: start the DHCP server and switch the screens to static addresses.
    targetsarrayNoOnly these screens (identifier, numeric ID or name). Default: every device of the account on the subnet.
    interfacestringNoInterface the serving player hands out addresses on. Default: its default-route interface.
    target_interfacestringNoInterface on each screen that gets the static address (default eth0).
    gatewaystringNoGateway written into the static setup of each screen. Default: the one the DHCP server hands out.
    dnsstringNoDNS servers for the static setup of each screen, separated by commas or spaces.
    ttl_minutesnumberNoStop the DHCP server automatically after this many minutes.
    lease_minutesnumberNoLease time in minutes for the handed-out addresses.
    include_offlinebooleanNoAlso switch screens that are offline now (default false: they are skipped).
    forcebooleanNoStart the DHCP server even if another one is detected. Only for a network you control.

    Example: “Plan fixed IP addresses for all screens on the network of the Store 12 player, but do not change anything yet.”

Power, display & audio 11 tools

  • Display On display_on Destructive (asks first)
    Turns the display of a screen on right now. For daily on and off times, use schedule_display.
    Parameters of display_on
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.

    Example: “Turn on the Lobby screen.”

  • Display Off display_off Destructive (asks first)
    Turns the display of a screen off right now. For daily on and off times, use schedule_display.
    Parameters of display_off
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.

    Example: “Turn off the screen in the meeting room.”

  • Schedule Display schedule_display Destructive (asks first)
    Sets recurring on and off times for a screen: the same hours every day, or different hours for each weekday.
    Parameters of schedule_display
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device (from get_devices).
    on_timestringNoSwitch-on time, HH:MM, applied every day.
    off_timestringNoSwitch-off time, HH:MM, applied every day; 00:00 is midnight.
    schedulesarrayNoDifferent hours per weekday: a list of entries, each with its days, on_time and off_time. Days that are not listed get no schedule.

    Example: “Keep the Lobby screen on from 8:00 to 20:00 on weekdays and from 10:00 to 16:00 on Saturday, and off on Sunday.”

  • Reboot Device reboot_device Destructive (asks first)
    Restarts a player after you confirm. It needs a physical device; web-based players cannot be rebooted.
    Parameters of reboot_device
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.

    Example: “Restart the player of the Entrance LED.”

  • Set Volume set_volume Destructive (asks first)
    Sets the volume of a device, from 0 to 100.
    Parameters of set_volume
    ParameterTypeRequiredDescription
    device_idstringYesIdentifier of the device (the text identifier, not the numeric ID).
    volumeintegerYesVolume level from 0 (silent) to 100 (maximum).

    Example: “Set the volume in the café to 30%.”

  • Mute Device mute_device Destructive (asks first)
    Mutes the sound of a device without changing its volume level or anything else.
    Parameters of mute_device
    ParameterTypeRequiredDescription
    device_idstringYesIdentifier of the device (the text identifier, not the numeric ID).

    Example: “Mute the Lobby screen.”

  • Unmute Device unmute_device Destructive (asks first)
    Unmutes a device that was muted with mute_device; the volume level stays as it was.
    Parameters of unmute_device
    ParameterTypeRequiredDescription
    device_idstringYesIdentifier of the device (the text identifier, not the numeric ID).

    Example: “Unmute the Lobby screen.”

  • Send Controller Message send_controller_message Destructive (asks first)
    Sends a player command to one or more devices, including commands without a tool of their own: stop, next item, pause and resume, shut down, upgrade the player app, clear stored media or set the backlight brightness.
    Parameters of send_controller_message
    ParameterTypeRequiredDescription
    device_identifierstring or arrayYesIdentifier of the device, or a list of identifiers.
    device_identifiersarrayNoAnother way to give several device identifiers.
    actionstringYesThe command, for example stop, next, toggle_play, quit, reboot, shutdown, upgrade_app, clean_up, screenshot or backlight.
    payloadobjectNoExtra values for the command, for example {"backlight": 50} for the brightness or {"full": true} for clean_up.

    Example: “Skip to the next item on the Lobby screen.”

  • Send Remote Keys to Panel send_remote_keys Destructive (asks first)
    Presses remote-control keys on an LG or Samsung display panel that is wired to the player over RS-232, to move through the panel's own on-screen menu, and can return a screenshot of where the menu ended up.
    Parameters of send_remote_keys
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the player that is wired to the panel.
    keysarrayYesKeys to press, in order, for example menu, down, down, ok. Known keys: power, input, menu, home, settings, up, down, left, right, ok, enter, back, return, exit, or a raw hex code.
    set_idintegerNoLG Set ID of the panel (default 1).
    delay_msintegerNoPause between key presses in milliseconds (default 400, max 5000).
    screenshotbooleanNoTake a screenshot after the last key and return it (default false).

    Example: “On the Lobby panel, open the menu, go down twice and press OK, then show me the screen.”

  • Update Device Settings update_device_settings Destructive (asks first)
    Changes the settings of a device, such as display rotation and resolution, audio, network interfaces and brightness, including brightness that follows the daylight at the screen's location. Rotation and resolution changes restart the player and apply within a couple of minutes.
    Parameters of update_device_settings
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    reconfigurearrayNoSettings areas to apply again even if the stored value is already right, for example display_rotate, to re-sync a screen. Not needed for normal changes.
    settingsobjectYesThe settings to change, nested as get_device_settings returns them, for example {"DEVICE": {"display": {"display_rotate": 270}}}.

    Example: “Rotate the Entrance screen to portrait.”

  • Remove Screen On/Off Times remove_display_schedules Destructive (asks first)
    Removes the recurring on and off times from one screen, several screens or all of them. It first shows which schedules would be removed and changes nothing until you confirm. A schedule shared with other screens stays on those, schedules that come from a device tag are reported but not changed, and playlist schedules stay unless you include them. To change the hours instead, use schedule_display.
    Parameters of remove_display_schedules
    ParameterTypeRequiredDescription
    device_identifiersarrayNoScreens to clear: identifiers from get_devices (unique names work too).
    all_devicesbooleanNoSet to true to clear every screen in the account.
    schedule_idsarrayNoOnly these schedules, by their IDs from get_device_schedules.
    include_playlist_schedulesbooleanNoAlso remove playlist schedules, not only on and off times. Default false.
    confirmbooleanNoLeave out for a preview of what would be removed; true removes the schedules.

    Example: “Remove the on/off times from the Lobby and Entrance LED screens.”

Synchronized playback 2 tools

  • Check Device Sync check_device_sync Read-only
    Checks whether screens that should play in sync (a video wall, or screens looping the same content in lockstep) are set up for it: grouped as a master with followers, on the same local subnet, and playing the same content or playlists with matching clip lengths. It explains what is wrong if not.
    Parameters of check_device_sync
    ParameterTypeRequiredDescription
    device_identifierstringNoOne screen of the group (the master or a follower); the rest of the group is found automatically.
    device_identifiersarrayNoOr a list of screens to check together as one group.
    assume_prefixintegerNoSubnet prefix to assume when a device reports no netmask (default 24).

    Example: “Are the four screens of the lobby video wall set up to play in sync?”

  • Configure Device Sync configure_device_sync Destructive (asks first)
    Sets up synchronized playback: it checks that the screens share a subnet, then publishes one playlist to the master and its followers with sync switched on, so that they play in lockstep. It publishes to live screens, so the assistant asks first.
    Parameters of configure_device_sync
    ParameterTypeRequiredDescription
    master_identifierstringYesIdentifier of the master screen that the others follow.
    slave_identifiersarrayYesIdentifiers of the follower screens that keep in sync with the master.
    playlist_idintegerNoPlaylist to play in sync. Default: the playlist the master plays now.
    playlist_namestringNoName of the playlist, if the ID is not known.
    assume_prefixintegerNoSubnet prefix to assume when a device reports no netmask (default 24).
    forcebooleanNoGo ahead even if the same-subnet check fails.

    Example: “Make the three Window screens play the Summer playlist in sync, with Window 1 as the master.”

Updates & apps 3 tools

  • Get Device Releases get_device_releases Read-only
    Lists the software releases available to a balenaOS player, with their version and status, and shows which release the player is pinned to.
    Parameters of get_device_releases
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.

    Example: “Which player software versions are available for the Lobby player?”

  • Update Device Release update_device_release Destructive (asks first)
    Pins a balenaOS player to a specific software release, or sets it to follow the latest one, and checks in the background that the update arrived.
    Parameters of update_device_release
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    release_idintegerNoRelease ID from get_device_releases. Leave out to follow the latest release.

    Example: “Update the Lobby player to the latest software release.”

  • Install App to LAN Devices install_app Destructive (asks first)
    Installs the impressBox player onto LG webOS signage TVs on the same local network, through a player that already runs there. Start with a scan, which lists the TVs without touching them; an install rewrites the SI Server settings of each TV and restarts it.
    Parameters of install_app
    ParameterTypeRequiredDescription
    device_identifierstringYesThe installer: an online player on the same network as the TVs (identifier, numeric ID or name).
    scanbooleanNoOnly list the LG TVs on the network (model, serial number, webOS version and whether Force Mode is needed), without installing anything. The safe first step.
    mass_modebooleanNoInstall onto every reachable LG TV on the network. Default false; use it only on a network you control, after a scan.
    targetsarrayNoIP addresses of the TVs to install to (when mass_mode is off).
    force_mode_keystringNoForce Mode key for TVs that already run an app. Leave empty for the default key.
    app_urlstringNoAddress of a different player package (IPK) to install. Leave empty for the default build.
    request_idstringNoID of an installation that is already running, to read its progress without starting a new one.

    Example: “Scan the network of the Lobby player for LG TVs we could install the player on.”

Organizing devices 10 tools

  • Create Device create_device Changes data
    Adds a new screen to your account with the six-digit activation code (pairing code) that the screen shows, and gives it a name.
    Parameters of create_device
    ParameterTypeRequiredDescription
    namestringYesName of the new device.
    activation_codestringYesThe activation (pairing) code shown on the screen or on its setup page.

    Example: “Add a new screen with pairing code 123456 and call it Lobby.”

  • Rename Device rename_device Destructive (asks first)
    Changes the name of a device.
    Parameters of rename_device
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    new_namestringYesThe new name.

    Example: “Rename the Lobby screen to Lobby left.”

  • Update Device Info update_device_info Destructive (asks first)
    Updates the profile of a device: name, address, map coordinates, contact phone, monitoring settings and photos of the installation.
    Parameters of update_device_info
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.
    namestringNoDisplay name.
    addressstringNoAddress or description of the location.
    latitudenumberNoLatitude of the location.
    longitudenumberNoLongitude of the location.
    contact_phonestringNoContact phone number for the site.
    offline_thresholdstringNoOffline threshold for monitoring; leave empty to keep the current value.
    ignore_errorsbooleanNoIgnore errors from this device.
    photointegerNoMedia-library file ID of a photo of the screen in its real location (upload it with upload_to_filer first).
    photo_deviceintegerNoMedia-library file ID of a photo of the device hardware.
    photo_powerintegerNoMedia-library file ID of a photo of the network switch or port.
    photo_audiointegerNoMedia-library file ID of a photo of the storage or audio equipment.

    Example: “Set the address of the Lobby screen to Main Street 1, Vilnius.”

  • Delete Device delete_device Destructive (asks first)
    Removes a device from your account after you confirm. To give a device to another account and keep its history, use move_device instead.
    Parameters of delete_device
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device.

    Example: “Remove the old Test screen from my account.”

  • Move Device move_device Changes data
    Transfers a device to another account without deleting and pairing it again, so its history and pairing stay, and by default its schedules and settings too. impressBox staff can move any device; an account can give away the devices it owns.
    Parameters of move_device
    ParameterTypeRequiredDescription
    device_identifierstringYesIdentifier of the device to move (from get_devices).
    new_ownerstringYesThe receiving account: username, email address or user ID.
    keep_schedulesbooleanNoKeep the schedules of the device (default true).
    keep_settingsbooleanNoKeep the settings of the device (default true).

    Example: “Move the Lobby and Entrance screens to the account shop-riga.”

  • Get Device Tags get_device_tags Read-only
    Lists devices with their tags (also called device categories), optionally only those with certain tags. Tags group screens, for example by store, city or zone, for scheduling and management.
    Parameters of get_device_tags
    ParameterTypeRequiredDescription
    limitintegerNoDevices per page (default 200, max 2000).
    offsetintegerNoWhere to start, for paging through the whole list with the returned total.
    tag_namesarrayNoOnly devices with these tag names.
    tag_idsarrayNoOnly devices with these tag IDs.
    matchstringNoWith tag filters: all (default) needs every tag, any needs at least one. One of: all, any.

    Example: “Which screens are tagged Entrance?”

  • Resolve Devices by Tag resolve_devices Read-only
    Finds screens by their tags instead of their names, for example the screen tagged with a store number and a department such as Meat or Confectionery. Useful in retail networks where device names do not follow a pattern.
    Parameters of resolve_devices
    ParameterTypeRequiredDescription
    storestringNoStore-number tag, for example 101.
    zonestringNoDepartment or zone, for example Meat or Confectionery (Lithuanian names work too), or an exact tag name.
    tagsarrayNoMore exact tag names that the screen also needs to have.
    matchstringNoall (default): the screen needs every tag. any: at least one of them. One of: all, any.
    accountstringNoAdmin: look in this sub-account (username) instead of the current one.
    all_accountsbooleanNoAdmin: look in every sub-account you can switch to.

    Example: “Which screen is in the meat department of store 101?”

  • Create Device Tag create_device_tag Changes data
    Creates a device tag, or a group of tags, for grouping screens, for example by city or store. Device tags are separate from content categories.
    Parameters of create_device_tag
    ParameterTypeRequiredDescription
    namestringYesName of the tag.
    parent_idintegerNoID of the tag group to create it in. Leave out to create a new top-level group.
    colorstringNoColor code, for example #FF0000.

    Example: “Create a device tag Kaunas in the Cities group.”

  • Assign Devices to Tag assign_devices_to_tag Changes data
    Adds one or more tags to one or more devices and keeps the tags they already have.
    Parameters of assign_devices_to_tag
    ParameterTypeRequiredDescription
    device_identifiersarrayYesIdentifiers of the devices (from get_devices, not their names).
    tag_idsarrayYesIDs of the tags to add (from get_device_tags).

    Example: “Tag the Lobby and Entrance screens with Vilnius.”

  • Delete Device Tag delete_device_tag Destructive (asks first)
    Deletes a device tag together with every tag nested under it. The screens themselves stay; they only lose the deleted tags. If the tag still has nested tags or screens, it first reports what would be removed and deletes only after you confirm. This cannot be undone.
    Parameters of delete_device_tag
    ParameterTypeRequiredDescription
    tag_idintegerYesID of the tag to delete (from get_device_tags).
    forcebooleanNoDelete even if the tag still has nested tags or screens. Default false.

    Example: “Delete the device tag Summer promo and the tags under it.”

Content & templates 37 tools

Bring in files, web pages, YouTube, Power BI and Canva designs, build HTML templates with editable fields, and organize content and where and when it may play.

Content library 5 tools

  • Get Content Items get_content_items Read-only
    Lists your content items, such as images, videos, web pages and templates, or finds them by title; an exact title match comes first. The list is paged, so large libraries are searched with a query.
    Parameters of get_content_items
    ParameterTypeRequiredDescription
    querystringNoPart of the title to look for, not case-sensitive; an exact match is listed first.
    limitintegerNoMaximum number of items (default 200, max 1000).
    offsetintegerNoNumber of items to skip, for paging through a long result.

    Example: “Find the content called Summer sale.”

  • Preview Content preview_content Read-only
    Creates a preview link, so you can look at a content item in a browser before it goes on a screen.
    Parameters of preview_content
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item.

    Example: “Give me a preview link for content 1234.”

  • Rename Content rename_content Destructive (asks first)
    Renames a content item.
    Parameters of rename_content
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item.
    new_namestringYesThe new title.

    Example: “Rename content 1234 to Spring menu.”

  • Duplicate Content duplicate_content Changes data
    Makes a copy of a content item, for example to change a version without touching the original.
    Parameters of duplicate_content
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item to copy.

    Example: “Make a copy of the Weekend offer banner.”

  • Delete Content delete_content Destructive (asks first)
    Deletes content items after you confirm, up to 100 in one go, or only takes them out of one category.
    Parameters of delete_content
    ParameterTypeRequiredDescription
    content_idintegerNoID of one content item.
    content_idsarrayNoIDs of several content items (up to 100 per call). The result lists what was deleted and what failed.
    category_idintegerNoOnly take the items out of this category instead of deleting them.

    Example: “Delete all content items with Christmas 2025 in the title.”

Upload & import 9 tools

  • Create Remote Content from Upload create_remote_content_from_upload Changes data
    Adds files as content: one or many, sent directly or from a web address, including a .zip archive whose files each become a content item. It also imports Canva designs, and can extend images that do not fit the screen shape with generative AI (outpainting) after you agree.
    Parameters of create_remote_content_from_upload
    ParameterTypeRequiredDescription
    file_base64stringNoThe file itself, base64-encoded (or as a data: URI). Preferred for files you have locally.
    urlstringNoWeb address to download the file from, or a Canva design link. Give either this or file_base64.
    filenamestringNoOriginal file name with extension, for example promo.mp4, so the file type is detected correctly.
    content_typestringNoMIME type, for example image/png or video/mp4. Worked out from the file name when left out.
    titlestringYesTitle of the content item.
    category_idsarrayNoCategories to put the content in.
    duration_secondsnumberNoPlay time in seconds for video or audio (more than 0).
    convertbooleanNoWhether to convert the content for the players (applies to all files).
    date_startstringNoWhen playback starts: YYYY-MM-DD (the start of that day) or YYYY-MM-DDTHH:MM.
    date_stopstringNoWhen playback stops: YYYY-MM-DD (the end of that day) or YYYY-MM-DDTHH:MM.
    filesarrayNoSeveral files at once: a list of items, each with a title and either file_base64 or url (optionally filename, content_type and duration_seconds).
    skip_outpaintbooleanNoUpload an image as it is, without outpainting.
    outpaint_confirmedbooleanNoYou agreed that the image should be outpainted.
    upload_outpainted_confirmedbooleanNoYou agreed that the outpainted preview should be saved.
    outpainted_urlstringNoAddress of the outpainted preview to save.
    target_aspect_ratiostringNoShape to outpaint to, for example 9:16, 16:9 or 1920x1080.

    Example: “Upload this video as Spring promo and play it from 1 to 30 April.”

  • Get Media Upload URL get_media_upload_url Read-only
    Gets a 15-minute upload link for a large file, such as a video or a full-resolution image, straight to impressBox storage. The AI client uploads the file to that link itself, so it needs a client that can make HTTP requests; the file is then added with create_remote_content_from_upload.
    Parameters of get_media_upload_url
    ParameterTypeRequiredDescription
    filenamestringYesFile name with extension, for example promo.mp4; it decides the media type.
    content_typestringNoMIME type, for example video/mp4. Worked out from the file name when left out.
    convertbooleanNoWhether the file needs converting. Default: no for images; yes for video, audio and documents.

    Example: “Upload the 4K video in this folder to impressBox as Showroom loop.”

  • Create Remote URL Content create_remote_url_content Changes data
    Adds a web page, dashboard or web app as content: the player opens the address live, nothing is downloaded or converted.
    Parameters of create_remote_url_content
    ParameterTypeRequiredDescription
    urlstringYesThe web address to show, for example https://example.com/dashboard.
    titlestringNoTitle of the content item. Default: taken from the address.
    durationintegerNoHow long to show it, in seconds (default 10).
    category_idsarrayNoCategories to put the content in.

    Example: “Add our sales dashboard at https://example.com/dashboard as content, 30 seconds each time.”

  • Check URL check_url Read-only
    Finds out why a web page does not come up on a screen: the name does not resolve, the server cannot be reached, its certificate is not trusted, it returns an error, or the page refuses to be shown in a frame. The check runs from the impressBox server, so an address that exists only on a local network cannot be confirmed.
    Parameters of check_url
    ParameterTypeRequiredDescription
    urlstringNoThe address to check.
    content_idintegerNoOr the ID of an existing web-page content item, to check its address.

    Example: “Why is the dashboard page blank on the Office screen?”

  • Create YouTube Content create_youtube_content Changes data
    Adds a YouTube video as content; the title is taken from YouTube unless you give one.
    Parameters of create_youtube_content
    ParameterTypeRequiredDescription
    video_urlstringYesThe YouTube video address (youtube.com/watch?v=… or youtu.be/…).
    titlestringNoTitle of the content item. Default: the title on YouTube.
    category_idsarrayNoCategories to put the content in.
    date_startstringNoStart of playback (ISO date-time).
    date_stopstringNoEnd of playback (ISO date-time).

    Example: “Add this YouTube video as content and call it Brand film.”

  • Create YouTube Playlist Content create_youtube_playlist_content Changes data
    Adds every video of a YouTube playlist as a separate content item, with titles taken from YouTube.
    Parameters of create_youtube_playlist_content
    ParameterTypeRequiredDescription
    playlist_urlstringYesThe YouTube playlist address (it contains list=).
    category_idsarrayNoCategories to put the new items in.

    Example: “Import all videos from this YouTube playlist into the Videos category.”

  • Create Power BI Content create_powerbi_content Changes data
    Turns a Power BI report link into live content that shows the report on screen. If your Power BI account is not connected yet, you first get a sign-in link.
    Parameters of create_powerbi_content
    ParameterTypeRequiredDescription
    urlstringYesAddress of the Power BI report (app.powerbi.com).
    titlestringNoTitle of the content item.
    durationintegerNoPlay time in seconds (default 10).
    category_idsarrayNoCategories to put the content in.

    Example: “Put this Power BI sales report on the office screens.”

  • Update Canva Content update_canva_content Destructive (asks first)
    Refreshes a content item made from a Canva design, so the screens show its latest version, or points it to a different design.
    Parameters of update_canva_content
    ParameterTypeRequiredDescription
    content_idintegerYesID of the Canva content item.
    new_urlstringNoA different Canva design link, only to switch designs. Template links do not work: open the template in Canva and share the design link.

    Example: “Refresh the Canva menu design; I changed the prices.”

  • Upload to Filer upload_to_filer Changes data
    Uploads an image or another file to the media library (Filer) and returns its file ID. Templates and device photos refer to media-library files by that ID.
    Parameters of upload_to_filer
    ParameterTypeRequiredDescription
    file_base64stringNoThe file itself, base64-encoded (or as a data: URI). Preferred for files you have locally.
    urlstringNoWeb address of the file to download. Give either this or file_base64.
    filenamestringNoOriginal file name with extension, so the file type is detected correctly.
    content_typestringNoMIME type, for example image/png. Worked out from the file name when left out.
    titlestringNoName of the file in the library. Default: the original file name.

    Example: “Upload this logo to the media library so I can use it in the menu template.”

Templates 10 tools

  • Get Parameterized Templates get_parameterized_templates Read-only
    Lists the HTML templates you can use, with the fields (parameters) each one accepts.
    Parameters of get_parameterized_templates
    ParameterTypeRequiredDescription
    limitintegerNoMaximum number of templates (default 100).

    Example: “Which templates can I use for a menu board?”

  • Get Template Context get_template_context Read-only
    Shows the fields of a template and, for content made from it, the current value of each field, for example the prices on a menu board.
    Parameters of get_template_context
    ParameterTypeRequiredDescription
    content_idintegerNoID of a template-based content item: returns its current values and the fields of its template.
    template_idintegerNoID of a template: returns only the fields it accepts.

    Example: “What prices are on the Lunch menu right now?”

  • Get Template Code get_template_code Read-only
    Returns the full HTML, CSS and JavaScript code of a template and the definition of its fields, as the starting point for changing its layout, styling or behavior.
    Parameters of get_template_code
    ParameterTypeRequiredDescription
    template_idintegerYesID of the template.

    Example: “Show me the code of the Lunch menu template.”

  • Create Template create_template Changes data
    Creates a new template from HTML, CSS and JavaScript, with the fields people can fill in and a sample content item. It is shown as a still image by default, or rendered as a video for animated templates.
    Parameters of create_template
    ParameterTypeRequiredDescription
    namestringYesName of the template.
    contentstringYesThe complete HTML, CSS and JavaScript code of the template.
    context_schemaobjectYesJSON Schema of the fields people can fill in.
    context_valuesobjectNoValues for the sample content item.
    media_typestringNoimage (default) renders a still image; video renders the animation as a video. One of: image, video.

    Example: “Create a template for a daily specials board with a title and three dishes with prices.”

  • Create Template Content create_template_content Changes data
    Creates a content item from a template by filling in its fields, for example from text, a spreadsheet or a file you share. You see the values it will use and confirm them first.
    Parameters of create_template_content
    ParameterTypeRequiredDescription
    template_idintegerYesID of the template.
    template_contextobjectYesValues for the fields of the template, as a JSON object that matches its schema.
    titlestringNoTitle of the content item. Default: the template name.
    durationintegerNoPlay time in seconds (default 10).
    category_idsarrayNoCategories to put the content in.
    date_startstringNoStart of playback (ISO date-time).
    date_stopstringNoEnd of playback (ISO date-time).

    Example: “Make a lunch menu from the Lunch template with these dishes and prices.”

  • Update Template Context update_template_context Destructive (asks first)
    Changes some fields of a template-based content item, such as a price, a text or a color, and leaves the rest as it is.
    Parameters of update_template_context
    ParameterTypeRequiredDescription
    content_idintegerYesID of the template-based content item.
    context_updatesobjectYesThe fields to change, with their new values.

    Example: “Change the soup price on the Lunch menu to 3.50 €.”

  • Update Template Code update_template_code Destructive (asks first)
    Replaces the HTML, CSS and JavaScript code of a template or the definition of its fields, for example to change the layout, add a live clock or make it fit any resolution. You see the proposed change and confirm it first.
    Parameters of update_template_code
    ParameterTypeRequiredDescription
    template_idintegerYesID of the template.
    contentstringNoThe complete new HTML, CSS and JavaScript code (it replaces the old code).
    context_schemaobjectNoThe complete new field definitions as JSON Schema (they replace the old ones).
    context_valuesobjectNoValues for the sample content item of the template.

    Example: “Add a live clock to the top-right corner of the Lobby info template.”

  • Rename Template Property rename_template_property Destructive (asks first)
    Changes the label that people see for a template field in the editor, without renaming the field itself. It works on your own templates, not on public ones.
    Parameters of rename_template_property
    ParameterTypeRequiredDescription
    template_idintegerYesID of the template.
    property_keystringYesKey of the field in the schema, for example RowA (not its current label).
    new_titlestringYesThe new label.

    Example: “In the Lunch template, rename the field RowA to Main dish.”

  • Duplicate Template duplicate_template Changes data
    Copies a template with its code, fields and categories, and gives the copy its own sample content, for example before making big changes.
    Parameters of duplicate_template
    ParameterTypeRequiredDescription
    template_idintegerYesID of the template to copy.
    new_namestringNoName of the copy. Default: the original name followed by "copy".

    Example: “Make a copy of the Lunch template called Lunch summer.”

  • Create Two-Column Content create_two_columns_content Changes data
    Creates a two-column layout with rotating images or videos in each column, with adjustable column widths and slide timing. It adapts to any screen resolution.
    Parameters of create_two_columns_content
    ParameterTypeRequiredDescription
    left_file_idsarrayYesMedia-library file IDs for the left column.
    right_file_idsarrayYesMedia-library file IDs for the right column.
    left_delaynumberNoSeconds between slides on the left (default 5).
    right_delaynumberNoSeconds between slides on the right (default 5).
    titlestringNoTitle of the content item (default Two Columns).
    durationintegerNoPlay time in seconds (default 10).
    category_idsarrayNoCategories to put the content in.
    date_startstringNoStart of playback (ISO date-time).
    date_stopstringNoEnd of playback (ISO date-time).
    left_width_percentnumberNoWidth of the left column in percent, 1 to 99 (default 50); the right column gets the rest.

    Example: “Put the menu on the left and the promo photos on the right, with the left column 30% wide.”

AI descriptions & evaluation 4 tools

  • Get Content AI Description get_content_ai_description Read-only
    Shows what the AI analysis found in a content item: a short description, the text and dates it contains, keywords, a suggested title and the language, together with the date limits currently set on the item.
    Parameters of get_content_ai_description
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item.

    Example: “What does the text on the Weekend offer banner say?”

  • Check AI Title Suggestion check_ai_title_suggestion Read-only
    Checks whether the AI analysis of an uploaded item has finished and returns the title it suggests, which helps when a file was uploaded with a meaningless name.
    Parameters of check_ai_title_suggestion
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item.

    Example: “Did the AI suggest a better title for IMG_2041?”

  • Suggest Category for Content suggest_category_for_content Read-only
    Suggests up to three categories that fit a content item, based on its AI analysis, with the reason for each.
    Parameters of suggest_category_for_content
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item.
    keywordsarrayNoKeywords from the AI analysis. Default: read from the item.
    summarystringNoSummary from the AI analysis. Default: read from the item.

    Example: “Which category should the new pizza promo go into?”

  • Evaluate Content evaluate_content Changes data
    Rates how well a content item works as digital signage, with a score, strengths, weaknesses and recommendations, optionally for a specific screen and its real surroundings. It can also write a playful roast instead, or email the report.
    Parameters of evaluate_content
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item.
    device_identifierstringNoA device, to judge the content against that screen and its environment photo.
    modestringNoprofessional (default) for a formal assessment, roast for a playful critique. One of: professional, roast.
    email_tostringNoEmail address to send the report to.

    Example: “How well does the Spring promo work on the Entrance LED?”

Categories & restrictions 9 tools

  • Get Categories get_categories Read-only
    Lists the content categories (folders) you can access.
    Parameters of get_categories
    ParameterTypeRequiredDescription
    limitintegerNoMaximum number of categories (default 100).

    Example: “Which content categories do I have?”

  • Get Category Items get_category_items Read-only
    Lists the content items in a category.
    Parameters of get_category_items
    ParameterTypeRequiredDescription
    category_idintegerNoID of the category.

    Example: “What is in the Promotions category?”

  • Create Category create_category Changes data
    Creates a new top-level content category (folder).
    Parameters of create_category
    ParameterTypeRequiredDescription
    namestringYesName of the category.

    Example: “Create a category called Promotions Q3.”

  • Delete Category delete_category Destructive (asks first)
    Deletes a content category, or stops sharing it, after you confirm.
    Parameters of delete_category
    ParameterTypeRequiredDescription
    category_idstringYesID of the category.

    Example: “Delete the Old campaigns category.”

  • Set Content Categories set_content_categories Destructive (asks first)
    Moves existing content items between categories or files them under more categories, up to 100 items in one call. Only the folders change; playlists and what plays on the screens stay the same.
    Parameters of set_content_categories
    ParameterTypeRequiredDescription
    content_idsarrayYesIDs of the content items (1 to 100).
    add_category_idsarrayNoCategories to add the items to.
    remove_category_idsarrayNoCategories to take the items out of.
    replacebooleanNoIf true, the items end up in exactly the categories of add_category_ids and no others.

    Example: “Move all Christmas items from Promotions to the Archive category.”

  • Set Content Dates set_content_dates Destructive (asks first)
    Sets the first and the last day a content item may play, for example for a sale or an event.
    Parameters of set_content_dates
    ParameterTypeRequiredDescription
    content_idintegerYesID of the content item.
    date_fromstringNoFirst day to play (YYYY-MM-DD). Leave out to keep the current value.
    date_tostringNoLast day to play (YYYY-MM-DD). Leave out to keep the current value.

    Example: “Show the Black Friday banner only from 24 to 30 November.”

  • Set Content Restriction set_content_restriction Changes data
    Limits a content item to screens with certain device tags, for example one city or one zone, while it stays in a playlist that all screens share; the other screens skip it.
    Parameters of set_content_restriction
    ParameterTypeRequiredDescription
    content_idintegerNoID of the content item (preferred).
    content_namestringNoTitle of the content item, if the ID is not known.
    category_idsarrayNoDevice tag IDs that a screen needs all of (one group of conditions).
    tag_namesarrayNoDevice tag names, turned into IDs on the server (one group of conditions).
    rulesarrayNoAdvanced: several groups of tag IDs; a screen that matches any one group plays the item.
    clearbooleanNoRemove all restrictions, so that the item plays everywhere.

    Example: “Play the Kids menu clip only on the screens tagged Food court.”

  • Set Content Interval Grid set_content_interval_grid Destructive (asks first)
    Makes content play in repeating on and off periods instead of all the time, for example every other week until the end of the year, and can add it to playlists at the same time.
    Parameters of set_content_interval_grid
    ParameterTypeRequiredDescription
    content_idsarrayYesIDs of the content items.
    on_durationintegerYesLength of each on period, for example 2 for two weeks.
    on_unitstringYesUnit of the on period. One of: days, weeks, months.
    off_durationintegerYesLength of each off period.
    off_unitstringYesUnit of the off period. One of: days, weeks, months.
    total_durationintegerNoHow long the pattern repeats in total, for example 6 for six months. Give this or end_date.
    total_unitstringNoUnit of total_duration. One of: days, weeks, months.
    end_datestringNoLast day of the pattern (YYYY-MM-DD). It takes precedence over total_duration.
    start_datestringNoFirst day of the pattern (YYYY-MM-DD, default today).
    playlist_idsarrayNoPlaylists to add the items to afterwards.

    Example: “Show this banner every other week until the end of the year.”

  • Invert Content Grid invert_content_grid Destructive (asks first)
    Gives content the opposite schedule of another item, so that it plays exactly when the other one is off, for example to fill the gaps of an every-other-week campaign.
    Parameters of invert_content_grid
    ParameterTypeRequiredDescription
    source_content_idintegerYesID of the item whose schedule is inverted.
    content_idsarrayYesIDs of the items that get the inverted schedule.
    playlist_idsarrayNoPlaylists to add those items to afterwards.

    Example: “Play the Autumn clip whenever the Summer clip is off.”

Playlists & publishing 15 tools

Build playlists, publish them now or on a schedule, and check that every screen really plays what it should.

Playlists 8 tools

  • Get Playlists get_playlists Read-only
    Lists your playlists or finds them by name; an exact name match comes first. The list is paged, so large accounts are searched with a query.
    Parameters of get_playlists
    ParameterTypeRequiredDescription
    querystringNoPart of the playlist name, not case-sensitive; an exact match is listed first.
    limitintegerNoMaximum number of playlists (default 200, max 1000).
    offsetintegerNoNumber of playlists to skip, for paging through a long result.

    Example: “Show me all my playlists.”

  • Get Playlist Items get_playlist_items Read-only
    Lists every item in a playlist.
    Parameters of get_playlist_items
    ParameterTypeRequiredDescription
    playlist_idintegerNoID of the playlist.

    Example: “What is in the Reception playlist?”

  • Create Playlist create_playlist Changes data
    Creates a new, empty playlist.
    Parameters of create_playlist
    ParameterTypeRequiredDescription
    namestringYesName of the playlist.

    Example: “Create a playlist called Summer promotion.”

  • Copy Playlist copy_playlist Changes data
    Makes a copy of a playlist with all its items, to reuse its structure.
    Parameters of copy_playlist
    ParameterTypeRequiredDescription
    playlist_idintegerNoID of the playlist to copy.

    Example: “Copy the Weekend playlist so I can make a holiday version.”

  • Rename Playlist rename_playlist Destructive (asks first)
    Renames a playlist.
    Parameters of rename_playlist
    ParameterTypeRequiredDescription
    playlist_idintegerNoID of the playlist.
    new_namestringYesThe new name.

    Example: “Rename the Weekend playlist to Weekend summer.”

  • Delete Playlist delete_playlist Destructive (asks first)
    Deletes a playlist after you confirm.
    Parameters of delete_playlist
    ParameterTypeRequiredDescription
    playlist_idintegerNoID of the playlist.

    Example: “Delete the Test playlist.”

  • Add Track to Playlist add_track_to_playlist Changes data
    Adds a content item to a playlist, optionally at a given position. If a very similar item is already in the playlist, it warns first.
    Parameters of add_track_to_playlist
    ParameterTypeRequiredDescription
    playlist_idintegerYesID of the playlist.
    content_idintegerYesID of the content item to add.
    insert_indexintegerNoPosition to insert it at (1 or higher). Leave out unless a specific position is wanted.
    confirmedbooleanNoAdd the item even though a similar one is already in the playlist, after you agreed to it.

    Example: “Add content 1234 to the Weekend playlist as the second item.”

  • Remove Track from Playlist remove_track_from_playlist Destructive (asks first)
    Removes an item from a playlist.
    Parameters of remove_track_from_playlist
    ParameterTypeRequiredDescription
    playlist_idintegerYesID of the playlist.
    item_idintegerNoID of the playlist entry to remove.
    content_idintegerNoOr the content ID, when the ID of the entry is not known.

    Example: “Take the Easter clip out of the Weekend playlist.”

Publishing & schedules 2 tools

  • Publish Playlist publish_playlist Destructive (asks first)
    Sends a playlist to screens for immediate playback. The playlist can be named loosely (case and accents do not matter), and afterwards the assistant can check that the screens picked it up.
    Parameters of publish_playlist
    ParameterTypeRequiredDescription
    playlist_idstringNoID of the playlist. Leave out when giving playlist_name.
    playlist_namestringNoName of the playlist in your own words; case and accents are ignored.
    device_identifiersarrayYesIdentifiers of the target devices (from get_devices; names are not accepted).
    publish_originalbooleanNoSend the original files of items that are still being converted, after you agreed to it.

    Example: “Publish the Weekend playlist to the Lobby and Entrance screens.”

  • Scheduled Publish scheduled_publish Destructive (asks first)
    Publishes a playlist now, once at a set date and time, or on a repeating schedule, to chosen screens or to every screen with a device tag, including screens that get the tag later. It works like the publish window of the dashboard.
    Parameters of scheduled_publish
    ParameterTypeRequiredDescription
    playlist_idintegerYesID of the playlist.
    device_identifiersarrayNoIdentifiers of the target devices (from get_devices).
    category_idsarrayNoDevice tag IDs: every device with these tags gets the schedule, including devices tagged later.
    schedule_typestringNoNOW (default) publishes immediately, DATETIME once at a set time, RECURRENT on a repeating schedule. One of: NOW, DATETIME, RECURRENT.
    datetimestringNoFor DATETIME: when to publish, YYYY-MM-DDTHH:MM:SS.
    patternstringNoFor RECURRENT: a cron pattern, for example 0 9 * * 1-5 for weekdays at 9:00.
    date_fromstringNoFor RECURRENT: when the schedule starts, YYYY-MM-DDTHH:MM:SS.
    date_tostringNoFor RECURRENT: when the schedule ends, YYYY-MM-DDTHH:MM:SS.

    Example: “Publish the Weekend playlist to all screens tagged Vilnius every Friday at 18:00.”

Verification & statistics 5 tools

  • Verify Playlist Publication verify_playlist_publication Read-only
    Checks from the live status of the screens whether they play the playlist that was published: all done, still downloading, or playing something else and why. It checks the playlist only; to see whether a specific item plays, use find_content_playback.
    Parameters of verify_playlist_publication
    ParameterTypeRequiredDescription
    playlist_idstringYesID of the playlist that should be playing.
    device_identifiersarrayYesIdentifiers of the devices to check (from get_devices).

    Example: “Are all the café screens playing the new Weekend playlist yet?”

  • Find Content Playback find_content_playback Read-only
    Shows on which screens a content item actually plays: the playlists that contain it, the screens that run those playlists, and which of them skip it because of its tag, date or interval restrictions.
    Parameters of find_content_playback
    ParameterTypeRequiredDescription
    content_idintegerNoID of the content item (preferred).
    content_namestringNoTitle of the content item, if the ID is not known; an ambiguous title returns the candidates.

    Example: “On which screens is the Summer sale clip playing?”

  • Analyze Playlist Variations analyze_playlist_variations Read-only
    Shows how one playlist plays differently across the screens that run it: which items are restricted and to which screens, and how many different versions the screens actually get.
    Parameters of analyze_playlist_variations
    ParameterTypeRequiredDescription
    playlist_idintegerNoID of the playlist (preferred).
    playlist_namestringNoName of the playlist, if the ID is not known; an ambiguous name returns the candidates.

    Example: “How does the Weekend playlist differ between the Vilnius and Kaunas stores?”

  • Get Playlist Stats get_playlist_stats Read-only
    Reports how many times playlists were played on each device over a date range, grouped by hour, day, week or month.
    Parameters of get_playlist_stats
    ParameterTypeRequiredDescription
    day_fromstringYesFirst day (YYYY-MM-DD).
    day_tostringYesLast day (YYYY-MM-DD).
    devicestringNoOnly this device (identifier from get_devices).
    playlist_idintegerNoOnly this playlist. Leave out for all playlists.
    hour_fromintegerNoCount only plays from this hour on (0 to 23). Meant for comparing hours; allowed only for short date ranges.
    hour_tointegerNoCount only plays before this hour (1 to 24). Meant for comparing hours; allowed only for short date ranges.
    time_bucketstringNoGrouping: hour (up to 7 days), day (default, up to 90 days), week (up to 365 days) or month. One of: hour, day, week, month.

    Example: “How many times did the Weekend playlist play last week, day by day?”

  • Get Content Stats get_content_stats Read-only
    Reports how many times each content item was played on each device over a date range, grouped by hour, day, week or month: the proof-of-play data.
    Parameters of get_content_stats
    ParameterTypeRequiredDescription
    day_fromstringYesFirst day (YYYY-MM-DD).
    day_tostringYesLast day (YYYY-MM-DD).
    devicestringNoOnly this device (identifier from get_devices).
    content_idintegerNoOnly this content item. Leave out for all items.
    hour_fromintegerNoCount only plays from this hour on (0 to 23). Meant for comparing hours; allowed only for short date ranges.
    hour_tointegerNoCount only plays before this hour (1 to 24). Meant for comparing hours; allowed only for short date ranges.
    time_bucketstringNoGrouping: hour (up to 7 days), day (default, up to 90 days), week (up to 365 days) or month. One of: hour, day, week, month.

    Example: “How many times did the Spring promo play on the Entrance LED yesterday?”

Organization 16 tools

Work across accounts, change account settings, restore deleted items, switch totems on and off, and confirm choices in the chat.

Accounts & access 5 tools

  • Switch Account switch_account Destructive (asks first)
    Lists the accounts you can work in, or switches the session to one of them, so that the following requests act on that account.
    Parameters of switch_account
    ParameterTypeRequiredDescription
    account_usernamestringNoUsername of the account to switch to. Leave out to list the accounts.

    Example: “Which accounts can I switch to?”

  • Search Across Accounts search_across_accounts Read-only
    Searches devices, content or playlists across all the sub-accounts you manage, without switching between them, and says which account each result belongs to. For admin users with several sub-accounts.
    Parameters of search_across_accounts
    ParameterTypeRequiredDescription
    resource_typestringYesWhat to search. One of: devices, content, playlists.
    querystringNoText to match, not case-sensitive. For devices it matches the name, the identifier or a tag name.
    status_filterstringNoFor devices: only this status, for example offline, online or error.
    accounts_filterarrayNoOnly these accounts (usernames). Default: all sub-accounts.
    tagsarrayNoFor devices: only those with these tag names.
    matchstringNoFor devices: all (default) needs every tag, any needs at least one. One of: all, any.

    Example: “Which screens are offline across all our accounts?”

  • Attach Account attach_account Changes data
    Adds an existing account to the list of accounts you can switch to, when it was created elsewhere and never added. Only accounts under your own account qualify, unless you are impressBox staff.
    Parameters of attach_account
    ParameterTypeRequiredDescription
    account_usernamestringYesUsername of the account to add.

    Example: “Add the account shop-kaunas to my account list.”

  • Create Account create_account Changes data
    Creates a sub-account under your account, for example for a pilot, a demo or the staff of a new client. Only main (root) accounts can create accounts, and a strong password is generated if you do not set one.
    Parameters of create_account
    ParameterTypeRequiredDescription
    usernamestringYesUsername of the new account (unique).
    passwordstringNoPassword. Leave out to have a strong one generated and shown once.
    emailstringNoContact email address.
    first_namestringNoFirst name of the account holder.
    last_namestringNoLast name of the account holder.
    company_namestringNoCompany the account belongs to.
    parent_usernamestringNoAccount to create it under. Default: your account.

    Example: “Create a sub-account called shop-riga for our new client in Riga.”

  • Provision Account Access provision_account_access Changes data
    Makes an account that has never signed in usable right away, so you can switch to it and work with its content, playlists and templates. Device work stays unavailable until the account signs in once.
    Parameters of provision_account_access
    ParameterTypeRequiredDescription
    account_usernamestringYesUsername of the account to set up.

    Example: “Set up the account shop-kaunas so I can switch to it.”

User settings 2 tools

  • Get User Settings get_user_settings Read-only
    Shows your account settings and which features are on, such as automatic conversion, AI renaming and the chat button.

    No parameters.

    Example: “Which AI features are switched on in my account?”

  • Change User Settings change_user_settings Destructive (asks first)
    Changes your account settings, such as automatic conversion of uploads, the maximum video bitrate, output resolutions and the AI features. Only the settings you name change.
    Parameters of change_user_settings
    ParameterTypeRequiredDescription
    convert_contentbooleanNoConvert uploads automatically to a format the players can play.
    max_bitrateintegerNoMaximum video bitrate for conversion, in kbps; 0 means no limit.
    upload_to_google_cloudbooleanNoUpload content to cloud storage for remote devices.
    show_chat_buttonbooleanNoShow the AI chat button in the dashboard.
    ai_similar_content_detectionbooleanNoWarn when a very similar item is added to a playlist.
    ai_smart_renamebooleanNoLet AI suggest better names for uploaded files.
    pdf_pages_per_imageintegerNoHow many PDF pages to put on one image when converting PDFs (1 to 5).
    custom_resolutionobject or array or string or nullNoOutput resolutions for conversion: up to 5, each side 1 to 4096 px, for example 1920x1080, 768x1366; null resets to the default. The first one is the one older players use.

    Example: “Limit video conversion to 8000 kbps and add a 1080x1920 portrait resolution.”

Trash 4 tools

  • Get Trash Bin Items get_trash_bin_items Read-only
    Lists the deleted devices and content in the trash, with type, name, deletion date and owner, to see what can be restored.
    Parameters of get_trash_bin_items
    ParameterTypeRequiredDescription
    content_typestringNoOnly this type of object, for example main.Device.
    sourcestringNogateway for devices, manage for content, all for both (default). One of: gateway, manage, all.

    Example: “What is in the trash?”

  • Restore Trash Bin Item restore_trash_bin_item Changes data
    Restores a deleted device or content item from the trash.
    Parameters of restore_trash_bin_item
    ParameterTypeRequiredDescription
    item_idstringYesID of the item in the trash, for example main.Device:123.
    sourcestringYesgateway for a device, manage for content. One of: gateway, manage.

    Example: “Restore the Lobby screen I deleted by mistake.”

  • Permanently Delete Trash Bin Item permanently_delete_trash_bin_item Destructive (asks first)
    Deletes one item from the trash for good, after you confirm. It cannot be undone.
    Parameters of permanently_delete_trash_bin_item
    ParameterTypeRequiredDescription
    item_idstringYesID of the item in the trash, for example main.Device:123.
    sourcestringYesgateway for a device, manage for content. One of: gateway, manage.

    Example: “Permanently delete the old Test screen from the trash.”

  • Empty Trash Bin empty_trash_bin Destructive (asks first)
    Empties the trash for good after you confirm; regular users delete only their own items. It cannot be undone.
    Parameters of empty_trash_bin
    ParameterTypeRequiredDescription
    sourcestringNogateway for devices, manage for content, all for both (default). One of: gateway, manage, all.

    Example: “Empty the trash.”

Totems 2 tools

  • Get Totem Status get_totem_status Read-only
    Lists the totems of the account (self-service displays that create and publish content from WhatsApp messages, as at a trade show) and whether each one is switched on.
    Parameters of get_totem_status
    ParameterTypeRequiredDescription
    slugstringNoOnly the totem with this short name (slug). Leave out to list all of them.

    Example: “Is the totem switched on?”

  • Switch Totem On/Off set_totem_active Destructive (asks first)
    Switches a totem on or off. When it is off, it stops creating and publishing content from WhatsApp messages; what its screen shows does not change until you publish something else.
    Parameters of set_totem_active
    ParameterTypeRequiredDescription
    activebooleanYestrue switches the totem on, false switches it off.
    slugstringNoShort name (slug) of the totem; needed only when the account has more than one.

    Example: “Turn off the totem.”

Conversation & help 3 tools

  • Ask User ask_user Destructive (asks first)
    Asks you a short question with two to four fixed answers, such as Yes and No, shown as quick-reply buttons where the chat supports them. The assistant uses it to confirm before acting or to let you pick an option.
    Parameters of ask_user
    ParameterTypeRequiredDescription
    questionstringYesThe question to show.
    optionsarrayYesTwo to four short answers, shown as buttons.

    Example: “Delete the Test playlist, but ask me first.”

  • Get Tutorial get_tutorial Read-only
    Fetches an official impressBox tutorial, for example on managing content, importing from Canva, scheduling, or setting up the player on LG, Samsung, Android, Philips, Hikvision or iiyama displays.
    Parameters of get_tutorial
    ParameterTypeRequiredDescription
    tutorial_codestringYesWhich tutorial to fetch. One of: content_management, canva_upload, schedule_management, lg, samsung, samsung_orsay, android, android_tv_philips, android_tv_hikvision, android_tv_liyama, android_kiosk, emergency_control_app.

    Example: “How do I set up the player on a Samsung TV?”

  • Identify Name or Number resolve_reference Read-only
    Finds out what a name or number refers to before anything is done with it, by looking it up at once as content, playlist, screen, device tag and content category. Returns the one clear match, or the candidates to choose from when it fits more than one thing.
    Parameters of resolve_reference
    ParameterTypeRequiredDescription
    termstringYesThe name or number as you wrote it.
    kindsarrayNoOnly look for these kinds: content, playlist, device, device_tag or category.

    Example: “Is Weekend a playlist, a device tag or a content item?”

In the impressBox AI Agent only

Six more tools work only inside the impressBox AI Agent, in the dashboard chat and on WhatsApp: five create or edit images with AI, and one checks a device update in the background and reports back in the conversation. The MCP server does not offer them, so MCP clients do not see them.

  • Verify Device Update verify_device_update

    Checks in the background that a device reached the expected version after an update of its software, firmware, player app or settings: every 10 minutes, up to five times.

    Example: “Tell me when the Lobby player is on the new version.”

  • Create Template from Image create_template_from_image

    Rebuilds an uploaded picture, such as a photo of a printed menu or poster, as an editable HTML template with fields for its texts and images.

    Example: “Turn this photo of our printed menu into a template I can edit.”

  • Generate Template Asset generate_template_asset

    Adds an image to a template made from a reference picture: it cuts an element such as a logo or a product out of the original, or generates a new decorative image.

    Example: “Cut the logo out of the reference photo for the new menu template.”

  • Generate Image Content generate_image_content

    Creates a new image with generative AI from a description, optionally with a photo as reference, for example to turn a selfie into a poster. You see a preview, and it is saved as content only after you confirm.

    Example: “Make a superhero poster of me from this selfie, with my name at the bottom.”

  • Edit Image Content edit_image_content

    Edits an image with generative AI: change the background, add or remove objects, change colors or text, or remove the background. You see a preview, and the change is saved only after you confirm.

    Example: “Remove the background, keep only the mug and add a -50% sticker.”

  • Visualize Content on Device visualize_content_on_device

    Shows how a content item would look on a specific screen in its real location, by placing it onto the environment photo of that screen. It can email the result.

    Example: “Show me how the Spring promo would look on the Entrance LED.”

See what the agent does with them on the impressBox AI Agent page and in the prompt library.

Example prompts from an MCP client

  • “Which screens in the Vilnius stores are offline right now, and why?”

    Checks the status of each device, reads its logs and tests network reachability.

  • “Take a screenshot of every screen tagged 'entrance'.”

    Resolves the tag to devices and captures what each one is showing.

  • “Make a lunch menu template from this spreadsheet and put it on the café screens.”

    Writes an HTML template with editable fields, fills it from the data and publishes it.

  • “Add the new promo video to the 'Weekend' playlist and publish it on Friday at 18:00.”

    Adds the item and creates a scheduled publish.

  • “Compare last week’s playback of the summer campaign across all stores.”

    Pulls playlist statistics and summarizes them per store.

  • “Find the device called Lobby-2 in any of our accounts and restart it.”

    Searches across accounts, finds the device and reboots it.

Security model

The connector is built so that you decide what the assistant can reach, and can take it back.

Sign-in, no shared secrets

You connect by signing in with your impressBox account (OAuth 2.0 with PKCE). There is no client secret or token to copy or leak.

Your role, your account

The connection reaches only the devices and content of your account, with the permissions of your account role.

Confirmation step

Tools that delete, overwrite or act on live screens are marked destructive, so Claude asks before it runs them. The ask_user tool lets the assistant check with you in the chat.

Off until you connect

Nothing is connected until you add the connector and sign in, and you can disconnect it in your AI client at any time. No broad database access is given to the AI provider.

How data flows to your AI provider is described in section 12 of the privacy policy.

How it compares

Other digital signage vendors have published MCP servers too. See a dated, sourced comparison of digital signage MCP servers and what to check when you choose one.

Frequently asked questions

What is the impressBox MCP server?

A Model Context Protocol (MCP) server that exposes impressBox to AI clients. Once connected, an assistant such as Claude can check and control your screens, manage content and templates, and build, schedule and publish playlists on your impressBox account.

How many tools does it have?

117 tools as of 15 October 2026, in four groups: devices and diagnostics, content and templates, playlists and publishing, and organization. Every tool is listed on this page with its parameters and an example request; six more tools, for AI images and update checks, work only in the impressBox AI Agent.

What is the server address?

https://m.impressbox.eu/mcp, over Streamable HTTP. In Claude, add it under Settings → Connectors → Add custom connector and leave Client ID and Client Secret empty.

Which AI clients can I use?

Claude (Desktop, web and mobile), where impressBox is added as a custom connector. Any other MCP-compatible client can use the same address. The impressBox AI Agent in the dashboard, WhatsApp and Slack needs no client at all.

How does the connection authenticate?

With OAuth 2.0: you sign in with your impressBox account and the AI client registers itself, so there is no client ID, secret or token to copy. What the client can see and change matches the role of your impressBox account.

Can the AI change things without asking?

The server includes an ask_user tool, so the assistant asks you to confirm before sensitive actions. It only acts on your account to carry out the instructions you give it.

Does my AI provider see impressBox data?

Data that the AI client requests through the connector is sent to your AI provider to process your request, under your agreement with that provider. The connector does not give the provider broad database access. Details are in section 12 of the privacy policy.

Connect your AI assistant to your screens

Book a demo: we walk you through the dashboard, the AI agent and the players, and answer your questions about your network.