ScreenParty
Server Details
Create watch-together rooms, scheduled watch parties and branded class links. No sign-up.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 7 tools
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.
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.
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.
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 toolscancel_watch_partyCancel a scheduled watch partyADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| room_code | No | The 5-character room code. Not needed when organiser_link is given. | |
| organiser_key | No | The organiser_key from create_watch_room. | |
| organiser_link | No | Alternatively, the organiser_link from create_watch_room. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | false when the call failed; then code says why. |
| code | No | Error code when ok is false. |
| room_code | No | The cancelled room code. |
TDQS
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.
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.
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.
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.
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.
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_branded_linkCreate a branded watch-together linkAInspect
Creates a permanent public page (…/r/) with a name, an optional one-line description, colour and video. Everyone who opens it lands in that page's room, any time, so it suits teachers, classes, clubs and communities who reuse one link every week (for a one-off, use create_watch_room). Returns public_link to share and a private edit_link: the user opens it to add a logo and background and download a poster with a QR code, and it is needed for update_branded_link and delete_branded_link. Give edit_link only to the user, never to guests.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name shown on the page, e.g. "Ms. Lee's English Class". | |
| slug | No | Optional. The link ending: 3-30 lowercase Latin letters, digits and hyphens (e.g. lee-english). Made from the name if omitted. | |
| color | No | Optional theme colour as #rrggbb. | |
| tagline | No | Optional one line, e.g. "Every Tuesday at 8 pm". | |
| video_url | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | false when the call failed; then code says why. |
| code | No | Error code when ok is false. |
| slug | No | The link ending. |
| edit_link | No | Private edit link. |
| public_link | No | Link to share. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the safety profile is largely structured. The description adds the permanent public exposure model ('everyone who opens it lands in that page's room, any time') and a security directive ('Give edit_link only to the user, never to guests'), which is useful context. However, it does not state whether slug collisions fail or are modified, whether creating is reversible, or how errors surface – gaps that matter for a permanently addressable public resource.
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 definition is front-loaded with what the tool creates and why it exists, and every clause carries signal (permanence, return values, edit_link handling). It is denser than an ideal two-liner and could split the edit_link guidance into its own sentence, but nothing is padding.
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?
Even though an output schema exists, the description names the two key returns (public_link, edit_link) and explains what each is for and who may receive it – exactly the decision-relevant context. Combined with the sibling routing and permanence note, an agent has everything needed to call it 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 coverage is 100% and each parameter has a clear example-bearing description, so the schema does the heavy lifting. The prose only loosely maps to the fields ('a name, an optional one-line description, colour and video'), but it does add semantics the schema lacks – that the slug drives the public URL and that it is derived from the name when omitted.
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?
States a specific verb and resource ('Creates a permanent public page (…/r/<slug>)') and enumerates what the page carries (name, description, colour, video). It also makes the persistent-room behaviour explicit, so the agent can tell it apart from create_watch_room without opening a schema.
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?
Gives an explicit when-to-use condition ('suits teachers, classes, clubs and communities who reuse one link every week') and names the alternative for the opposite case ('for a one-off, use create_watch_room'). It further routes the edit_link to the update/delete siblings, covering the lifecycle.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | What people will watch, e.g. "Lesson 3: Past tense". Defaults to "Watch party". | |
| video_url | No | 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. | |
| start_time | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | false when the call failed; then code says why. |
| code | No | Error code when ok is false. |
| opens_at | No | ISO time guests can enter (15 minutes before). |
| room_code | No | 5-character room code. |
| room_link | No | Link guests open to join the room. |
| starts_at | No | ISO time it starts. |
| organiser_key | No | Private: needed to cancel with cancel_watch_party. |
| schedule_page | No | Countdown page with "add to calendar"; best link to share for a later party. |
| organiser_link | No | Private: opens the room as host, even before it opens to guests. |
TDQS
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.
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.
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.
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.
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.
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.
delete_branded_linkDelete a branded linkADestructiveIdempotentInspect
Permanently deletes a branded page made with create_branded_link; its public link and posters stop working. Needs the private edit_link (or slug and edit_key). Cannot be undone; confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | The page's slug (the part after /r/). Needed with edit_key when edit_link is not given. | |
| edit_key | No | The key after #k= in the edit link. | |
| edit_link | No | The private edit link returned by create_branded_link (…/r/<slug>/edit#k=<key>). Alternatively pass slug and edit_key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | false when the call failed; then code says why. |
| code | No | Error code when ok is false. |
| slug | No | The deleted slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the concrete blast radius (the public link and posters stop working), the irreversibility, and the required credentials. destructiveHint=true is already structured data, but the description explains what is actually destroyed and how to verify intent first.
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?
Three short sentences, each carrying distinct load: identity, credentials, and safety warning. The destructive warning is placed last where it lands as the final instruction before invocation.
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?
With an output schema present and rich annotations, the description covers everything an agent needs: what is deleted, what breaks, credential requirements, and confirmation policy. A low-complexity, single-resource deletion is fully specified.
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%, so baseline is 3, but the description adds a real constraint the schema lacks: no parameters are marked required, yet the tool needs either edit_link or the slug + edit_key pair. That either-or requirement is meaningfully supplied by the description.
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?
States a specific verb (permanently deletes) and resource (a branded page made with create_branded_link), tying it to its lifecycle counterpart. An agent can distinguish it from update_branded_link or cancel_watch_party without opening a schema.
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?
Gives concrete preconditions (needs the private edit_link or slug + edit_key) and an explicit procedural instruction (cannot be undone; confirm with the user first). It does not name a sibling as the alternative for non-destructive edits, but the confirmation gate is exactly the guidance a destructive tool needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_branded_linkLook up a branded linkARead-onlyIdempotentInspect
Shows what a branded page (…/r/) currently says: name, description, colour, video, whether it has a logo or background, and whether people are in its room right now. Use it before changing a page or to check a slug the user mentions. Read-only; needs no key.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The slug after /r/, or the whole public link. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | false when the call failed; then code says why. |
| code | No | Error code when ok is false. |
| live | No | Someone is in the room now. |
| name | No | Name. |
| slug | No | Slug. |
| color | No | #rrggbb. |
| tagline | No | One-line description. |
| has_logo | No | |
| video_url | No | Video the room opens with, if any. |
| public_link | No | Public link. |
| has_background | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the 'Read-only' clause is largely redundant, but 'needs no key' adds an auth requirement not present in structured data. The description also discloses that the response includes live room-presence data, which is a dynamic behavioral trait an agent should know about before calling.
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?
Two sentences, front-loaded with what is returned, then the usage rule. No filler, no restatement of the title.
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?
With a rich output schema, full annotation coverage and one documented parameter, the description covers purpose, usage and auth adequately. It does not mention behavior for an unknown or invalid slug, which is the only notable omission.
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 the single slug parameter, so the schema carries the weight and the baseline would be 3. The description adds marginal meaning by showing the …/r/<slug> URL form, which corroborates the schema's note that either the slug or the whole public link is accepted.
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 gives a specific verb (shows/reads) and resource (a branded page at …/r/<slug>) and enumerates exactly what is retrieved: name, description, colour, video, logo/background flags, and live room presence. This clearly separates it from create_branded_link, update_branded_link and delete_branded_link.
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 states two concrete usage contexts: 'before changing a page' and 'to check a slug the user mentions.' That is a clear when-to-use signal, though it stops short of naming an explicit alternative (e.g. get_watch_party) or a when-not-to-use condition.
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 partyARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| room_code | Yes | The 5-character room code, e.g. AB2CD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | false when the call failed; then code says why. |
| code | No | Error code when ok is false. |
| live | No | Someone is in the room now. |
| title | No | Title of a scheduled party. |
| opens_at | No | ISO time guests can enter. |
| room_code | No | Room code. |
| room_link | No | Join link. |
| starts_at | No | ISO start time. |
| schedule_page | No | Countdown page. |
| open_to_guests | No |
TDQS
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.
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.
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.
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.
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.
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.
update_branded_linkChange a branded linkAIdempotentInspect
Changes the name, description, colour or video of a branded page made with create_branded_link. Pass only the fields to change; the link itself (slug) stays the same, so posters and shared links keep working. Needs the private edit_link (or slug and edit_key). Pass video_url as an empty string to remove the video. Logo and background are changed on the edit page, not here.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name. | |
| slug | No | The page's slug (the part after /r/). Needed with edit_key when edit_link is not given. | |
| color | No | New theme colour as #rrggbb. | |
| tagline | No | New one-line description; empty string removes it. | |
| edit_key | No | The key after #k= in the edit link. | |
| edit_link | No | The private edit link returned by create_branded_link (…/r/<slug>/edit#k=<key>). Alternatively pass slug and edit_key. | |
| video_url | No | New video, or empty string for none. A direct video link (mp4, webm, m3u8) or a public YouTube video URL. Paid streaming services are not supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | false when the call failed; then code says why. |
| code | No | Error code when ok is false. |
| slug | No | Slug. |
| public_link | No | Public link (unchanged). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-readonly but idempotent and non-destructive mutation. The description adds important behavioral context beyond annotations: authentication requirements, partial-update semantics, slug immutability so shared links keep working, and video removal behavior.
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 front-loaded with the core purpose, then adds only operationally useful constraints in compact sentences. There is little waste, and the exclusion about logo/background is clearly separated.
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 7-parameter update tool with full schema coverage, annotations, and an output schema, the description covers the missing behavioral and usage context an agent needs. It explains authentication, partial updates, slug stability, removal semantics, and what is out of scope.
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 100%, so the schema already documents each parameter well. The description still adds useful semantics beyond the schema by explaining partial updates, the relationship between edit_link and slug/edit_key, and the consequences of changing video_url to an empty string.
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 verb and resource: it changes a branded page's name, description, colour, or video, and ties it to create_branded_link. It also clarifies that the slug stays the same, which distinguishes an update from link creation or deletion.
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 gives explicit usage rules: pass only fields to change, supply edit_link or slug plus edit_key, use an empty string to remove video, and change logo/background on the edit page rather than here. These are concrete when-to-use, prerequisite, and exclusion conditions.
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.
7 tool updates
- Added
cancel_watch_party - Changed
create_branded_link2 fields changed- changed
Input schema / properties / video_url / descriptionPrevious 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." - changed
Output 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" +}
- Changed
create_watch_room4 fields changed- changed
Input schema / properties / start_time / descriptionPrevious 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." - changed
Input schema / properties / title / descriptionPrevious 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\"." - changed
Input schema / properties / video_url / descriptionPrevious 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." - changed
Output 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" +}
- Added
delete_branded_link - Added
get_branded_link - Added
get_watch_party - Added
update_branded_link
2 tool updates
- First observed
create_branded_link - First observed
create_watch_room
Related MCP Connectors
Create and run 24/7 linear TV channels. Import videos by URL; we transcode, schedule and stream.
Create instant multiplayer browser-game rooms friends join from a link. No account or app needed.
Run a 24/7 live stream of pre-recorded videos, or live stream a recorded video at a set time.
Free no-signup group scheduling (a modern When2meet): share one link, find a time for everyone.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables 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.1MIT
- AlicenseNot gradedqualityCmaintenanceEphemeral 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

Upstream MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceEnables 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.1MIT- AlicenseNot gradedqualityBmaintenanceEnables 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.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.