What the MCP server is

The CLI's operations, exposed as tools an assistant can call, with hints that tell a client which ones are destructive.

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.

Type to search the documentation