Skip to main content
Glama
gibeon-io

@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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
typeYes
configNoFor image_slideshow items
asset_idNoFor image/video items
is_selectedNo
playlist_idYes
external_urlNoFor youtube items
schedule_endNo
schedule_startNo
duration_secondsNo

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even without annotations, the description discloses critical behavioral traits: type drives the payload structure, duration_seconds overrides the playlist default, schedule constraints apply, and items are appended at the end (requiring reorder for order changes). It could additionally mention permission requirements or error handling, but the provided behavioral context is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with sections for when to use/not use and 'What to know.' Bullet points parse complex conditional logic clearly. Every sentence carries functional weight; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, nested config objects, and no annotations or output schema, the description still delivers a complete mental model. It covers payload construction, ordering behavior, scheduling, and prerequisites, leaving minimal ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 30% schema description coverage, the description compensates by mapping each type to its relevant parameters: image/video→asset_id, youtube→external_url, image_slideshow→config.asset_ids[]. It also clarifies optional overrides (duration_seconds, schedule_start/end) and config sub-fields, adding meaning far beyond the raw JSON schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with 'Append a content item to a playlist' – a specific verb and resource. It explicitly lists supported item types (image, video, YouTube embed, image slideshow), distinguishing this append operation from sibling update, delete, and reorder tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes dedicated 'When to use' and 'When NOT to use' sections. The 'When NOT to use' section explicitly instructs that for images/videos, the asset must already exist (status='ready') and to use the asset upload flow first, providing an alternative path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
image_uriNoCover image URL
default_intervalNoDefault item duration in seconds

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the playlist starts empty, that optional params can be added later via update_playlist, and that add_playlist_item is needed to fill it. It also hints at duplicate-name considerations. This is strong behavioral context, though it doesn't cover error handling or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections and front-loaded purpose. Every sentence provides valuable information, and the length is appropriate for the tool's complexity without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers all essential aspects: what it does, when to use it, what parameters are needed, and post-creation steps. It is complete for an AI agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, with name lacking a description. The description compensates by clarifying that name is the only required parameter, and that default_interval and image_uri are optional and can be added later via update_playlist. This adds meaning beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Create a new empty playlist in the calling tenant,' which is a specific verb+resource statement. It clearly distinguishes the tool from siblings like list_playlists, get_playlist, update_playlist, and add_playlist_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit 'When to use' and 'When NOT to use' sections, providing clear guidance on bootstrapping content or splitting a playlist, and warns to list_playlists first to avoid duplicate names. This fully contextualizes when to use this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
playlist_idYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description discloses critical behaviors: irreversibility, cascade deletion of content_items, and the 204 success return. It also warns about consequences for players still referencing the playlist, which is beyond the basic delete action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear one-sentence summary followed by bullet-point sections for usage and known behaviors. Every sentence adds value, and the formatting improves scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with one param and no output schema, the description covers all necessary context: what the tool does, when to use it, what side effects occur, and what response to expect. No gaps remain given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter playlist_id is not explicitly described, but the description's scope ('delete a playlist') makes its purpose obvious. Since schema coverage is 0%, the description could have elaborated further, but the self-explanatory nature of the single required param outweighs the lack of explicit documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Permanently delete a playlist and all its items,' using a specific verb and resource. It also distinguishes itself from related tools like delete_playlist_item by emphasizing the cascade deletion of content_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'When to use' and 'When NOT to use' sections provide clear guidance, including alternatives such as unassigning via update_player and deleting items individually. This fully covers when to invoke this tool versus siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYes
playlist_idYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does an excellent job. It discloses that the operation is irreversible, that remaining items stay in order, that sort_order gaps are normalized server-side, and that the underlying asset is not deleted. These are exactly the non-obvious behavioral traits an agent needs to know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a single-sentence purpose, followed by short labeled sections. Every line earns its place, and the formatting makes it scannable and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter delete tool with no output schema and no annotations, the description covers purpose, usage boundaries, irreversibility, side effects (ordering/normalization), and scope (asset not deleted). This is complete enough for an agent to select and invoke the tool correctly without further clarification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for its two UUID parameters. While the names are self-explanatory, the description adds crucial semantic context by clarifying that item_id refers to the playlist item, not the underlying asset. It does not explicitly map each parameter, but it communicates the key distinction that prevents misuse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line 'Remove an item from a playlist' is a specific verb+resource that clearly distinguishes this from the sibling delete_playlist (which removes an entire playlist). The additional note that the asset itself is NOT deleted further disambiguates the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit 'When to use' and 'When NOT to use' sections, with a named alternative (update_playlist_item with is_selected: false). This leaves no doubt about when to invoke this tool versus a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
player_idYesUUID of the player

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the return shape matches list_players' data items, states 404 behavior for missing ids, and clarifies tenancy scoping ('never cross-tenant'). This is meaningful behavioral context beyond a simple 'fetch' statement, though it doesn't cover auth or rate limits, which are less critical for a single-get operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear labeled sections: 'When to use', 'When NOT to use', and 'What to know'. Each sentence provides essential information without redundancy. It is concise yet comprehensive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter fetch tool with no output schema, the description sufficiently covers the operation: what it returns (same shape as list_players), error behavior (404), and tenancy constraint. No critical gaps remain given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for player_id ('UUID of the player'), so the description doesn't need to add parameter details. The description mentions having a player_id as a prerequisite, but adds no new syntax or meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a single player by id.' This is a specific verb+resource with scope, and it distinguishes from siblings like list_players (multiple players) and update_player (modification). No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'When to use' and 'When NOT to use' sections. It says use when you have a player_id and need state/content/last-seen, and NOT to use when you only have a name, directing to list_players first. This provides clear guidance and an explicit alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
playlist_idYes
include_itemsNoInline the playlist items in the response

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the difference in response with include_items=true vs. without, and the polymorphic item shapes depending on content type. It could add error-handling or missing-playlist behavior, but the disclosed details are valuable and non-obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections: a one-sentence summary, usage contexts, exclusions, and behavioral notes. Every sentence adds value; there is no fluff or repetition, and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter fetch tool with no output schema, the description is quite complete: it explains the optional param's effect on the returned shape and warns about item type variance. It could mention what happens when include_items is omitted or how a missing playlist is handled, but these are minor gaps for a low-complexity read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (only include_items has a description). The description clarifies include_items by explaining the exact response difference, going beyond the schema's vague 'Inline the playlist items in the response.' It also implicitly reinforces playlist_id as the identifier despite the schema lacking a description for that field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+scope: 'Fetch a single playlist by id, optionally with its content items inline.' It clearly distinguishes from sibling tools like list_playlists, which lists all playlists, and from item manipulation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit 'When to use' and 'When NOT to use' sections, naming the alternative list_playlists for simple name/id lookups. It also gives concrete use cases like inspecting queued items or obtaining item ids before reordering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by reachability
group_idNoFilter by player group UUID

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the behavioral disclosure burden. It adds important operational details: pagination cap of 25, no pagination in MVP, and the precise definition of 'online' as a heartbeat within 90 seconds, which goes well beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with an actionable first sentence, then organized into clear bullets. Every section earns its place, and there is no redundant elaboration of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a low-complexity list tool: it covers scope, filters, result limit, status semantics, and usage guidance. It does not enumerate return fields, which is a minor gap given that no output schema is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents both optional filters at 100% coverage, so the baseline is 3. The description adds value by explaining the meaning of the status filter ('online' = heartbeat within the last 90 seconds) and connecting filters to discovery use cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'List the digital-signage players (screens) in the calling tenant', using a specific verb and resource with explicit scope. This clearly distinguishes it from siblings like list_playlists and get_player.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit 'When to use' and 'When NOT to use' sections, including a concrete alternative: 'call get_player instead, it's cheaper' when a specific player_id is known. This gives an agent clear selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the return fields (id, name, timestamps), the tenant scoping, and the current version limitation (item-level CRUD lands in v0.2.0). While it doesn't mention pagination or error behavior, for a zero-parameter list operation this is solid coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear lead-in ('List the playlists in the calling tenant') and labeled sections ('When to use', 'When NOT to use', 'What to know'). Every sentence adds value, and there is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description provides everything needed: a clear verb+resource, usage and exclusion guidance, return contents, and a version caveat. The context from sibling tools and the empty schema are complemented by the description's thoroughness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter information to add beyond the schema. The baseline for zero parameters is 4, and the description appropriately avoids inventing parameters or discussing parameter formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('List the playlists') on a specific resource ('in the calling tenant') and immediately distinguishes itself from related tools like get_playlist and list_players. It explicitly frames the purpose as surfacing playlist names and ids for assigning to a player, which leaves no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is an explicit 'When to use' section (e.g., before assigning a playlist to a player via update_player) and a 'When NOT to use' section that references get_playlist for inspecting items. This clearly directs the agent to the correct tool for different tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
player_idNoSpecific player to publish; omit to publish every player

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so excellently. It explains batch behavior (omit player_id publishes all), per-player failure handling (returns in 'failed' without aborting), the 'skipped' category with a reason, snapshot durability, and the heartbeat/timing aspect. This is comprehensive behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with clear sections and uses bullet points for readability. Every sentence adds meaningful information with no fluff. The length is appropriate for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the operation's trigger, the batch-wide scope, return behavior ('failed', 'skipped' with reasons), durability, and the 10-second heartbeat expectation. Even without an output schema, this gives the agent enough context to invoke the tool correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents player_id with the omit-to-publish-all behavior. The description adds nuance by mentioning 'every player in the tenant' and the batch failure context, which goes beyond the schema description. Thus it adds value above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Build a fresh content snapshot') with a clear resource ('player') and outcome ('picks up its current content assignment'). It also distinguishes this tool from sibling tools by focusing on the publishing flow, not playlist management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'When to use' and 'When NOT to use' sections provide clear guidance, including a concrete trigger ('update_player returned publish_required: true') and an explicit exclusion case (field-only rename). This fully satisfies the dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idsYesAll current item ids of the playlist, in the desired final order
playlist_idYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It reveals critical behavior: item_ids must contain every current item, mismatches return 422 reorder_mismatch, and the server uses a two-phase update to avoid constraint conflicts. These are non-obvious details essential for correct invocation and understanding side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured with clear headings and bullets. Every sentence delivers useful information—usage, constraints, error handling, and mechanism—with no redundancy or filler. The length is appropriate for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is highly informative for a tool with no annotations and no output schema, covering operation, use cases, constraints, error behavior, and underlying mechanism. The only gap is the lack of any mention of the success response or return value, which would make it fully complete for an agent expecting a specific outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes item_ids with the same constraint ('All current item ids of the playlist, in the desired final order') and covers 50% of parameters. The description reiterates this constraint and the error condition, but adds no new semantic meaning for playlist_id. It provides some reinforcement but does not compensate for the gap in playlist_id, so a baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb and resource: 'Set the playback order of a playlist's items in one call.' This clearly distinguishes it from sibling tools like add/update/delete playlist item, which perform different operations. The purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit 'When to use' and 'When NOT to use' sections, outlining appropriate scenarios and the trade-off for simple moves. This gives agents practical guidance on when this tool is preferable to alternatives, far exceeding generic descriptions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
group_idNo
player_idYes
orientationNo
planning_idNo
playlist_idNo
sequence_idNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description takes on the full burden and discloses key side effects: assigning *_id schedules a publish and returns publish_required: true, null clears an assignment, and the one-of constraint among playlist_id/sequence_id/planning_id. However, it doesn't specify error behavior (e.g., for invalid player_id or conflicting IDs) or idempotency, so it stops short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a summary line followed by 'When to use', 'When NOT to use', and 'What to know' sections. It uses bullet points for readability and contains no redundant filler; every sentence adds operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, no output schema, and no annotations, the description covers the essential operational contract: mutable fields, publish scheduling, null clearing, and the one-of constraint. It stops short of fully defining group_id and the result of a player_id-only call, but overall it gives an agent enough to invoke the tool correctly in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It lists all mutable fields and explains orientation values, null-clearing syntax, and the mutual-exclusion rule for content-assignment IDs. However, it does not clarify the meaning of group_id or what happens when only player_id is provided, leaving some parameter semantics underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Patch mutable fields on a single player,' which clearly identifies the verb (patch), resource (mutable fields on a player), and scope (single player). It further distinguishes from sibling tools by noting when NOT to use it (content authoring tools) and its relationship to publish_players.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When to use' section explicitly lists concrete user intents (rename, change orientation, reassign content), while the 'When NOT to use' section directs users to dedicated content-authoring tools. It also instructs to call publish_players to apply changes, providing clear alternative/next-step guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
image_uriNo
playlist_idYes
default_intervalNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to rely on, the description carries the full burden. It discloses that only three fields are mutable, that image_uri:null clears the cover, and that updates do NOT trigger publish. It lacks details on error handling and auth, but covers the most consequential behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured with short, purposeful sections and bullet points. Every sentence adds distinct value, and the scannable layout makes it easy for an agent to extract routing and behavioral information quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata patch with no output schema, the description provides a complete operational picture: what is mutable, null semantics, and the publish side-effect. Generic auth/error details are omitted but are typically constant across tools. The description is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It names the mutable fields and adds semantic meaning for image_uri (null clears) and default_interval (default item duration). The required playlist_id is self-evident from the schema, and the additional details go beyond schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Patch a playlist's metadata,' which is a specific verb+resource combination. It then enumerates the exact mutable fields (name, default_interval, image_uri) and distinguishes itself from item-level sibling tools, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit 'When to use' and 'When NOT to use' sections. It names concrete scenarios for use and directs users to add_playlist_item / update_playlist_item / delete_playlist_item for item changes, plus the publish_players caveat—exemplary routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
configNo
item_idYes
asset_idNo
is_selectedNo
playlist_idYes
external_urlNo
schedule_endNo
schedule_startNo
duration_secondsNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description thoroughly handles behavioral disclosure. It states that only provided fields are touched, that null can clear nullable fields, and that changing type requires a delete+add, all of which are non-obvious patch semantics. This goes beyond a simple 'update' and gives the agent essential behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections and concise bullet points. Every sentence adds value—no filler—and the key message ('Patch an existing content item') is front-loaded immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 params, nested config, no output schema, no annotations), the description covers the core usage questions: when to use, when not, partial update semantics, and mutable fields. Minor gaps remain around the 'config' parameter and error/validation behavior, but the description is largely complete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% coverage and 10 parameters, so the description must compensate. It lists all mutable fields and explains null clearing, but does not explain the opaque 'config' object or the format constraints for schedule_start/end. Parameter names are self-explanatory for most fields, but 'config' remains undefined, so only partial semantic support is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Patch an existing content item.' It clearly distinguishes this tool from siblings by using the term 'content item' and listing specific use cases like renaming or changing duration, which sets it apart from reorder and delete operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When to use' and 'When NOT to use' sections explicitly state when this tool is appropriate and when to use alternatives such as delete+add for type changes and reorder_playlist_items for reordering. This gives the agent clear decision criteria with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv0.2.1
    • First observedadd_playlist_item
    • First observedcreate_playlist
    • First observeddelete_playlist
    • First observeddelete_playlist_item
    • First observedget_player
    • First observedget_playlist
    • First observedlist_players
    • First observedlist_playlists
    • First observedpublish_players
    • First observedreorder_playlist_items
    • First observedupdate_player
    • First observedupdate_playlist
    • First observedupdate_playlist_item

TDQS

A4.6/5.0
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

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    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
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for interacting with MindReset devices to display text, icons, and images on device screens.
    36
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gibeon-io/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server