Skip to content
English
  • There are no suggestions because the search field is empty.

Kitcast MCP: manage your screens with an AI assistant

Kitcast MCP lets an AI assistant such as Claude, Cursor or Gemini CLI manage your screens for you. You connect it once with an API key, then tell it what you want in plain language: build a playlist, swap this week's photos, put an announcement on every screen of a location, schedule the lunch menu. Every change is saved as a version and can be undone. This article covers what Kitcast MCP is, how to set it up, what to say to it and what to do when something does not work.

In this article:

What it is

Before you start

Step 1. Create an API key

Step 2. Connect your assistant

Step 3. Check that it works

What to say to it

Things people say to it

Built-in scenarios

The safety net

Good to know

When something does not work

FAQ


What it is

MCP (Model Context Protocol) is the open standard that AI assistants use to work with other products. Kitcast runs an MCP server. Once your assistant is connected to it, the assistant can see your playlists, screens, media library and schedules, and can do the work of a content manager:

  • create playlists and add slides of 45 content types (images, video, documents, websites, YouTube, menus and announcements, QR codes, weather, news, calendars, social feeds, dashboards and more);
  • rename, reorder, re-time, pause, duplicate and delete slides, in one playlist or across many at once;
  • bring images, videos and documents into your media library from a link;
  • schedule playlists on groups of screens and put an urgent playlist on every screen of a group;
  • tell you which screens are offline, what is playing where and why, and who changed what;
  • undo any content or schedule change.

The assistant has a content manager's hands, not an administrator's. It cannot delete playlists, media or groups, cannot touch billing, members or device settings, cannot change a group's main playlist and never sees your passwords.

Works with: Claude Desktop, Claude Code, Cursor, Windsurf, VS Code (GitHub Copilot), OpenAI Codex CLI, Gemini CLI, and any other assistant that supports MCP. ChatGPT and claude.ai in the browser are not supported yet.


Before you start

  • Your workspace needs the External API feature. It is included in Pro plans. Whole-playlist undo and Draft mode also need Playlist Versions.
  • You need to be an owner or admin to create an API key.

Step 1. Create an API key

  1. Open Settings → API Keys in the Kitcast dashboard.
  2. Click Create key and give it a name. The name is what you will see as the author of every change the assistant makes, so name it after the assistant or the person using it, for example Claude — Maria.
  3. Choose the access level:

Level

The assistant can

Read

Look, report and audit. Nothing changes

Content (recommended)

Manage slides, playlists and the media library

Content + schedules

Everything above, plus decide when and where playlists play

       4. Choose the write mode:

Mode

What happens after a change

Live

Screens pick it up within about a minute

Draft

The change waits as a pending version until someone clicks Publish in the dashboard. Nothing reaches a screen without a human. Schedules cannot be edited in Draft mode

       5. Optionally restrict the key to certain playlists or groups.
            Everything outside the restriction is  invisible to the assistant.

       6. Copy the key. It starts with ki_ and is shown once. Treat it like a password.

Recommended setups

  • Trying it out: Content · Draft · restricted to one playlist.
  • Everyday content work: Content · Live.
  • One person runs everything: Content + schedules · Live.
  • Agency managing one client location: Content + schedules · Live · restricted to that group.

Create a separate key for each person or assistant. Deleting a key cuts access immediately.


Step 2. Connect your assistant

Open Settings → API Keys → Connect an AI agent (MCP). It shows the endpoint for your workspace and ready-made snippets for each assistant. The endpoint looks like https://external-api.<your Kitcast environment>/api/mcp and the key goes in the header Authorization: Bearer ki_….

Claude Code

Shell
claude mcp add --transport http kitcast <ENDPOINT> --header "Authorization: Bearer ki_…"

Claude Desktop, Cursor, Windsurf — add to the mcpServers section of the client's config:

JSON
{ "mcpServers": { "kitcast": { "type": "http", "url": "<ENDPOINT>", "headers": { "Authorization": "Bearer ki_…" } } } }

VS Code (GitHub Copilot) — .vscode/mcp.json:

