Skip to main content
Glama

catt-mcp

tests License: MIT Python 3.10+

MCP server for casting YouTube videos and media to Chromecast/DLNA devices via catt.

Exposes 15 tools covering YouTube casting, playback control, dual-screen sync, and device discovery.

Demo

MCP client: the 15 tools, then cast_scan finding the TV

Recorded on the real network with docs/demo/record.sh: a minimal MCP client (docs/demo/mcp_demo.py) starts the server over stdio with CATT_DEVICE in the environment, lists the tools and calls cast_scan (read-only). Private IP addresses are replaced with documentation addresses.

Related MCP server: Chrome MCP Server

Tools

Outil

Rôle

cast_youtube

Caste une video YouTube sur la TV (URL ou ID de video)

cast_url

Caste une URL quelconque (video, audio, stream) sur la TV

cast_stop

Arrete le cast en cours sur la TV

cast_pause

Met en pause le cast en cours

cast_resume

Reprend la lecture du cast

cast_volume

Regle le volume du cast (0-100)

cast_seek

Avance ou recule dans la video

cast_status

Retourne le statut du cast en cours

cast_scan

Scanne les devices Chromecast/DLNA disponibles sur le reseau

cast_info

Retourne les infos detaillees du media en cours

cast_browser

Caste la video de l'onglet actif de Firefox sur la TV (YouTube, Twitch, etc.)

cast_browser_dual

Lance la video sur PC (Firefox) ET TV simultanement avec synchronisation (pour LightBeat)

cast_dual_resync

Resynchronise PC et TV en relancant la TV a la position Firefox

cast_dual_stop

Arrete le dual cast et le watcher de synchronisation

cast_dual_offset

Ajuste le decalage TV (positif=TV en avance, negatif=TV en retard)

YouTube ID extraction

_extract_video_id (URL watch?v=, youtu.be/, shorts/ or a bare 11-character ID, anything else rejected before it reaches catt/ADB) is deliberately duplicated in pylips-mcp (youtube_video, TV app with Premium account). Both servers stay installable on their own; each one tests its copy with the same table of cases (tests/test_youtube_id.py). Decision recorded on 2026-09-20.

Requirements

  • Python 3.10+

  • catt: pip install catt

  • yt-dlp: pip install yt-dlp

  • A Chromecast or DLNA-compatible device on the same network

  • lz4 (optional, for cache compression): pip install lz4

Dual cast (Linux + Hyprland)

cast_browser, cast_browser_dual, cast_dual_resync, cast_dual_stop and cast_dual_offset drive Firefox from the running desktop session. They are advertised only when the required binaries are present:

  • Hyprland with hyprctl in PATH

  • playerctl for MPRIS playback control

  • Firefox holding the video to mirror

  • lz4 (Python) to read Firefox's session cache

Without them the server starts normally and simply does not expose these five tools, instead of failing when they are called.

Installation en une ligne

uvx catt-mcp                 # depuis PyPI ; avant publication : uvx --from git+https://github.com/amineutron/catt-mcp catt-mcp

Configuration Claude Desktop / Claude Code (mcpServers) :

{ "catt": { "command": "uvx", "args": ["catt-mcp"], "env": { "CATT_DEVICE": "Living Room TV" } } }

Setup

1. Install dependencies

pip install mcp catt yt-dlp

2. Discover your device

catt scan

Note the device name (e.g. 55OLED705/12, Living Room TV).

3. Configure

Copy config.example.yaml to config.yaml:

catt:
  device: "55OLED705/12"   # Name from catt scan

4. Run

python server.py

Or with environment variable:

CATT_DEVICE="55OLED705/12" python server.py

The dual-screen tools (dual_cast, dual_resync, dual_offset) drive the TV through ADB and need its IP address. Set it with TV_HOST (or tv.host in config.yaml), for example TV_HOST="192.0.2.10"; the built-in default is only a placeholder.

Claude Desktop Configuration

{
  "mcpServers": {
    "catt": {
      "command": "python3",
      "args": ["/path/to/catt-mcp/server.py"],
      "env": {
        "CATT_DEVICE": "55OLED705/12"
      }
    }
  }
}

License

MIT

Part of the Lyra ecosystem

Dépôt

Rôle

lyra

assistant DevOps vocal, local par défaut (AGPL-3.0)

fedora-agents

MCP : machines virtuelles KVM et sauvegardes

mcp-tracking

MCP + API + tableau de bord des tâches longues

neutroncore

hub PWA du homelab

hue-mcp

MCP Philips Hue (fork de ThomasRohde/hue-mcp)

pylips-mcp

MCP TV Philips

denon-mcp

MCP ampli Denon

catt-mcp

MCP Chromecast et DLNA

Available Tools

10 tools
cast_infoA
Read-onlyIdempotent

