Skip to main content
Glama
@gibeon/mcp-server

@gibeon/mcp-server

Official
by gibeon-io

@gibeon/mcp-server

Deprecated. Use the hosted MCP at https://api.gibeon.io/mcp instead.

This stdio package authenticated with gib_live_ API keys, which Gibeon has removed: the public API is now OAuth-only. The package no longer works as documented and is unmaintained. The hosted MCP runs the same tools, authorizes via OAuth automatically, needs no install, and updates instantly.

MCP server for the Gibeon digital signage platform. Control your players, manage playlists, and trigger publishes from Claude Desktop, Cursor, Claude Code, or any other MCP-aware client.

Hosted MCP (use this)

{
  "mcpServers": {
    "gibeon": {
      "url": "https://api.gibeon.io/mcp"
    }
  }
}

No token goes in the config. The client authorizes itself via OAuth on first connect: it discovers the auth requirements from the server, registers, and you approve access on the Gibeon consent screen (where you pick the tenant). Works in Claude Desktop, Claude Code, and Cursor. Full flow: https://www.gibeon.io/auth.md.

Related MCP server: mcp-plex

Tools (13 total)

Players + publish

Tool

What it does

list_players

List the screens in your tenant, optionally filtered by status/group.

get_player

Fetch one player by id.

update_player

Rename, reassign content, change orientation. Returns publish_required.

publish_players

Build a fresh snapshot for one player or every player in the tenant.

Playlists + items

Tool

What it does

list_playlists

List the playlists in your tenant.

get_playlist

Fetch one playlist, optionally with its content items inline.

create_playlist

Create a new empty playlist.

update_playlist

Rename, change default interval, swap cover image.

delete_playlist

Permanently delete a playlist and its items.

add_playlist_item

Append an image / video / image slideshow / YouTube embed to a playlist.

update_playlist_item

Patch an existing item's name / duration / schedule / asset / config.

delete_playlist_item

Remove a single item from a playlist.

reorder_playlist_items

Set the full playback order in one call.

Example prompts

"How many players are online in my Gibeon tenant?" → calls list_players with status: "online".

"Create a playlist called Lobby Morning, add the welcome image, then point screen 7f3a… at it and republish." → create_playlist + add_playlist_item + update_player + publish_players.

License

MIT

Available Tools

13 tools
add_playlist_itemAdd item to playlistA

Append a content item to a playlist.

When to use:

  • Adding an image, video, YouTube embed, or image slideshow to an existing playlist.

When NOT to use:

  • For images/videos: the asset must already exist (status='ready'). Use the asset upload flow first.

What to know:

  • type drives the rest of the payload:

    • image / video → asset_id (UUID, already-uploaded asset)

    • youtube → external_url (a youtube.com or youtu.be link)

    • image_slideshow → config.asset_ids[] (1+ already-uploaded image UUIDs) plus optional image_duration / transition_speed / fit / bg_color / randomize

  • duration_seconds overrides the playlist's default_interval for this item.

  • schedule_start / schedule_end (HH:MM or HH:MM:SS) constrain the item to a time window.

  • The item is appended at the end; use reorder_playlist_items to change order.

Inputs: type (required), playlist_id (required), name, config, +6 more.

create_playlistCreate playlistA

Create a new empty playlist in the calling tenant.

When to use:

  • Bootstrapping content for a player, or splitting an existing playlist.

When NOT to use:

  • A playlist with that name might already exist — list_playlists first if reuse is acceptable.

What to know:

  • Only name is required. default_interval (seconds) and image_uri (cover-art URL) are optional and can be added later via update_playlist.

  • The playlist starts empty; use add_playlist_item to fill it.

Inputs: name (required), image_uri, default_interval.

delete_playlistDelete playlistA

Permanently delete a playlist and all its items.

When to use:

  • The playlist is no longer used by any player and you want to free up the name.

When NOT to use:

  • A player still references this playlist — unassign it first via update_player (set playlist_id: null), otherwise the player will lose its content on next publish.

  • You only want to clear items but keep the playlist — delete the items individually.

What to know:

  • Irreversible. Cascade-deletes the playlist's content_items.

  • Returns 204 on success.

Inputs: playlist_id (required).

delete_playlist_itemDelete playlist itemA

Remove an item from a playlist.

When to use:

  • Pruning content that's no longer relevant.

When NOT to use:

  • You want to keep the item but skip it for now — set is_selected: false via update_playlist_item instead.

What to know:

  • Irreversible. The remaining items stay in order; gaps in sort_order are normalised on the server.

  • The asset itself is NOT deleted (other playlists may reference it).

Inputs: item_id (required), playlist_id (required).

get_playerGet playerA

Fetch a single player by id.

When to use:

  • You have a player_id and need its current state, assigned content, or last-seen timestamp.

When NOT to use:

  • You only have the player's name — list_players first to resolve the id.

What to know:

  • Returns the same shape as list_players' data items.

  • 404 if the id does not exist in the calling tenant — never cross-tenant.

Inputs: player_id (required).

get_playlistGet playlistA

Fetch a single playlist by id, optionally with its content items inline.

When to use:

  • The user wants to inspect what's actually queued on a playlist.

  • You need the item ids before reordering or patching items.

When NOT to use:

  • For just the name/id — list_playlists is one round-trip.

