Skip to main content
Glama

Server Details

Create watch-together rooms, scheduled watch parties and branded class links. No sign-up.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.4/5.0

Scored across 7 tools

Disambiguation4/5

Each tool targets a distinct resource+action and the descriptions explicitly cross-reference each other (e.g. create_branded_link says to use create_watch_room for one-offs), which resolves most overlap. The residual confusion is that 'watch party' and 'watch room' are used for the same underlying object (create_watch_room vs get_watch_party/cancel_watch_party), so an agent must infer they operate on the same entity.

Naming Consistency4/5

All tools follow a clean verb_noun snake_case pattern (create_/get_/update_/delete_/cancel_). The one deviation is the entity noun: rooms are created as 'watch_room' but read/cancelled as 'watch_party', which breaks the otherwise predictable resource naming.

Tool Count5/5

Seven tools is well within the ideal range for this surface. Two entities (watch rooms, branded links) with their lifecycle operations map cleanly onto seven actions with no filler tools.

Completeness4/5

Branded links have full create/read/update/delete coverage, and watch rooms have create/read/cancel. The gap is that a scheduled watch party cannot be modified (e.g. changing start_time) and there is no way to list a user's existing rooms, though agents can work around this by recreating or cancelling and re-creating.

Available Tools

7 tools
cancel_watch_partyCancel a scheduled watch partyA
DestructiveIdempotent
Inspect

Cancels a watch party made with create_watch_room: its countdown page and link stop working. Needs the organiser_key (or organiser_link) that create_watch_room returned, so only the organiser can cancel. A room that is already open carries on until everyone leaves. Cannot be undone; confirm with the user first.

NameRequiredDescriptionDefault
room_codeNoThe 5-character room code. Not needed when organiser_link is given.
organiser_keyNoThe organiser_key from create_watch_room.
organiser_linkNoAlternatively, the organiser_link from create_watch_room.

Output Schema

NameRequiredDescription
okYesfalse when the call failed; then code says why.
codeNoError code when ok is false.
room_codeNoThe cancelled room code.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations that merely flag destructive and idempotent, the description discloses concrete consequences: the countdown page and link stop working, open rooms continue until everyone leaves, and the action cannot be undone. It also adds the critical safety requirement to confirm with the user first.

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 front-loaded with the core action and effect, then moves to prerequisites, side effects, and the irreversible-warning. Every sentence adds needed information with no 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 destructive mutation with a defined output schema, the description covers all essential agent-facing concerns: what it does, authorization inputs, what gets destroyed, behavior on already-open rooms, irreversibility, and confirmation guidance. Nothing necessary for correct invocation is missing.

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%, so the schema already documents each parameter. The description adds meaningful semantics beyond the schema by explaining that organiser_key/organiser_link proves organiser identity and is required for cancellation, giving the agent the 'why' behind those fields.

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 and resource ('Cancels a watch party'), and connects it to the sibling that creates the resource ('made with create_watch_room'). An agent can immediately distinguish this cancel operation from get_watch_party or create_watch_room.

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 clearly states the prerequisites ('Needs the organiser_key (or organiser_link)') and the authorization condition ('so only the organiser can cancel'), plus a required interaction step ('confirm with the user first'). It doesn't explicitly compare against a non-cancel alternative, but the when-to-use context is strong.

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

create_watch_roomCreate a watch-together roomAInspect

Creates a private ScreenParty room where friends watch the same video in sync, in their browsers, with chat and voice. Use it when the user wants to watch something together now, or plan a watch party at a set time. Without start_time the room is ready now: the first person to open room_link becomes the host (controls playback), so tell the user to open it before sharing. With start_time it returns a countdown page with "add to calendar" for guests; the room opens 15 minutes early, and organiser_link lets the user open it any time and host it. Share room_link or schedule_page with guests; keep organiser_link and organiser_key for the user only (they also cancel it with cancel_watch_party).

NameRequiredDescriptionDefault
titleNoWhat people will watch, e.g. "Lesson 3: Past tense". Defaults to "Watch party".
video_urlNoOptional video the room opens with. A direct video link (mp4, webm, m3u8) or a public YouTube video URL. Paid streaming services are not supported.
start_timeNoOptional. ISO 8601 date-time WITH a time zone, e.g. 2026-11-07T20:00:00+08:00 (ask the user for their time zone if unknown). Omit for a room that opens now. Up to 60 days ahead.

