# Get started


> Connect an assistant to your workspace, then ask it three things that get harder in the dashboard.
Ten minutes, and the last one is the reason to bother.

## 1. Install the CLI

The MCP server lives inside it.

```bash
brew tap screenly/screenly-cli
brew install screenly-cli
```

## 2. Get a token

Workspace **Settings**, then **Security**, then **Tokens**. It is shown once. See [API tokens](/docs/developers/overview/api-tokens/).

Use a token from an account with the access you want the assistant to have, not necessarily your own. See [Permissions](/docs/developers/mcp/overview/permissions/).

## 3. Connect a client

In **Claude Desktop**, install the Screenly extension and paste the token. It goes into your operating system keychain rather than a config file. See [Connect a client](/docs/developers/mcp/overview/connect-a-client/) for where to get the bundle.

For Cursor and others, the JSON is in [Connect a client](/docs/developers/mcp/overview/connect-a-client/).

## Then ask it these three

### Something you would have had to look up

> "Which screens are offline, and how long have they been down?"

One call and some filtering. In the dashboard this is a sort and a scan; here it is a sentence, and the answer comes back as prose you can paste into a ticket.

### Something you would have clicked forty times

> "Find every screen labeled warehouse and assign the Safety Rotation playlist to them."

This is where it stops being a novelty. Labels are the assistant's lever on a fleet, exactly as they are yours, and `label_link_playlist` does in one call what forty clicks would.

Scope requests to a label rather than to everything. The blast radius of a misunderstood instruction is then one group.

### Something that did not exist a minute ago

> "Build me a dashboard showing our four production lines, and upload it as a Screenly app."

The assistant writes the page, then `edge_app_publish_from_html` wraps it for unattended playback, creates an instance, and deploys it. It lands in your Content library ready for a playlist.

That is the one that has no dashboard equivalent at all. See [Publish HTML as an app](/docs/developers/mcp/guides/publish-html-as-an-app/).

## What it will not do

There is no tool to pair a screen, change screen settings, or edit an app's configuration, so an assistant cannot do those however it is asked. Screens are read-only. See [Tool reference](/docs/developers/mcp/reference/tools/).

## Before you let it loose

**Scope the token.** It inherits the account's access exactly.

**Turn on confirmations** if your client offers them. Every destructive tool is annotated, so a client can ask before deleting a playlist.

**Check Now playing.** A screen's own page shows what is actually active on it, which is the fastest way to confirm the assistant did what you meant. See [A screen's own page](/docs/screens/overview/the-screen-page/).