Retourne les infos detaillees du media en cours

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context that this tool reports on the 'media en cours' and returns detailed info, but it does not disclose specifics like response shape or potential limitations. With annotations carrying the main behavioral burden, a 3 is appropriate.

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 a single, front-loaded, complete sentence with no wasted words. It conveys the action and target resource economically and is appropriately sized for a zero-parameter read-only tool.

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 parameterless read-only tool with strong annotations and no output schema, the description is mostly sufficient: an agent knows it can safely call this to get detailed current-media info. The main gap is the missing distinction from cast_status, but the invocation itself is fully clear.

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?

There are zero parameters, and schema description coverage is 100%, so there is no parameter ambiguity. Baseline for a parameterless tool is 4; the description adds no parameter semantics but none are needed.

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

Purpose4/5

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

The description clearly states the verb 'Retourne' and the resource 'les infos detaillees du media en cours', so an agent knows this is an information retrieval tool. However, it does not differentiate from the sibling cast_status, which likely serves a similar status-reporting purpose, so it falls short of a 5.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over alternatives such as cast_status or cast_scan. The description implies it is for the current media, but it does not state exclusions or explicitly route the agent to a sibling for other needs.

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

cast_pauseA
Idempotent

Met en pause le cast en cours

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already provide the key behavioral hints: idempotentHint=true, destructiveHint=false, readOnlyHint=false. The description adds only the scoping to the current cast ('en cours'), which is useful but not a major behavioral disclosure beyond the annotations.

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 a single concise sentence that immediately conveys the action and object. No filler or redundancy.

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 zero-parameter, idempotent, non-destructive action with no output schema, the description plus annotations provide everything an agent needs to 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?

The tool has zero parameters and schema coverage is 100%. There is nothing for the description to clarify, so the baseline of 4 for parameterless tools applies.

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 uses a specific verb ('Met en pause') and a specific resource ('le cast en cours'), clearly stating the action and its scope. It distinguishes from siblings like cast_resume and cast_stop without ambiguity.

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

Usage Guidelines4/5

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

The usage context is clear from the description alone: pause the ongoing cast. There are no explicit exclusions or references to alternative tools, but the action is specific enough that an agent can infer when to use it versus siblings.

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

cast_resumeB
Idempotent

Reprend la lecture du cast

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds no additional behavioral context. There is no mention of what happens if playback is already running, if no cast session exists, or what the tool returns. The description is consistent with the annotations but adds no value beyond them.

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?

A single, front-loaded sentence adequately describes a zero-parameter command. There is no filler, repetition, or unnecessary detail.

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

Completeness3/5

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

For a simple zero-parameter tool with informative annotations, the description is minimally sufficient. However, it omits useful context such as the prerequisite state (playback must be paused), possible edge cases, and what a successful resume implies. Adequate for a basic call, but not fully complete.

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 has zero parameters, so there is nothing the description needs to explain about inputs. The baseline of 4 applies because the schema fully covers the empty parameter set.

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

Purpose4/5

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

The description uses a specific verb ('Reprend' / resume) and a clear resource ('la lecture du cast'), making the tool's purpose unambiguous. It is implicitly distinguished from sibling commands like cast_pause and cast_stop, though it does not explicitly name an alternative. A clear, if minimal, statement.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus cast_play, cast_start, or cast_seek. The intended usage (resuming after a pause) is only implied by the tool name and sibling context. An agent receives no when-to-use or when-not-to-use instructions.

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

cast_scanA
Read-onlyIdempotent

Scanne les devices Chromecast/DLNA disponibles sur le reseau

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, and the description is fully consistent with these. The description adds the specific target (Chromecast/DLNA devices), which provides useful context beyond the annotations. No contradictions exist.

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 a single, concise sentence in French that front-loads the action and resource. It contains no filler or redundant information, making it highly efficient.

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, parameterless discovery tool, the description adequately states the action and scope. It does not explicitly describe the return format, but the tool name and description imply a list of devices. Given the annotations and lack of an output schema, it is sufficiently complete.

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 has zero parameters, so the description need not explain parameter semantics. The schema coverage is 100% (trivially, since there are no parameters), and the description adds no unnecessary information.

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 the tool scans for available Chromecast/DLNA devices on the network, using a specific verb (scan) and resource (devices). It differentiates from sibling cast_* tools that perform casting actions, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description implies this is the discovery step before casting, but it does not explicitly state when to use it versus alternatives. The context of sibling tools makes the intended usage clear, and there are no exclusions or alternative references, so it earns a 4 for clear context.

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

cast_seekC
Idempotent

Avance ou recule dans la video

