Manage Screenbird digital signage screens: see what is live, show content, create designs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Put a scene live: every screen and sub-screen in the scene switches at once, in place of what it shows. Running it again puts changes to the scene live. A screen only shows the scene once it is online and has a player paired; each result includes online and paired when the connection may read screens.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Put a scene live: every screen and sub-screen in the scene switches at once, in place of what it shows. Running it again puts changes to the scene live. A screen only shows the scene once it is online and has a player paired; each result includes online and paired when the connection may read screens.
| Argument | Type | Description |
|---|---|---|
| scene_id* | string |
{
"type": "object",
"required": [
"scene_id"
],
"properties": {
"scene_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$"
}
},
"additionalProperties": false
}Check whether a device (as the user names it, for example "Samsung TV", "Chromecast", "iPad") works with Screenbird. Returns works, coming_soon, does_not_work, works_in_browser or unknown, with an explanation.
| Argument | Type | Description |
|---|---|---|
| device* | string |
{
"type": "object",
"required": [
"device"
],
"properties": {
"device": {
"type": "string",
"maxLength": 80
}
},
"additionalProperties": false
}Create a design (a full-screen slide for a screen, such as a menu, an announcement or an event poster) from a description. It picks a fitting template, fills in the text and adds stock photos where the template has them; no images are generated with AI. The design is saved in the team's files and can be shown on a screen or used in a scene. Each design uses the account's AI budget, with at most 20 designs per hour.
| Argument | Type | Description |
|---|---|---|
| name | string | Name of the design in Screenbird. Optional. |
| brief* | string | What the design must show, in the user's words, with all texts, prices, times and names to put on it. |
| language | string | Two-letter language code of the texts on the design (en, nl, de, ...). |
| orientation | string | Screen orientation. Default landscape. |
{
"type": "object",
"required": [
"brief"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"description": "Name of the design in Screenbird. Optional."
},
"brief": {
"type": "string",
"maxLength": 4000,
"description": "What the design must show, in the user's words, with all texts, prices, times and names to put on it."
},
"language": {
"type": "string",
"description": "Two-letter language code of the texts on the design (en, nl, de, ...)."
},
"orientation": {
"enum": [
"landscape",
"portrait"
],
"type": "string",
"description": "Screen orientation. Default landscape."
}
},
"additionalProperties": false
}Steps to install the Screenbird player on a device type, ending with the pairing code that the user enters in the dashboard.
| Argument | Type | Description |
|---|---|---|
| device* | string |
{
"type": "object",
"required": [
"device"
],
"properties": {
"device": {
"enum": [
"signage_stick",
"fire_tv",
"android_tv",
"windows",
"macos",
"linux",
"raspberry_pi",
"browser"
],
"type": "string"
}
},
"additionalProperties": false
}List the team's scenes in their order, with their state (live, partly live, changed since it went live, off) and which screens and sub-screens each scene sets (at most 20 targets per scene; targets_total is the real number). Results come in pages: pass next_cursor as cursor for the next page.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Scenes per page. Default 25. |
| cursor | string | next_cursor from the previous page. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Scenes per page. Default 25."
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous page."
}
},
"additionalProperties": false
}List the connected team's screens: online status and what each screen and sub-screen shows right now (its normal content, pushed content, a scene or screen mirroring), with the end time if there is one. Also returns the account's time zone and current local time. Filter with query (part of a screen or sub-screen name) or screen_id. Results come in pages: pass next_cursor as cursor for the next page.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Screens per page. Default 25. |
| query | string | Part of a screen or sub-screen name. |
| cursor | string | next_cursor from the previous page. |
| screen_id | string | One screen. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Screens per page. Default 25."
},
"query": {
"type": "string",
"maxLength": 100,
"description": "Part of a screen or sub-screen name."
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous page."
},
"screen_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$",
"description": "One screen."
}
},
"additionalProperties": false
}Show content on one screen, or on one sub-screen of a split screen, in place of what it shows now, until a time or until it is put back to normal. A split screen needs a subscreen_id. Returns what the screen shows afterwards. Content only appears once the screen is online and has a player paired; the result includes online and paired when the connection may read screens.
| Argument | Type | Description |
|---|---|---|
| until | string | When to go back to normal: local time of the account without an offset (for example 2026-10-23T18:00), or a time with an offset (2026-10-23T18:00:00+02:00). At most 90 days ahead. Leave out to show it until it is put back to normal. |
| screen_id* | string | |
| content_id* | string | |
| subscreen_id | string |
{
"type": "object",
"required": [
"screen_id",
"content_id"
],
"properties": {
"until": {
"type": "string",
"description": "When to go back to normal: local time of the account without an offset (for example 2026-10-23T18:00), or a time with an offset (2026-10-23T18:00:00+02:00). At most 90 days ahead. Leave out to show it until it is put back to normal."
},
"screen_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$"
},
"content_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$"
},
"subscreen_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$"
}
},
"additionalProperties": false
}End all scenes and all pushed content on the team's screens. Screen mirroring keeps running.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}End one scene: its screens go back to their own content.
| Argument | Type | Description |
|---|---|---|
| scene_id* | string |
{
"type": "object",
"required": [
"scene_id"
],
"properties": {
"scene_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$"
}
},
"additionalProperties": false
}End pushed content or a scene on one screen or sub-screen; it goes back to its own content.
| Argument | Type | Description |
|---|---|---|
| screen_id* | string | |
| subscreen_id | string |
{
"type": "object",
"required": [
"screen_id"
],
"properties": {
"screen_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$"
},
"subscreen_id": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$"
}
},
"additionalProperties": false
}Search the team's content that can be shown on a screen: files, designs, apps, split screens and playlists. Newest first. Returns the id, name and type of each item.
| Argument | Type | Description |
|---|---|---|
| type | string | |
| limit | integer | Default 20. |
| query | string | Part of the name. Leave empty to list recent content. |
{
"type": "object",
"properties": {
"type": {
"enum": [
"file",
"design",
"app",
"split_screen",
"playlist"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Default 20."
},
"query": {
"type": "string",
"maxLength": 100,
"description": "Part of the name. Leave empty to list recent content."
}
},
"additionalProperties": false
}Search the Screenbird help center (how features work, setup, troubleshooting). Returns up to 3 articles with title, summary and link; set full to true for the complete text of each article.
| Argument | Type | Description |
|---|---|---|
| full | boolean | Return the complete article text. Default false. |
| query* | string | What the user wants to know, in their own words. |
| language | string | Two-letter language code of the user (en, nl, de, fr, ...). Articles come in that language. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"full": {
"type": "boolean",
"description": "Return the complete article text. Default false."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "What the user wants to know, in their own words."
},
"language": {
"type": "string",
"description": "Two-letter language code of the user (en, nl, de, fr, ...). Articles come in that language."
}
},
"additionalProperties": false
}