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
Open the connector settings
In Claude (Desktop, web or mobile), go to Settings → Connectors → Add custom connector.
- 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
Sign in
Click Connect. A browser window opens where you sign in with your impressBox account.
- 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 connectorOther 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
Lists the devices (screens and players) in your account with their names and identifiers. Most device tools need the identifier it returns.get_devicesRead-onlyParameters of get_devices Parameter Type Required Description limitinteger No Maximum number of devices to return (default 200). Example: “Show me all my screens.”
Find Device
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.find_deviceRead-onlyParameters of find_device Parameter Type Required Description querystring Yes What 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_accountsboolean No Admin only: also search every sub-account you can switch to (slower). Default: the current account only. limitinteger No Maximum number of matches (default 25, max 100). Example: “Find the device whose ID contains 7F3A.”
Get Device Status
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.get_device_statusRead-onlyParameters of get_device_status Parameter Type Required Description device_namestring No Only this device, given by its identifier from get_devices (not its name). online_onlyboolean No Return only devices that are online. offline_onlyboolean No Return only devices that are offline. limitinteger No Maximum number of devices to return (default 100). Example: “Which screens are offline right now?”
Get Device Info
Shows the profile of a device: name, address and map coordinates, contact phone, tags and monitoring settings.get_device_infoRead-onlyParameters of get_device_info Parameter Type Required Description device_identifierstring Yes Identifier of the device (from get_devices). Example: “What address is set for the Lobby screen?”
Get Device Settings
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.get_device_settingsChanges dataParameters of get_device_settings Parameter Type Required Description device_identifierstring Yes Identifier of the device (from get_devices). Example: “Which resolution and rotation is the Entrance LED set to?”
Get Device Schedules
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.get_device_schedulesRead-onlyParameters of get_device_schedules Parameter Type Required Description device_identifierstring No One device identifier. device_identifiersarray No Several device identifiers. all_devicesboolean No Set to true for every device you can access. start_datestring No Start of the date range (YYYY-MM-DD). end_datestring No End of the date range (YYYY-MM-DD). Example: “What is scheduled on the Lobby screen next week?”
Take Device Screenshot
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.take_device_screenshotRead-onlyParameters of take_device_screenshot Parameter Type Required Description device_identifierstring Yes Identifier of the device. hdboolean No Capture in high definition (default true). Example: “Show me what the Lobby screen is displaying.”
Get Device Logs
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.get_device_logsRead-onlyParameters of get_device_logs Parameter Type Required Description device_identifierstring Yes Identifier of the device. limitinteger No Number of log entries (default 500). One of: 100,200,500,800.time_fromstring No Start of the time window (ISO 8601). Default: six hours ago. time_tostring No End of the time window (ISO 8601). Default: now. Example: “Show the logs of the Entrance LED from this morning.”
Get Device Action History
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.get_device_action_historyRead-onlyParameters of get_device_action_history Parameter Type Required Description devicestring Yes Identifier of the device. action_typestring No Only this kind of action, for example playlist, display_on, display_off, reboot or volume. time_fromstring No Start of the window (ISO date-time or YYYY-MM-DD). time_tostring No End of the window (ISO date-time or YYYY-MM-DD). limitinteger No Maximum number of records. Example: “Who turned off the Lobby screen yesterday?”
Get Device State History
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.get_device_state_historyRead-onlyParameters of get_device_state_history Parameter Type Required Description devicestring No Identifier of the device. statestring No Keep only this state. One of: operational,operational_off,offline,error,new,ignored.only_changesboolean No Only the changes of state (default), or every raw sample. time_fromstring No Start of the window. time_tostring No End of the window. limitinteger No Maximum number of records (default 500, max 2000). Example: “When was the Lobby screen offline this week?”
Diagnostics 7 tools
Diagnose Device
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.diagnose_deviceRead-onlyParameters of diagnose_device Parameter Type Required Description device_identifierstring Yes Identifier of the device (from get_devices). Example: “Why is the Entrance LED not playing anything?”
Check Device Reachability
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.check_device_reachabilityRead-onlyParameters of check_device_reachability Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. interfacestring No Test 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
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.ping_device_targetRead-onlyParameters of ping_device_target Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. targetstring Yes IP address or host name to ping, for example 8.8.8.8. countinteger No Number of pings (default 5). packet_sizeinteger No Payload size in bytes (default 56). interfacestring No Network interface to ping from, for example eth0. Example: “Can the Lobby player reach the router at 192.168.1.1?”
Traceroute From Device
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.traceroute_from_deviceRead-onlyParameters of traceroute_from_device Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. targetstring Yes IP address or host name to trace to. max_hopsinteger No Maximum number of hops (default 20). interfacestring No Network interface to trace from. Example: “Trace the route from the Entrance player to 8.8.8.8.”
Get Device Network Info
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.get_device_network_infoRead-onlyParameters of get_device_network_info Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. Example: “What IP address does the Lobby player have?”
Check Device Time Sync
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.check_device_time_syncRead-onlyParameters of check_device_time_sync Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. ntp_hoststring No Time 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
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.list_device_network_neighboursRead-onlyParameters of list_device_network_neighbours Parameter Type Required Description device_identifierstring Yes The 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
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.configure_device_networkDestructive (asks first)Parameters of configure_device_network Parameter Type Required Description device_identifierstring Yes Identifier of the device. interfacestring No Interface to configure, for example eth0 or wlan0 (default eth0). ip_addressstring No Static IP address. subnet_maskstring No Subnet mask. gatewaystring No Default gateway. dnsstring No DNS 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
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.configure_device_wifiDestructive (asks first)Parameters of configure_device_wifi Parameter Type Required Description device_identifierstring Yes Identifier of the device. ssidstring Yes Name (SSID) of the Wi-Fi network. passwordstring No Wi-Fi password; leave out for an open network. security_typestring No open, wep, wpa, wpa2 or wpa2enterprise (default wpa2). hiddenboolean No Set to true if the network does not broadcast its name. modestring No client (default) joins the network; hotspot makes the device an access point with this name and password that hands out addresses. interfacestring No Wireless interface (default wlan0). ip_addressstring No Static IP address; leave out to get one by DHCP. subnet_maskstring No Subnet mask of the static address. gatewaystring No Gateway of the static address. Example: “Move the Lobby player to the Wi-Fi network OfficeWiFi.”
Start DHCP Server
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.start_device_dhcp_serverDestructive (asks first)Parameters of start_device_dhcp_server Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. interfacestring No Interface to serve on, for example eth0. Default: the interface with the default route. ttl_minutesnumber No Stop automatically after this many minutes (default 15, max 240). forceboolean No Start even if another DHCP server answers on the network. Only for a network you control. pool_startstring No First address of the pool (IPv4); give it together with pool_end. pool_endstring No Last address of the pool (IPv4); give it together with pool_start. gatewaystring No Gateway handed to the clients. Default: taken from the live interface. dnsstring No DNS servers handed to the clients, separated by commas or spaces. lease_minutesnumber No Lease time in minutes. reservationsarray No Fixed addresses by MAC address, so that the listed devices always get the same IP. Needs a player version that supports reservations. pin_known_devicesboolean No Also 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
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.stop_device_dhcp_serverDestructive (asks first)Parameters of stop_device_dhcp_server Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. interfacestring No Interface to stop. Empty: every temporary server on the device. Example: “Stop the DHCP server on the Lobby player.”
DHCP Server Status
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.get_device_dhcp_server_statusRead-onlyParameters of get_device_dhcp_server_status Parameter Type Required Description device_identifierstring Yes The device: its identifier, numeric ID or name. interfacestring No Only this interface. Empty: all interfaces. Example: “Which TVs got an address from the Lobby player?”
Deploy Screens (Static IP)
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.deploy_screens_staticDestructive (asks first)Parameters of deploy_screens_static Parameter Type Required Description device_identifierstring Yes The serving player on the store network, which runs the DHCP server: its identifier, numeric ID or name. apply_staticboolean No false (default): only return the plan. true: start the DHCP server and switch the screens to static addresses. targetsarray No Only these screens (identifier, numeric ID or name). Default: every device of the account on the subnet. interfacestring No Interface the serving player hands out addresses on. Default: its default-route interface. target_interfacestring No Interface on each screen that gets the static address (default eth0). gatewaystring No Gateway written into the static setup of each screen. Default: the one the DHCP server hands out. dnsstring No DNS servers for the static setup of each screen, separated by commas or spaces. ttl_minutesnumber No Stop the DHCP server automatically after this many minutes. lease_minutesnumber No Lease time in minutes for the handed-out addresses. include_offlineboolean No Also switch screens that are offline now (default false: they are skipped). forceboolean No Start 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
Turns the display of a screen on right now. For daily on and off times, use schedule_display.display_onDestructive (asks first)Parameters of display_on Parameter Type Required Description device_identifierstring Yes Identifier of the device. Example: “Turn on the Lobby screen.”
Display Off
Turns the display of a screen off right now. For daily on and off times, use schedule_display.display_offDestructive (asks first)Parameters of display_off Parameter Type Required Description device_identifierstring Yes Identifier of the device. Example: “Turn off the screen in the meeting room.”
Schedule Display
Sets recurring on and off times for a screen: the same hours every day, or different hours for each weekday.schedule_displayDestructive (asks first)Parameters of schedule_display Parameter Type Required Description device_identifierstring Yes Identifier of the device (from get_devices). on_timestring No Switch-on time, HH:MM, applied every day. off_timestring No Switch-off time, HH:MM, applied every day; 00:00 is midnight. schedulesarray No Different 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
Restarts a player after you confirm. It needs a physical device; web-based players cannot be rebooted.reboot_deviceDestructive (asks first)Parameters of reboot_device Parameter Type Required Description device_identifierstring Yes Identifier of the device. Example: “Restart the player of the Entrance LED.”
Set Volume
Sets the volume of a device, from 0 to 100.set_volumeDestructive (asks first)Parameters of set_volume Parameter Type Required Description device_idstring Yes Identifier of the device (the text identifier, not the numeric ID). volumeinteger Yes Volume level from 0 (silent) to 100 (maximum). Example: “Set the volume in the café to 30%.”
Mute Device
Mutes the sound of a device without changing its volume level or anything else.mute_deviceDestructive (asks first)Parameters of mute_device Parameter Type Required Description device_idstring Yes Identifier of the device (the text identifier, not the numeric ID). Example: “Mute the Lobby screen.”
Unmute Device
Unmutes a device that was muted with mute_device; the volume level stays as it was.unmute_deviceDestructive (asks first)Parameters of unmute_device Parameter Type Required Description device_idstring Yes Identifier of the device (the text identifier, not the numeric ID). Example: “Unmute the Lobby screen.”
Send Controller Message
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.send_controller_messageDestructive (asks first)Parameters of send_controller_message Parameter Type Required Description device_identifierstring or array Yes Identifier of the device, or a list of identifiers. device_identifiersarray No Another way to give several device identifiers. actionstring Yes The command, for example stop, next, toggle_play, quit, reboot, shutdown, upgrade_app, clean_up, screenshot or backlight. payloadobject No Extra 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
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.send_remote_keysDestructive (asks first)Parameters of send_remote_keys Parameter Type Required Description device_identifierstring Yes Identifier of the player that is wired to the panel. keysarray Yes Keys 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_idinteger No LG Set ID of the panel (default 1). delay_msinteger No Pause between key presses in milliseconds (default 400, max 5000). screenshotboolean No Take 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
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.update_device_settingsDestructive (asks first)Parameters of update_device_settings Parameter Type Required Description device_identifierstring Yes Identifier of the device. reconfigurearray No Settings 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. settingsobject Yes The 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
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.remove_display_schedulesDestructive (asks first)Parameters of remove_display_schedules Parameter Type Required Description device_identifiersarray No Screens to clear: identifiers from get_devices (unique names work too). all_devicesboolean No Set to true to clear every screen in the account. schedule_idsarray No Only these schedules, by their IDs from get_device_schedules. include_playlist_schedulesboolean No Also remove playlist schedules, not only on and off times. Default false. confirmboolean No Leave 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
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.check_device_syncRead-onlyParameters of check_device_sync Parameter Type Required Description device_identifierstring No One screen of the group (the master or a follower); the rest of the group is found automatically. device_identifiersarray No Or a list of screens to check together as one group. assume_prefixinteger No Subnet 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
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.configure_device_syncDestructive (asks first)Parameters of configure_device_sync Parameter Type Required Description master_identifierstring Yes Identifier of the master screen that the others follow. slave_identifiersarray Yes Identifiers of the follower screens that keep in sync with the master. playlist_idinteger No Playlist to play in sync. Default: the playlist the master plays now. playlist_namestring No Name of the playlist, if the ID is not known. assume_prefixinteger No Subnet prefix to assume when a device reports no netmask (default 24). forceboolean No Go 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
Lists the software releases available to a balenaOS player, with their version and status, and shows which release the player is pinned to.get_device_releasesRead-onlyParameters of get_device_releases Parameter Type Required Description device_identifierstring Yes Identifier of the device. Example: “Which player software versions are available for the Lobby player?”
Update Device Release
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.update_device_releaseDestructive (asks first)Parameters of update_device_release Parameter Type Required Description device_identifierstring Yes Identifier of the device. release_idinteger No Release 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
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.install_appDestructive (asks first)Parameters of install_app Parameter Type Required Description device_identifierstring Yes The installer: an online player on the same network as the TVs (identifier, numeric ID or name). scanboolean No Only 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_modeboolean No Install onto every reachable LG TV on the network. Default false; use it only on a network you control, after a scan. targetsarray No IP addresses of the TVs to install to (when mass_mode is off). force_mode_keystring No Force Mode key for TVs that already run an app. Leave empty for the default key. app_urlstring No Address of a different player package (IPK) to install. Leave empty for the default build. request_idstring No ID 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
Adds a new screen to your account with the six-digit activation code (pairing code) that the screen shows, and gives it a name.create_deviceChanges dataParameters of create_device Parameter Type Required Description namestring Yes Name of the new device. activation_codestring Yes The 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
Changes the name of a device.rename_deviceDestructive (asks first)Parameters of rename_device Parameter Type Required Description device_identifierstring Yes Identifier of the device. new_namestring Yes The new name. Example: “Rename the Lobby screen to Lobby left.”
Update Device Info
Updates the profile of a device: name, address, map coordinates, contact phone, monitoring settings and photos of the installation.update_device_infoDestructive (asks first)Parameters of update_device_info Parameter Type Required Description device_identifierstring Yes Identifier of the device. namestring No Display name. addressstring No Address or description of the location. latitudenumber No Latitude of the location. longitudenumber No Longitude of the location. contact_phonestring No Contact phone number for the site. offline_thresholdstring No Offline threshold for monitoring; leave empty to keep the current value. ignore_errorsboolean No Ignore errors from this device. photointeger No Media-library file ID of a photo of the screen in its real location (upload it with upload_to_filer first). photo_deviceinteger No Media-library file ID of a photo of the device hardware. photo_powerinteger No Media-library file ID of a photo of the network switch or port. photo_audiointeger No Media-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
Removes a device from your account after you confirm. To give a device to another account and keep its history, use move_device instead.delete_deviceDestructive (asks first)Parameters of delete_device Parameter Type Required Description device_identifierstring Yes Identifier of the device. Example: “Remove the old Test screen from my account.”
Move Device
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.move_deviceChanges dataParameters of move_device Parameter Type Required Description device_identifierstring Yes Identifier of the device to move (from get_devices). new_ownerstring Yes The receiving account: username, email address or user ID. keep_schedulesboolean No Keep the schedules of the device (default true). keep_settingsboolean No Keep the settings of the device (default true). Example: “Move the Lobby and Entrance screens to the account shop-riga.”
Resolve Devices by Tag
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.resolve_devicesRead-onlyParameters of resolve_devices Parameter Type Required Description storestring No Store-number tag, for example 101. zonestring No Department or zone, for example Meat or Confectionery (Lithuanian names work too), or an exact tag name. tagsarray No More exact tag names that the screen also needs to have. matchstring No all (default): the screen needs every tag. any: at least one of them. One of: all,any.accountstring No Admin: look in this sub-account (username) instead of the current one. all_accountsboolean No Admin: look in every sub-account you can switch to. Example: “Which screen is in the meat department of store 101?”
Create Device Tag
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.create_device_tagChanges dataParameters of create_device_tag Parameter Type Required Description namestring Yes Name of the tag. parent_idinteger No ID of the tag group to create it in. Leave out to create a new top-level group. colorstring No Color code, for example #FF0000. Example: “Create a device tag Kaunas in the Cities group.”
Assign Devices to Tag
Adds one or more tags to one or more devices and keeps the tags they already have.assign_devices_to_tagChanges dataParameters of assign_devices_to_tag Parameter Type Required Description device_identifiersarray Yes Identifiers of the devices (from get_devices, not their names). tag_idsarray Yes IDs of the tags to add (from get_device_tags). Example: “Tag the Lobby and Entrance screens with Vilnius.”
Delete Device Tag
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.delete_device_tagDestructive (asks first)Parameters of delete_device_tag Parameter Type Required Description tag_idinteger Yes ID of the tag to delete (from get_device_tags). forceboolean No Delete 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
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.get_content_itemsRead-onlyParameters of get_content_items Parameter Type Required Description querystring No Part of the title to look for, not case-sensitive; an exact match is listed first. limitinteger No Maximum number of items (default 200, max 1000). offsetinteger No Number of items to skip, for paging through a long result. Example: “Find the content called Summer sale.”
Preview Content
Creates a preview link, so you can look at a content item in a browser before it goes on a screen.preview_contentRead-onlyParameters of preview_content Parameter Type Required Description content_idinteger Yes ID of the content item. Example: “Give me a preview link for content 1234.”
Rename Content
Renames a content item.rename_contentDestructive (asks first)Parameters of rename_content Parameter Type Required Description content_idinteger Yes ID of the content item. new_namestring Yes The new title. Example: “Rename content 1234 to Spring menu.”
Duplicate Content
Makes a copy of a content item, for example to change a version without touching the original.duplicate_contentChanges dataParameters of duplicate_content Parameter Type Required Description content_idinteger Yes ID of the content item to copy. Example: “Make a copy of the Weekend offer banner.”
Delete Content
Deletes content items after you confirm, up to 100 in one go, or only takes them out of one category.delete_contentDestructive (asks first)Parameters of delete_content Parameter Type Required Description content_idinteger No ID of one content item. content_idsarray No IDs of several content items (up to 100 per call). The result lists what was deleted and what failed. category_idinteger No Only 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
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.create_remote_content_from_uploadChanges dataParameters of create_remote_content_from_upload Parameter Type Required Description file_base64string No The file itself, base64-encoded (or as a data: URI). Preferred for files you have locally. urlstring No Web address to download the file from, or a Canva design link. Give either this or file_base64. filenamestring No Original file name with extension, for example promo.mp4, so the file type is detected correctly. content_typestring No MIME type, for example image/png or video/mp4. Worked out from the file name when left out. titlestring Yes Title of the content item. category_idsarray No Categories to put the content in. duration_secondsnumber No Play time in seconds for video or audio (more than 0). convertboolean No Whether to convert the content for the players (applies to all files). date_startstring No When playback starts: YYYY-MM-DD (the start of that day) or YYYY-MM-DDTHH:MM. date_stopstring No When playback stops: YYYY-MM-DD (the end of that day) or YYYY-MM-DDTHH:MM. filesarray No Several 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_outpaintboolean No Upload an image as it is, without outpainting. outpaint_confirmedboolean No You agreed that the image should be outpainted. upload_outpainted_confirmedboolean No You agreed that the outpainted preview should be saved. outpainted_urlstring No Address of the outpainted preview to save. target_aspect_ratiostring No Shape 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
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.get_media_upload_urlRead-onlyParameters of get_media_upload_url Parameter Type Required Description filenamestring Yes File name with extension, for example promo.mp4; it decides the media type. content_typestring No MIME type, for example video/mp4. Worked out from the file name when left out. convertboolean No Whether 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
Adds a web page, dashboard or web app as content: the player opens the address live, nothing is downloaded or converted.create_remote_url_contentChanges dataParameters of create_remote_url_content Parameter Type Required Description urlstring Yes The web address to show, for example https://example.com/dashboard. titlestring No Title of the content item. Default: taken from the address. durationinteger No How long to show it, in seconds (default 10). category_idsarray No Categories to put the content in. Example: “Add our sales dashboard at https://example.com/dashboard as content, 30 seconds each time.”
Check URL
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.check_urlRead-onlyParameters of check_url Parameter Type Required Description urlstring No The address to check. content_idinteger No Or 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
Adds a YouTube video as content; the title is taken from YouTube unless you give one.create_youtube_contentChanges dataParameters of create_youtube_content Parameter Type Required Description video_urlstring Yes The YouTube video address (youtube.com/watch?v=… or youtu.be/…). titlestring No Title of the content item. Default: the title on YouTube. category_idsarray No Categories to put the content in. date_startstring No Start of playback (ISO date-time). date_stopstring No End of playback (ISO date-time). Example: “Add this YouTube video as content and call it Brand film.”
Create YouTube Playlist Content
Adds every video of a YouTube playlist as a separate content item, with titles taken from YouTube.create_youtube_playlist_contentChanges dataParameters of create_youtube_playlist_content Parameter Type Required Description playlist_urlstring Yes The YouTube playlist address (it contains list=). category_idsarray No Categories to put the new items in. Example: “Import all videos from this YouTube playlist into the Videos category.”
Create Power BI Content
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.create_powerbi_contentChanges dataParameters of create_powerbi_content Parameter Type Required Description urlstring Yes Address of the Power BI report (app.powerbi.com). titlestring No Title of the content item. durationinteger No Play time in seconds (default 10). category_idsarray No Categories to put the content in. Example: “Put this Power BI sales report on the office screens.”
Update Canva Content
Refreshes a content item made from a Canva design, so the screens show its latest version, or points it to a different design.update_canva_contentDestructive (asks first)Parameters of update_canva_content Parameter Type Required Description content_idinteger Yes ID of the Canva content item. new_urlstring No A 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
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.upload_to_filerChanges dataParameters of upload_to_filer Parameter Type Required Description file_base64string No The file itself, base64-encoded (or as a data: URI). Preferred for files you have locally. urlstring No Web address of the file to download. Give either this or file_base64. filenamestring No Original file name with extension, so the file type is detected correctly. content_typestring No MIME type, for example image/png. Worked out from the file name when left out. titlestring No Name 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
Lists the HTML templates you can use, with the fields (parameters) each one accepts.get_parameterized_templatesRead-onlyParameters of get_parameterized_templates Parameter Type Required Description limitinteger No Maximum number of templates (default 100). Example: “Which templates can I use for a menu board?”
Get Template Context
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.get_template_contextRead-onlyParameters of get_template_context Parameter Type Required Description content_idinteger No ID of a template-based content item: returns its current values and the fields of its template. template_idinteger No ID of a template: returns only the fields it accepts. Example: “What prices are on the Lunch menu right now?”
Get Template Code
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.get_template_codeRead-onlyParameters of get_template_code Parameter Type Required Description template_idinteger Yes ID of the template. Example: “Show me the code of the Lunch menu template.”
Create Template
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.create_templateChanges dataParameters of create_template Parameter Type Required Description namestring Yes Name of the template. contentstring Yes The complete HTML, CSS and JavaScript code of the template. context_schemaobject Yes JSON Schema of the fields people can fill in. context_valuesobject No Values for the sample content item. media_typestring No image (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
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.create_template_contentChanges dataParameters of create_template_content Parameter Type Required Description template_idinteger Yes ID of the template. template_contextobject Yes Values for the fields of the template, as a JSON object that matches its schema. titlestring No Title of the content item. Default: the template name. durationinteger No Play time in seconds (default 10). category_idsarray No Categories to put the content in. date_startstring No Start of playback (ISO date-time). date_stopstring No End of playback (ISO date-time). Example: “Make a lunch menu from the Lunch template with these dishes and prices.”
Update Template Context
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.update_template_contextDestructive (asks first)Parameters of update_template_context Parameter Type Required Description content_idinteger Yes ID of the template-based content item. context_updatesobject Yes The fields to change, with their new values. Example: “Change the soup price on the Lunch menu to 3.50 €.”
Update Template Code
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.update_template_codeDestructive (asks first)Parameters of update_template_code Parameter Type Required Description template_idinteger Yes ID of the template. contentstring No The complete new HTML, CSS and JavaScript code (it replaces the old code). context_schemaobject No The complete new field definitions as JSON Schema (they replace the old ones). context_valuesobject No Values 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
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.rename_template_propertyDestructive (asks first)Parameters of rename_template_property Parameter Type Required Description template_idinteger Yes ID of the template. property_keystring Yes Key of the field in the schema, for example RowA (not its current label). new_titlestring Yes The new label. Example: “In the Lunch template, rename the field RowA to Main dish.”
Duplicate Template
Copies a template with its code, fields and categories, and gives the copy its own sample content, for example before making big changes.duplicate_templateChanges dataParameters of duplicate_template Parameter Type Required Description template_idinteger Yes ID of the template to copy. new_namestring No Name 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
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.create_two_columns_contentChanges dataParameters of create_two_columns_content Parameter Type Required Description left_file_idsarray Yes Media-library file IDs for the left column. right_file_idsarray Yes Media-library file IDs for the right column. left_delaynumber No Seconds between slides on the left (default 5). right_delaynumber No Seconds between slides on the right (default 5). titlestring No Title of the content item (default Two Columns). durationinteger No Play time in seconds (default 10). category_idsarray No Categories to put the content in. date_startstring No Start of playback (ISO date-time). date_stopstring No End of playback (ISO date-time). left_width_percentnumber No Width 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
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.get_content_ai_descriptionRead-onlyParameters of get_content_ai_description Parameter Type Required Description content_idinteger Yes ID of the content item. Example: “What does the text on the Weekend offer banner say?”
Check AI Title Suggestion
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.check_ai_title_suggestionRead-onlyParameters of check_ai_title_suggestion Parameter Type Required Description content_idinteger Yes ID of the content item. Example: “Did the AI suggest a better title for IMG_2041?”
Suggest Category for Content
Suggests up to three categories that fit a content item, based on its AI analysis, with the reason for each.suggest_category_for_contentRead-onlyParameters of suggest_category_for_content Parameter Type Required Description content_idinteger Yes ID of the content item. keywordsarray No Keywords from the AI analysis. Default: read from the item. summarystring No Summary from the AI analysis. Default: read from the item. Example: “Which category should the new pizza promo go into?”
Evaluate Content
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.evaluate_contentChanges dataParameters of evaluate_content Parameter Type Required Description content_idinteger Yes ID of the content item. device_identifierstring No A device, to judge the content against that screen and its environment photo. modestring No professional (default) for a formal assessment, roast for a playful critique. One of: professional,roast.email_tostring No Email address to send the report to. Example: “How well does the Spring promo work on the Entrance LED?”
Categories & restrictions 9 tools
Get Categories
Lists the content categories (folders) you can access.get_categoriesRead-onlyParameters of get_categories Parameter Type Required Description limitinteger No Maximum number of categories (default 100). Example: “Which content categories do I have?”
Get Category Items
Lists the content items in a category.get_category_itemsRead-onlyParameters of get_category_items Parameter Type Required Description category_idinteger No ID of the category. Example: “What is in the Promotions category?”
Create Category
Creates a new top-level content category (folder).create_categoryChanges dataParameters of create_category Parameter Type Required Description namestring Yes Name of the category. Example: “Create a category called Promotions Q3.”
Delete Category
Deletes a content category, or stops sharing it, after you confirm.delete_categoryDestructive (asks first)Parameters of delete_category Parameter Type Required Description category_idstring Yes ID of the category. Example: “Delete the Old campaigns category.”
Set Content Categories
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.set_content_categoriesDestructive (asks first)Parameters of set_content_categories Parameter Type Required Description content_idsarray Yes IDs of the content items (1 to 100). add_category_idsarray No Categories to add the items to. remove_category_idsarray No Categories to take the items out of. replaceboolean No If 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
Sets the first and the last day a content item may play, for example for a sale or an event.set_content_datesDestructive (asks first)Parameters of set_content_dates Parameter Type Required Description content_idinteger Yes ID of the content item. date_fromstring No First day to play (YYYY-MM-DD). Leave out to keep the current value. date_tostring No Last 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
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.set_content_restrictionChanges dataParameters of set_content_restriction Parameter Type Required Description content_idinteger No ID of the content item (preferred). content_namestring No Title of the content item, if the ID is not known. category_idsarray No Device tag IDs that a screen needs all of (one group of conditions). tag_namesarray No Device tag names, turned into IDs on the server (one group of conditions). rulesarray No Advanced: several groups of tag IDs; a screen that matches any one group plays the item. clearboolean No Remove 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
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.set_content_interval_gridDestructive (asks first)Parameters of set_content_interval_grid Parameter Type Required Description content_idsarray Yes IDs of the content items. on_durationinteger Yes Length of each on period, for example 2 for two weeks. on_unitstring Yes Unit of the on period. One of: days,weeks,months.off_durationinteger Yes Length of each off period. off_unitstring Yes Unit of the off period. One of: days,weeks,months.total_durationinteger No How long the pattern repeats in total, for example 6 for six months. Give this or end_date. total_unitstring No Unit of total_duration. One of: days,weeks,months.end_datestring No Last day of the pattern (YYYY-MM-DD). It takes precedence over total_duration. start_datestring No First day of the pattern (YYYY-MM-DD, default today). playlist_idsarray No Playlists to add the items to afterwards. Example: “Show this banner every other week until the end of the year.”
Invert Content Grid
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.invert_content_gridDestructive (asks first)Parameters of invert_content_grid Parameter Type Required Description source_content_idinteger Yes ID of the item whose schedule is inverted. content_idsarray Yes IDs of the items that get the inverted schedule. playlist_idsarray No Playlists 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
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.get_playlistsRead-onlyParameters of get_playlists Parameter Type Required Description querystring No Part of the playlist name, not case-sensitive; an exact match is listed first. limitinteger No Maximum number of playlists (default 200, max 1000). offsetinteger No Number of playlists to skip, for paging through a long result. Example: “Show me all my playlists.”
Get Playlist Items
Lists every item in a playlist.get_playlist_itemsRead-onlyParameters of get_playlist_items Parameter Type Required Description playlist_idinteger No ID of the playlist. Example: “What is in the Reception playlist?”
Create Playlist
Creates a new, empty playlist.create_playlistChanges dataParameters of create_playlist Parameter Type Required Description namestring Yes Name of the playlist. Example: “Create a playlist called Summer promotion.”
Copy Playlist
Makes a copy of a playlist with all its items, to reuse its structure.copy_playlistChanges dataParameters of copy_playlist Parameter Type Required Description playlist_idinteger No ID of the playlist to copy. Example: “Copy the Weekend playlist so I can make a holiday version.”
Rename Playlist
Renames a playlist.rename_playlistDestructive (asks first)Parameters of rename_playlist Parameter Type Required Description playlist_idinteger No ID of the playlist. new_namestring Yes The new name. Example: “Rename the Weekend playlist to Weekend summer.”
Delete Playlist
Deletes a playlist after you confirm.delete_playlistDestructive (asks first)Parameters of delete_playlist Parameter Type Required Description playlist_idinteger No ID of the playlist. Example: “Delete the Test playlist.”
Add Track to Playlist
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.add_track_to_playlistChanges dataParameters of add_track_to_playlist Parameter Type Required Description playlist_idinteger Yes ID of the playlist. content_idinteger Yes ID of the content item to add. insert_indexinteger No Position to insert it at (1 or higher). Leave out unless a specific position is wanted. confirmedboolean No Add 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
Removes an item from a playlist.remove_track_from_playlistDestructive (asks first)Parameters of remove_track_from_playlist Parameter Type Required Description playlist_idinteger Yes ID of the playlist. item_idinteger No ID of the playlist entry to remove. content_idinteger No Or 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
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.publish_playlistDestructive (asks first)Parameters of publish_playlist Parameter Type Required Description playlist_idstring No ID of the playlist. Leave out when giving playlist_name. playlist_namestring No Name of the playlist in your own words; case and accents are ignored. device_identifiersarray Yes Identifiers of the target devices (from get_devices; names are not accepted). publish_originalboolean No Send 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
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.scheduled_publishDestructive (asks first)Parameters of scheduled_publish Parameter Type Required Description playlist_idinteger Yes ID of the playlist. device_identifiersarray No Identifiers of the target devices (from get_devices). category_idsarray No Device tag IDs: every device with these tags gets the schedule, including devices tagged later. schedule_typestring No NOW (default) publishes immediately, DATETIME once at a set time, RECURRENT on a repeating schedule. One of: NOW,DATETIME,RECURRENT.datetimestring No For DATETIME: when to publish, YYYY-MM-DDTHH:MM:SS. patternstring No For RECURRENT: a cron pattern, for example 0 9 * * 1-5 for weekdays at 9:00. date_fromstring No For RECURRENT: when the schedule starts, YYYY-MM-DDTHH:MM:SS. date_tostring No For 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
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.verify_playlist_publicationRead-onlyParameters of verify_playlist_publication Parameter Type Required Description playlist_idstring Yes ID of the playlist that should be playing. device_identifiersarray Yes Identifiers of the devices to check (from get_devices). Example: “Are all the café screens playing the new Weekend playlist yet?”
Find Content Playback
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.find_content_playbackRead-onlyParameters of find_content_playback Parameter Type Required Description content_idinteger No ID of the content item (preferred). content_namestring No Title 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
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.analyze_playlist_variationsRead-onlyParameters of analyze_playlist_variations Parameter Type Required Description playlist_idinteger No ID of the playlist (preferred). playlist_namestring No Name 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
Reports how many times playlists were played on each device over a date range, grouped by hour, day, week or month.get_playlist_statsRead-onlyParameters of get_playlist_stats Parameter Type Required Description day_fromstring Yes First day (YYYY-MM-DD). day_tostring Yes Last day (YYYY-MM-DD). devicestring No Only this device (identifier from get_devices). playlist_idinteger No Only this playlist. Leave out for all playlists. hour_frominteger No Count only plays from this hour on (0 to 23). Meant for comparing hours; allowed only for short date ranges. hour_tointeger No Count only plays before this hour (1 to 24). Meant for comparing hours; allowed only for short date ranges. time_bucketstring No Grouping: 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
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.get_content_statsRead-onlyParameters of get_content_stats Parameter Type Required Description day_fromstring Yes First day (YYYY-MM-DD). day_tostring Yes Last day (YYYY-MM-DD). devicestring No Only this device (identifier from get_devices). content_idinteger No Only this content item. Leave out for all items. hour_frominteger No Count only plays from this hour on (0 to 23). Meant for comparing hours; allowed only for short date ranges. hour_tointeger No Count only plays before this hour (1 to 24). Meant for comparing hours; allowed only for short date ranges. time_bucketstring No Grouping: 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
Lists the accounts you can work in, or switches the session to one of them, so that the following requests act on that account.switch_accountDestructive (asks first)Parameters of switch_account Parameter Type Required Description account_usernamestring No Username of the account to switch to. Leave out to list the accounts. Example: “Which accounts can I switch to?”
Search Across Accounts
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.search_across_accountsRead-onlyParameters of search_across_accounts Parameter Type Required Description resource_typestring Yes What to search. One of: devices,content,playlists.querystring No Text to match, not case-sensitive. For devices it matches the name, the identifier or a tag name. status_filterstring No For devices: only this status, for example offline, online or error. accounts_filterarray No Only these accounts (usernames). Default: all sub-accounts. tagsarray No For devices: only those with these tag names. matchstring No For 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
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.attach_accountChanges dataParameters of attach_account Parameter Type Required Description account_usernamestring Yes Username of the account to add. Example: “Add the account shop-kaunas to my account list.”
Create Account
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.create_accountChanges dataParameters of create_account Parameter Type Required Description usernamestring Yes Username of the new account (unique). passwordstring No Password. Leave out to have a strong one generated and shown once. emailstring No Contact email address. first_namestring No First name of the account holder. last_namestring No Last name of the account holder. company_namestring No Company the account belongs to. parent_usernamestring No Account to create it under. Default: your account. Example: “Create a sub-account called shop-riga for our new client in Riga.”
Provision Account Access
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.provision_account_accessChanges dataParameters of provision_account_access Parameter Type Required Description account_usernamestring Yes Username 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
Shows your account settings and which features are on, such as automatic conversion, AI renaming and the chat button.get_user_settingsRead-onlyNo parameters.
Example: “Which AI features are switched on in my account?”
Change User Settings
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.change_user_settingsDestructive (asks first)Parameters of change_user_settings Parameter Type Required Description convert_contentboolean No Convert uploads automatically to a format the players can play. max_bitrateinteger No Maximum video bitrate for conversion, in kbps; 0 means no limit. upload_to_google_cloudboolean No Upload content to cloud storage for remote devices. show_chat_buttonboolean No Show the AI chat button in the dashboard. ai_similar_content_detectionboolean No Warn when a very similar item is added to a playlist. ai_smart_renameboolean No Let AI suggest better names for uploaded files. pdf_pages_per_imageinteger No How many PDF pages to put on one image when converting PDFs (1 to 5). custom_resolutionobject or array or string or null No Output 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
Lists the deleted devices and content in the trash, with type, name, deletion date and owner, to see what can be restored.get_trash_bin_itemsRead-onlyParameters of get_trash_bin_items Parameter Type Required Description content_typestring No Only this type of object, for example main.Device. sourcestring No gateway for devices, manage for content, all for both (default). One of: gateway,manage,all.Example: “What is in the trash?”
Restore Trash Bin Item
Restores a deleted device or content item from the trash.restore_trash_bin_itemChanges dataParameters of restore_trash_bin_item Parameter Type Required Description item_idstring Yes ID of the item in the trash, for example main.Device:123. sourcestring Yes gateway for a device, manage for content. One of: gateway,manage.Example: “Restore the Lobby screen I deleted by mistake.”
Permanently Delete Trash Bin Item
Deletes one item from the trash for good, after you confirm. It cannot be undone.permanently_delete_trash_bin_itemDestructive (asks first)Parameters of permanently_delete_trash_bin_item Parameter Type Required Description item_idstring Yes ID of the item in the trash, for example main.Device:123. sourcestring Yes gateway for a device, manage for content. One of: gateway,manage.Example: “Permanently delete the old Test screen from the trash.”
Empty Trash Bin
Empties the trash for good after you confirm; regular users delete only their own items. It cannot be undone.empty_trash_binDestructive (asks first)Parameters of empty_trash_bin Parameter Type Required Description sourcestring No gateway for devices, manage for content, all for both (default). One of: gateway,manage,all.Example: “Empty the trash.”
Totems 2 tools
Get Totem Status
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.get_totem_statusRead-onlyParameters of get_totem_status Parameter Type Required Description slugstring No Only the totem with this short name (slug). Leave out to list all of them. Example: “Is the totem switched on?”
Switch Totem On/Off
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.set_totem_activeDestructive (asks first)Parameters of set_totem_active Parameter Type Required Description activeboolean Yes true switches the totem on, false switches it off. slugstring No Short 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
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.ask_userDestructive (asks first)Parameters of ask_user Parameter Type Required Description questionstring Yes The question to show. optionsarray Yes Two to four short answers, shown as buttons. Example: “Delete the Test playlist, but ask me first.”
Get Tutorial
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.get_tutorialRead-onlyParameters of get_tutorial Parameter Type Required Description tutorial_codestring Yes Which 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
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.resolve_referenceRead-onlyParameters of resolve_reference Parameter Type Required Description termstring Yes The name or number as you wrote it. kindsarray No Only 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_updateChecks 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_imageRebuilds 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_assetAdds 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_contentCreates 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_contentEdits 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_deviceShows 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.
Related pages
- impressBox AI AgentThe same capabilities in the dashboard, WhatsApp and Slack.
- What is agentic digital signage?What an agent can safely automate on a screen network.
- Compare MCP serversDigital signage MCP servers side by side, with sources.
- Dynamic templatesTemplates the assistant can write and bind to live data.
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.