JSON
{ "servers": { "kitcast": { "type": "http", "url": "<ENDPOINT>", "headers": { "Authorization": "Bearer ki_…" } } } }

OpenAI Codex CLI — ~/.codex/config.toml, with the key in an environment variable:

None
[mcp_servers.kitcast]
url = "<ENDPOINT>"
bearer_token_env_var = "KITCAST_API_KEY"

Gemini CLI — ~/.gemini/settings.json:

JSON
{ "mcpServers": { "kitcast": { "httpUrl": "<ENDPOINT>", "headers": { "Authorization": "Bearer ki_…" } } } }

A client that cannot send headers can be bridged with npx mcp-remote <ENDPOINT> --header "Authorization: Bearer ki_…".


Step 3. Check that it works

Ask your assistant:

What Kitcast tools do you have, and what can my key do?

It should list about 29 tools and your key's access level. Then try:

Give me a tour of my screens.

The assistant looks around your workspace, summarises it and suggests what to ask next.


What to say to it

You talk in plain language; the assistant turns it into actions. A few habits make it reliable:

  • Use the names from Kitcast. "the Lobby playlist", "the Reception group". The assistant finds the ids itself.
  • Say where a slide goes. "at the start", "after the Welcome slide", "in the right-hand zone". Otherwise it goes to the end of the first zone.
  • Give durations in seconds. The default is 10.
  • For pictures, videos and documents give a direct link to the file (ending in .jpg, .mp4, .pdf…) or name a file in your media library. A link to a web page that contains a picture is not a picture, and Kitcast will say so.
  • Ask it to look first when the change is big: "Show me what is in the playlist before changing anything."
  • Ask for a plan for anything large: "Tell me what you are going to do, then wait for my OK."
  • Name the set, not the items, for bulk work: "every playlist in the Stores group", "all slides called Summer sale".
  • Colors are hex (#FF4C00).
  • Times are the screens' local time. Say "keep the other windows" when adding a schedule window.

Things people say to it

Look around

Which screens are offline? What is playing in the lobby right now, and why? Where do we still show the "Summer sale" slide? Who changed the Lobby playlist yesterday?

Build and update content

Create a full-screen playlist "Reception — Autumn" in the Reception group with a welcome slide "Welcome to Acme" (white on #1E1E1E), the weather for Berlin, and our website for 20 seconds. In Cafeteria, replace the pictures of the "Menu of the week" slide with these three links, keep everything else. Add a QR code to https://acme.example/visit after the Welcome slide, title "Check in here", 15 seconds. Copy https://cdn.acme.example/video/brand.mp4 into my media library and use it in Showroom and Lobby.

Work across many playlists

Add this announcement image to the start of every playlist in the Stores group, 12 seconds, named "Black Friday teaser". Find every slide named "Black Friday teaser" and pause it.

Schedule (needs a Content + schedules key in Live mode)

Play Lunch menu on the Cafeteria screens on weekdays from 11:30 to 14:00. Keep the other windows. From 1 to 24 December play Holiday on Lobby. There is a fire drill at 3 pm. Put the Emergency notice playlist on every screen of the HQ group now. The drill is over. Clear the override on HQ.

Undo

Bring back the slide you just deleted. Show me the version history of Lobby and go back to the version before today's changes. Undo the last schedule change on Cafeteria.


Built-in scenarios

The server ships eight ready-made prompts. In clients that support MCP prompts (in Claude Code type / and look for kitcast) they appear as commands: kitcast-tour, audit-screens, weekly-content-update, build-playlist, announce-everywhere, schedule-playlist, emergency-override, undo-last-change. Each one looks first, proposes a plan, waits for your OK, then acts and reports the version numbers so everything can be undone. If your client does not show prompts, ask for the same thing in plain language.


The safety net

  • Everything is versioned. Every content change creates a new playlist version; every schedule change is a numbered history entry. Nothing is overwritten.
  • Undo at three levels. Restore a deleted slide, revert a whole playlist, revert a group schedule. You can do the same from the dashboard history.
  • Authorship. The API key's name is shown as the author in playlist history, schedule history and the activity feed.
  • Draft mode. Nothing reaches a screen until a person clicks Publish.
  • Restrictions. A restricted key cannot see anything outside its playlists and groups.
  • Checks before going live. Links must be public and really be an image, video or document. Content that a zone cannot display is refused with a hint. Content types outside your plan are declined.
  • Limits. 120 actions and 30 changes per minute per key. Imports by link are limited to 50 MB.
  • Repeating is harmless. A request that is already in effect changes nothing and leaves no history entry.

Good to know

  • A new playlist plays nowhere by itself. Schedule it on a group or make it the group's main playlist in the dashboard.
  • The main playlist is set in the dashboard. The assistant adds scheduled windows and overrides around it, but does not replace it.
  • Text announcements and other Smart templates (text, sale, menu, opening hours, directory, floor map) work in single-zone (full-screen) playlists. For a multi-zone layout, use them in the main zone of a separate playlist or give the assistant an image instead.
  • Calendars, Instagram, X, Facebook and Power BI use accounts you have already connected in the dashboard. The assistant never signs in anywhere and never asks for a password.
  • Tableau and Sigma work with public links only. Private dashboards are added in the dashboard.
  • Files on your computer go into the media library once (upload in the dashboard) or onto any public link; from there the assistant imports and places them.
  • "What is playing" is worked out from the schedule and the screen's timezone. Online and sync status is real. For a live picture, open Live preview on the screen's page.
  • Images and designs. Kitcast does not generate artwork itself. If your assistant can create an image or a designed board, it can publish it to a link, import it into your library and put it on a screen, all in one conversation.
  • Not available through MCP: AI Content, Image Composer, the Recruiter slide and playlist soundtrack. Slides made with them can still be reordered, re-timed and paused by the assistant.

When something does not work

The assistant says

What it means

What to do

"This API key (READ access) is not allowed to…"

The key level is too low

Create a Content or Content + schedules key

"… not found or not visible to this API key"

The playlist or group does not exist, or is outside the key's restrictions

Check the name; widen the restriction

"Widget type … is not enabled for this workspace"

Your plan does not include that content type

Choose another type or upgrade

"The image URL did not return an image… text/html"

The link points to a page, not a file

Give the direct file link, or upload to the library

"URL is not allowed"

The link points to a private or internal address

Host the file on a public address

"… not supported in zone 2 of a VH layout"

That zone cannot display the type

Use the zone it suggests or a single-zone playlist

"Connected account not found / needs to be re-authorized"

The third-party account is missing or expired

Connect or re-authorize it in Settings → Connected accounts

"DRAFT-mode keys cannot change schedules"

Schedules have no draft step

Use a Live key for scheduling

"Playlist has a pending draft by another author"

Someone else has an unpublished draft

Publish or discard it in the dashboard first

"Rate limit exceeded… retry in N s"

More than 30 changes or 120 actions in a minute

Wait; the assistant can continue by itself

"Added slide to 3 of 5 playlists, 2 failed"

A bulk request partly succeeded; each failure has a reason

Read the list, fix or skip the failed ones

"… is 83 MB; the limit for imports is 50 MB"

The file is too large to import by link

Upload it in the dashboard

"Internal error… (ref …)"

Something unexpected

Send the reference to Kitcast support

My change is not on the screen. Wait a minute. Then check that the playlist is scheduled on that group, the slide is not paused, the key is not in Draft mode, and the screen is online. The fastest check is to ask: "What is playing right now on the … group, and why?"


FAQ

Can it break my screens? It cannot delete playlists, media or groups and cannot touch devices. The worst case is unwanted content, and every change can be reverted. Start with a Draft key if you want a person to approve everything. 

Who is shown as the author of a change? The API key, by its name.

Does the assistant see my passwords? No. It uses accounts you connected in the dashboard and only sees whether they are valid. 

Can several people use it? Yes. Give each person or assistant their own key so the history stays meaningful. 

Does it work with ChatGPT or claude.ai in the browser? Not yet. Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Codex CLI and Gemini CLI work today.

How do I turn it off? Delete or downgrade the key in Settings → API Keys. Access ends immediately.