@gibeon/mcp-server
OfficialAllows adding YouTube videos as playlist items in the Gibeon digital signage platform.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@gibeon/mcp-serverlist my online players"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@gibeon/mcp-server
Deprecated. Use the hosted MCP at
https://api.gibeon.io/mcpinstead.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 the screens in your tenant, optionally filtered by status/group. |
| Fetch one player by id. |
| Rename, reassign content, change orientation. Returns |
| Build a fresh snapshot for one player or every player in the tenant. |
Playlists + items
Tool | What it does |
| List the playlists in your tenant. |
| Fetch one playlist, optionally with its content items inline. |
| Create a new empty playlist. |
| Rename, change default interval, swap cover image. |
| Permanently delete a playlist and its items. |
| Append an image / video / image slideshow / YouTube embed to a playlist. |
| Patch an existing item's name / duration / schedule / asset / config. |
| Remove a single item from a playlist. |
| Set the full playback order in one call. |
Example prompts
"How many players are online in my Gibeon tenant?" → calls
list_playerswithstatus: "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.
Links
License
MIT
Available Tools
13 toolsadd_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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| config | No | For image_slideshow items | |
| asset_id | No | For image/video items | |
| is_selected | No | ||
| playlist_id | Yes | ||
| external_url | No | For youtube items | |
| schedule_end | No | ||
| schedule_start | No | ||
| duration_seconds | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| image_uri | No | Cover image URL | |
| default_interval | No | Default item duration in seconds |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| playlist_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| player_id | Yes | UUID of the player |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes | ||
| include_items | No | Inline the playlist items in the response |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by reachability | |
| group_id | No | Filter by player group UUID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| player_id | No | Specific player to publish; omit to publish every player |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| item_ids | Yes | All current item ids of the playlist, in the desired final order | |
| playlist_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| group_id | No | ||
| player_id | Yes | ||
| orientation | No | ||
| planning_id | No | ||
| playlist_id | No | ||
| sequence_id | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| image_uri | No | ||
| playlist_id | Yes | ||
| default_interval | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| config | No | ||
| item_id | Yes | ||
| asset_id | No | ||
| is_selected | No | ||
| playlist_id | Yes | ||
| external_url | No | ||
| schedule_end | No | ||
| schedule_start | No | ||
| duration_seconds | No |
TDQS
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.
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.
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.
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.
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.
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.
13 tool updates
v0.2.1- First observed
add_playlist_item - First observed
create_playlist - First observed
delete_playlist - First observed
delete_playlist_item - First observed
get_player - First observed
get_playlist - First observed
list_players - First observed
list_playlists - First observed
publish_players - First observed
reorder_playlist_items - First observed
update_player - First observed
update_playlist - First observed
update_playlist_item
TDQS
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.
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.
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.
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
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
The official Planning Center MCP server for interacting with your ministry's data.
MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.
The official MCP Server for the Mux API
MCP server for Ably — channel history, presence, occupancy, stats, publish, and app management.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA 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.1MIT
- AlicenseAqualityCmaintenanceMCP server for Plex Media Server, focused on media discovery, search, library management, and playback control.25MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for interacting with MindReset devices to display text, icons, and images on device screens.36-
- AlicenseBqualityDmaintenanceMCP Server for Git operations, agent templates, and project utilities.9115MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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