ParametersJSON Schema
NameRequiredDescriptionDefault
secondsYesSecondes (positif = avancer, negatif = reculer)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate this is a mutating operation (readOnlyHint false) and idempotent (idempotentHint true). The description adds little beyond the schema's sign convention; it does not disclose side effects, whether the seek is relative or absolute, or error behavior (e.g., out-of-range). With the bar lowered by annotations, the description still fails to provide meaningful 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.

Conciseness4/5

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

The description is a single, efficient sentence with no filler. It is appropriately sized for a simple tool and front-loads the core action. It could be slightly richer without bloating, but it is not verbose or redundant.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema) and the annotations covering safety, the description is minimally adequate. It does not address return values, error conditions, or whether the seek is relative to current position, but these are partially inferable from the schema. For a low-complexity tool, this is marginal but not severely deficient.

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% and the schema description clearly defines the 'seconds' parameter with sign meaning. The tool description adds nothing beyond restating the action; it does not elaborate on units, range, or edge cases. Baseline of 3 is appropriate since the schema carries the semantic load.

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

Purpose4/5

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

The description states a specific verb ('avance' / 'recule') and resource ('la video'), making it clear this is a seek operation. It distinguishes itself from sibling controls like pause/resume/stop by implying time-based navigation, though it does not explicitly name any alternative. A 4 is warranted because the purpose is clear but not fully elaborated (e.g., relative vs absolute seeking).

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool vs alternatives. It merely states what it does, with no mention of preconditions, when to prefer it over other cast operations, or exclusions. This leaves the agent to infer usage from the sibling names, which is thin guidance.

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

cast_statusB
Read-onlyIdempotent

Retourne le statut du cast en cours

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the 'en cours' scoping but no additional behavioral detail such as what happens when no cast is active or whether the status can be empty.

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 a single short sentence with no filler or redundant wording. It is appropriately concise and the key information is front-loaded.

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

Completeness3/5

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

For a zero-parameter, read-only, idempotent tool, the inputs and side effects are adequately covered by the schema and annotations. However, there is no output schema and the description does not hint at possible status values or distinguish itself from cast_info, leaving some selection ambiguity.

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 has zero parameters and the schema fully documents this with an empty properties object and 100% coverage. The description has no parameter burden to carry, so the baseline 4 applies.

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

Purpose4/5

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

The description uses a specific verb 'Retourne' and identifies the resource as 'le statut du cast en cours', making it clear this is a read-only status check. However, it does not differentiate from the sibling cast_info, so it stops short of a 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use cast_status versus cast_info or the other cast_* siblings, and there are no exclusions or prerequisites. The agent must infer usage entirely from the tool name and minimal description.

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

cast_stopA
Idempotent

Arrete le cast en cours sur la TV

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare the operation as non-read-only, non-destructive, and idempotent. The description adds little beyond the core action; it does not disclose behavior when no cast is active, whether the TV session is fully terminated, or any side effects beyond stopping. This is acceptable but not highly transparent.

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 a single, clear French sentence that directly states the action without filler or redundancy. It is appropriately minimal for a zero-parameter tool and front-loads the essential information.

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 such a simple tool with no parameters, idempotent behavior in annotations, and no output schema, the description is largely sufficient. A minor gap is not mentioning how to verify success or that the operation targets the currently connected TV, but this is not a major omission given the tool's simplicity.

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 and the input schema is fully covered (100%). With no parameters to document, the description does not need to add parameter-level semantics, so it meets the baseline for a no-parameter tool.

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 uses a specific action verb ('Arrête') and names the clear resource ('le cast en cours sur la TV'), making it obvious that this tool ends an active casting session. It is easily distinguished from siblings like cast_pause, cast_resume, and cast_status by its stop semantics.

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

Usage Guidelines3/5

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

The intended use is implied by the verb 'stop' but not explicitly stated: there is no guidance on when to choose cast_stop over cast_pause, nor any mention of prerequisites such as an active cast. The sibling list helps infer the difference, but the description itself does not articulate it.

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

cast_urlA

Caste une URL quelconque (video, audio, stream) sur la TV

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL du contenu a caster

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover read-only, idempotency, and destructiveness, and the description adds the concrete behavior of casting arbitrary media. However, it does not disclose potential side effects like replacing current playback, network requirements, or failure modes, so it stays at a basic level.

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 one short, front-loaded sentence that conveys the action, the accepted input types, and the target device with no filler. Every word adds 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 simple one-parameter casting tool with no output schema and no nested objects, the description provides the essential context: what the tool does, what input it takes, and supported media types. It lacks details on return behavior or preconditions, but these are minor for this low-complexity tool.

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% for the single url parameter, but the tool description adds meaning by specifying that the URL can be video, audio, or stream content, and that it targets the TV. This goes beyond the schema's generic 'URL du contenu a caster'.

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 ('Caste') and resource ('URL quelconque') with the target ('sur la TV'), and lists supported media types (video, audio, stream). It distinguishes itself from the sibling cast_youtube by implying a generic URL cast rather than a YouTube-specific one.

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

