screenly mcp starts a server on stdio that exposes the Screenly API as a set of tools. An assistant connected to it can list screens, upload content, build playlists, manage labels, and publish an app.
It is part of the CLI, not a separate download. Every current build includes it.
Behaviour hints
Every tool is annotated with readOnlyHint, destructiveHint, idempotentHint, and openWorldHint.
That matters more than it sounds. A client can tell screen_list from playlist_delete without parsing English, and prompt for confirmation before a destructive call rather than after it. If your client supports confirmations, these are what drive them.
Roughly half the tools are read-only. The rest are split between creating things and modifying or deleting them.
What it is good at
Questions about a fleet. “Which screens in the Frankfurt plant are offline?” is a screen_list call and some filtering, answered without anyone writing a query.
Bulk work through labels. “Find every screen labeled Warehouse and assign the Safety Rotation playlist” is label_list then label_link_playlist, which is the shape where an assistant saves real time because the alternative is a lot of clicking.
Publishing something you just made. edge_app_publish_from_html turns a page an assistant generated into a Screenly app on your screens. See Publishing HTML as an app.
What it is not
It is not a separate permission system. The server holds no access of its own and does exactly what your token allows, in one workspace. See Permissions.