What to know:

  • include_items=true returns the playlist with its items array; otherwise only the playlist row.

  • Item shape depends on type (image/video/image_slideshow/youtube). Inspect type before assuming asset_id vs external_url vs config.

Inputs: playlist_id (required), include_items.

list_playersList playersA

List the digital-signage players (screens) in the calling tenant.

When to use:

  • You need to discover which players exist before reading or changing them.

  • The user asks "how many screens are online?" or wants an overview.

When NOT to use:

  • You already know a specific player_id — call get_player instead, it's cheaper.

What to know:

  • Optional filters: status ("online" | "offline"), group_id (UUID).

  • Returns up to 25 players per call; pagination is not yet exposed in MVP.

  • "online" means a heartbeat arrived within the last 90 seconds.

Inputs: status, group_id.

list_playlistsList playlistsA

List the playlists in the calling tenant.

When to use:

  • You need to surface playlist names and ids before assigning one to a player via update_player.

When NOT to use:

  • For inspecting the items inside a playlist — get_playlist (v0.2.0) returns the playlist with its items inline.

What to know:

  • Returns id, name, and timestamps. Item-level CRUD lands in v0.2.0 of this MCP server.

Inputs: no named parameters.

publish_playersPublish playersA

Build a fresh content snapshot so one or every player picks up its current content assignment.

When to use:

  • update_player returned publish_required: true.

  • The user changed a playlist's items elsewhere and asks to make screens reflect it.

When NOT to use:

  • For a single field-only rename — that takes effect immediately without publish.

What to know:

  • Omit player_id to publish every player in the tenant. Per-player failures are returned in "failed" without aborting the batch.

  • Players with no playlist/sequence/planning assigned are listed under "skipped" with reason "no_content_assigned".

  • Snapshots are durable; the player pulls them on its next heartbeat (typically within 10 seconds).

Inputs: player_id.

reorder_playlist_itemsReorder playlist itemsA

Set the playback order of a playlist's items in one call.

When to use:

  • The user wants to promote/demote a few items, or apply a freshly-computed order.

When NOT to use:

  • You only want to move one item by one position — same call still works, but reading + emitting the full list is the cost.

What to know:

  • item_ids MUST contain every current item of the playlist, in the desired final order.

  • A missing or extra id returns 422 with reorder_mismatch.

  • Server uses a two-phase update (negative offset then final) to avoid UNIQUE(parent_id, sort_order) conflicts mid-flight.

Inputs: item_ids (required), playlist_id (required).

update_playerUpdate playerA

Patch mutable fields on a single player.

When to use:

  • The user wants to rename a player, change its orientation, or reassign content.

When NOT to use:

  • For content authoring — playlists, sequences, and planning have their own dedicated tools (coming in v0.2.0).

What to know:

  • Mutable fields: name, orientation ("landscape" | "portrait" | "portrait-reverse"), playlist_id, sequence_id, planning_id, group_id.

  • Assigning a *_id schedules a publish — the response includes publish_required: true. Call publish_players to make the player actually pick up the change.

  • Pass null to clear an assignment (e.g. playlist_id: null).

  • Exactly one of playlist_id / sequence_id / planning_id may be non-null at a time.

Inputs: player_id (required), name, group_id, orientation, +3 more.

update_playlistUpdate playlistA

Patch a playlist's metadata.

When to use:

  • Renaming a playlist, changing its default item duration, or swapping the cover image.

When NOT to use:

  • For changing items — use add_playlist_item / update_playlist_item / delete_playlist_item.

What to know:

  • Only name, default_interval, image_uri are mutable here. Pass image_uri: null to clear the cover.

  • Updating a playlist does NOT trigger a publish on its own; a player assigned to this playlist still needs publish_players to pick up the new items list.

Inputs: playlist_id (required), name, image_uri, default_interval.

update_playlist_itemUpdate playlist itemA

Patch an existing content item.

When to use:

  • Renaming an item, adjusting duration_seconds, changing a schedule window, swapping the asset on an image/video item.

When NOT to use:

  • For changing type — delete the item and add a new one (type drives a different validation surface).

  • For reordering — use reorder_playlist_items.

What to know:

  • Only the provided fields are touched. Pass null on nullable fields to clear them.

  • Mutable: name, duration_seconds, is_selected, schedule_start, schedule_end, asset_id, external_url, config.

Inputs: item_id (required), playlist_id (required), name, config, +6 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.6/5.0

    Scored across 13 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action (players vs playlists vs playlist items, list/get/create/update/delete/publish). Even similar operations like update_player vs publish_players are clearly differentiated by their descriptions.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern in lowercase snake_case (list_players, get_playlist, add_playlist_item, reorder_playlist_items). Plural vs singular usage is conventional and predictable.

    Tool Count5/5

    13 tools is well-scoped for the player/playlist/playlist-item domain. Each tool covers a distinct operation, and the count is within the ideal range.

    Completeness3/5

    Playlist items have full CRUD plus reorder, and players cover list/get/update/publish. However, update_player can assign sequence_id or planning_id, yet there are no tools to manage sequences or planning, creating a dead end for those workflows. Asset management is also external, but that may be out of scope.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A FastAPI-based MCP server that integrates with smartscreen.tv, allowing you to programmatically control web displays by displaying media, sending notifications, and controlling playback via HTTP commands.
      1
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      MCP server for sending Gotify push notifications to your devices.
      1
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      MCP server for interacting with MindReset devices to display text, icons, and images on device screens.
      4
      35
      ISC