Output Schema

NameRequiredDescription
okYesfalse when the call failed; then code says why.
codeNoError code when ok is false.
opens_atNoISO time guests can enter (15 minutes before).
room_codeNo5-character room code.
room_linkNoLink guests open to join the room.
starts_atNoISO time it starts.
organiser_keyNoPrivate: needed to cancel with cancel_watch_party.
schedule_pageNoCountdown page with "add to calendar"; best link to share for a later party.
organiser_linkNoPrivate: opens the room as host, even before it opens to guests.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing mechanics: first opener becomes host, scheduled rooms open 15 minutes early, organiser_link confers hosting at any time, and organiser_key/organiser_link must be kept private. That is material context an agent could not infer from readOnlyHint/destructiveHint.

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?

Front-loads purpose, then branches on start_time, then link-sharing rules — a logical order with no filler. It runs long, and the link-sharing sentence is dense enough that it takes a second read, but every sentence carries real information.

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?

An output schema exists, so return values need not be explained, yet the description still clarifies the role of each returned link, which is the part an agent would most likely miscommunicate to a user. Nothing needed to call this correctly is missing.

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%, so the baseline is 3, but the description adds meaning the schema does not: the behavioral consequence of omitting start_time versus supplying it, and how that changes what gets returned and who can host. Timezone guidance stays in the schema rather than being duplicated.

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?

Opens with a specific verb and resource plus the distinguishing property: a private, in-browser, synced video room with chat and voice. It is clearly separable from CRUD siblings like get_watch_party or create_branded_link.

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

Usage Guidelines5/5

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

Explicitly names the two triggering intents ('watch something together now' or 'plan a watch party at a set time') and routes cancellation to cancel_watch_party by name. The start_time branch tells the agent which variant of usage applies.

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

get_watch_partyLook up a watch partyA
Read-onlyIdempotent
Inspect

Looks up a room or scheduled watch party by its 5-character code (from create_watch_room or from a ScreenParty link such as …/s/AB2CD or …room.html?room=AB2CD). Returns its title, start time, whether guests can enter yet and whether people are in it right now. Use it to answer "when does it start?" or "is it open?". Read-only; it never reveals who is in the room.

NameRequiredDescriptionDefault
room_codeYesThe 5-character room code, e.g. AB2CD.

Output Schema

NameRequiredDescription
okYesfalse when the call failed; then code says why.
codeNoError code when ok is false.
liveNoSomeone is in the room now.
titleNoTitle of a scheduled party.
opens_atNoISO time guests can enter.
room_codeNoRoom code.
room_linkNoJoin link.
starts_atNoISO start time.
schedule_pageNoCountdown page.
open_to_guestsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover readOnlyHint/idempotentHint, and the description adds genuine behavior: it discloses what the response tells you (title, start time, guest-entry status, live occupancy) and a privacy guarantee that it never reveals who is in the room. It stops short of describing failure behavior for invalid or expired codes, which would be the last piece.

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?

Identity and code format come first, then return contents, then the intent framing. Every clause earns its place; the URL examples are the only slightly dense part and they carry practical value.

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?

With an output schema present, the description need not enumerate return fields, yet it still summarizes them, and it covers code sourcing, privacy limits, and intended questions. Nothing needed to call this single-parameter read tool correctly is missing.

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 already 100%, so 3 would be the floor, but the description adds real value by explaining where the code comes from and giving the two URL patterns (.../s/AB2CD and ...room.html?room=AB2CD) an agent can parse from a user-supplied link. That extraction guidance is not in the schema.

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

Purpose5/5

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

States a specific verb ('looks up') and resource ('room or scheduled watch party') with the exact identifier form (5-character code), and names create_watch_room as the code's origin, which separates it from the create/cancel/delete siblings. An agent can tell instantly this is the read path in the watch-party family.

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?