Usage Guidelines3/5

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

The description implies broad usage for any URL, but it does not explicitly say when to use cast_url versus cast_youtube or other casting siblings. There is no exclusion or alternative routing, leaving the agent to infer the decision from the sibling names alone.

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

cast_volumeA
Idempotent

Regle le volume du cast (0-100)

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesNiveau de volume (0-100)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds no behavioral traits beyond the volume range, which is also present in the input schema. No contradiction exists.

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 one concise sentence that front-loads the action ('Regle le volume du cast') followed by the accepted range. Every word earns its place; there is no fluff or repetition.

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 one-parameter mutation tool, the description is adequate. The schema and annotations cover the parameter and safety profile, and there is no output schema requiring explanation. Sibling context clarifies that 'cast' refers to the cast device, so nothing essential is missing.

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 description coverage is 100%; the 'level' parameter is fully documented with type, min/max, and a French description. The tool description simply restates the same range without adding semantic nuance. Baseline 3 applies.

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 verb ('Regle' = adjusts), a clear resource ('le volume du cast'), and a value range (0-100). It is distinct from all sibling tools, none of which mention volume control, so an agent can immediately tell what this tool does.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives are mentioned. However, the tool's purpose is self-evident: use it to set the cast device's volume. This is implied usage, but there is no guidance on when not to use it or how it relates to siblings.

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

cast_youtubeA

Caste une video YouTube sur la TV (URL ou ID de video)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL YouTube (youtube.com/watch?v=xxx, youtu.be/xxx) ou ID de video

TDQS

A3.5/5.0
Behavior2/5

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

The description adds no behavioral traits beyond what annotations already convey. Annotations indicate this is a non-read-only, non-idempotent, open-world operation. The verb 'Caste' merely confirms a state-changing action, but the description does not disclose side effects (e.g., stopping current playback, requiring a selected device), prerequisites, or response behavior.

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?

A single, concise sentence that front-loads the action and target. Every word contributes value: it names the operation, resource, destination, and accepted input forms. There is no padding or redundancy.

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

Completeness3/5

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

For a simple one-parameter tool with no output schema, the description covers the core action and input. However, it omits any mention of prerequisites (e.g., TV must be on, a casting session must be active), side effects, or error conditions. Given the availability of sibling tools for device management, the description is adequate but not fully complete.

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% and the parameter description already states accepted formats: 'URL YouTube (youtube.com/watch?v=xxx, youtu.be/xxx) ou ID de video'. The tool description repeats the 'URL or ID' idea without adding new meaning, so it meets the baseline but does not exceed it.

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 verb and resource: 'Caste une video YouTube sur la TV' (casts a YouTube video on the TV). It clearly distinguishes this from the sibling cast_url (which presumably handles generic URLs) by specifying 'YouTube'. The input formats (URL or ID) are also mentioned, making the tool's role unambiguous.

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

Usage Guidelines3/5

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

Usage is implied: the description indicates this tool is for casting YouTube videos by URL or ID. However, it does not explicitly state when NOT to use it, nor does it reference alternatives like cast_url for non-YouTube content. The guidance is inferable but not explicit.

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.

  1. 10 tool updatesv0.2.1
    • First observedcast_info
    • First observedcast_pause
    • First observedcast_resume
    • First observedcast_scan
    • First observedcast_seek
    • First observedcast_status
    • First observedcast_stop
    • First observedcast_url
    • First observedcast_volume
    • First observedcast_youtube

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct purposes (stop, pause, resume, volume, seek, scan), but cast_status and cast_info could be confused since both return state-related information. cast_youtube and cast_url are similar but descriptions clarify the target type.

Naming Consistency5/5

All tools follow a consistent cast_ prefix with lowercase snake_case. The pattern is uniform: cast_<action> or cast_<target>, making the set predictable and easy to navigate.

Tool Count5/5

10 tools is well-scoped for a casting server, covering the essential actions without unnecessary bloat. Each tool earns its place in the workflow.

Completeness4/5

The set covers the full cast lifecycle: start, control, and query playback. Missing queue management or explicit device selection, but these are not core for basic casting operations.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Transforms Chrome browser into an AI-controlled automation tool that allows AI assistants like Claude to access browser functionality, enabling complex automation, content analysis, and semantic search while preserving your existing browser environment.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to control and automate your Chrome browser directly, leveraging existing login states and configurations for tasks like content analysis, semantic search across tabs, screenshots, network monitoring, and interactive operations.
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to control a Chrome browser through natural language, supporting navigation, interaction, tab management, and data extraction.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to control Chrome browser operations such as navigation, reading pages, taking screenshots, managing tabs, and more via a Chrome extension and native messaging.
    MIT