Gives concrete triggering questions ('when does it start?', 'is it open?') so the agent knows when to reach for it. It does not explicitly rule out alternatives or state what to do when the lookup is the wrong choice (e.g., no code available), but the usage context is clear.

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. 7 tool updates
    • Addedcancel_watch_party
    • Changedcreate_branded_link2 fields changed
      • changedInput schema / properties / video_url / description
        Previous value: -"Optional video to load in the room: a direct video link or a public YouTube video."New value: +"Optional video to load in the room. A direct video link (mp4, webm, m3u8) or a public YouTube video URL. Paid streaming services are not supported."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "code": {
        +      "description": "Error code when ok is false.",
        +      "type": "string"
        +    },
        +    "edit_link": {
        +      "description": "Private edit link.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "false when the call failed; then code says why.",
        +      "type": "boolean"
        +    },
        +    "public_link": {
        +      "description": "Link to share.",
        +      "type": "string"
        +    },
        +    "slug": {
        +      "description": "The link ending.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Changedcreate_watch_room4 fields changed
      • changedInput schema / properties / start_time / description
        Previous value: -"Optional. ISO 8601 date-time with time zone, e.g. 2026-11-07T20:00:00+08:00. Omit for a room that opens now. Up to 60 days ahead."New value: +"Optional. ISO 8601 date-time WITH a time zone, e.g. 2026-11-07T20:00:00+08:00 (ask the user for their time zone if unknown). Omit for a room that opens now. Up to 60 days ahead."
      • changedInput schema / properties / title / description
        Previous value: -"What people will watch, e.g. \"Lesson 3: Past tense\"."New value: +"What people will watch, e.g. \"Lesson 3: Past tense\". Defaults to \"Watch party\"."
      • changedInput schema / properties / video_url / description
        Previous value: -"Optional. A direct video link (mp4, webm, m3u8) or a public YouTube video URL."New value: +"Optional video the room opens with. A direct video link (mp4, webm, m3u8) or a public YouTube video URL. Paid streaming services are not supported."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "code": {
        +      "description": "Error code when ok is false.",
        +      "type": "string"
        +    },
        +    "ok": {
        +      "description": "false when the call failed; then code says why.",
        +      "type": "boolean"
        +    },
        +    "opens_at": {
        +      "description": "ISO time guests can enter (15 minutes before).",
        +      "type": "string"
        +    },
        +    "organiser_key": {
        +      "description": "Private: needed to cancel with cancel_watch_party.",
        +      "type": "string"
        +    },
        +    "organiser_link": {
        +      "description": "Private: opens the room as host, even before it opens to guests.",
        +      "type": "string"
        +    },
        +    "room_code": {
        +      "description": "5-character room code.",
        +      "type": "string"
        +    },
        +    "room_link": {
        +      "description": "Link guests open to join the room.",
        +      "type": "string"
        +    },
        +    "schedule_page": {
        +      "description": "Countdown page with \"add to calendar\"; best link to share for a later party.",
        +      "type": "string"
        +    },
        +    "starts_at": {
        +      "description": "ISO time it starts.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "ok"
        +  ],
        +  "type": "object"
        +}
    • Addeddelete_branded_link
    • Addedget_branded_link
    • Addedget_watch_party
    • Addedupdate_branded_link
  2. 2 tool updates
    • First observedcreate_branded_link
    • First observedcreate_watch_room

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to create and manage ephemeral private chat rooms with end-to-end encryption, invite people or other agents via private links, and approve device fingerprints for real-time chat, drawing, and mini-games.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Ephemeral REST chatrooms where AI agents of different owners coordinate on a shared task. A room is one URL — no SDK, no registration. Tools: create_room, get_room, list_rooms, read_messages, send_message, get_context, verify_integrity.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables an AI assistant to run cloud live streaming end to end: starting and stopping broadcasts, reordering playback queues, searching and organizing the media library, planning stream schedules, and managing multistream destinations. It connects over a remote Streamable HTTP endpoint secured with OAuth or a personal access token, applying the same validation, ownership rules, and rate limits as the public REST API.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to turn video links from YouTube, TikTok, Instagram, X and Vimeo into usable context: transcripts, summaries, chapters, and searchable answers with timestamped links to the exact moment. All tools are read-only, and the hosted server needs no account or API key to start.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources