Skip to main content
Glama

Server Details

Create narrated presentations from HTML, poll build status, list them, read one back as text.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Tool DescriptionsA

Average 4.3/5 across 8 of 8 tools scored. Lowest: 3.7/5.

Server CoherenceA
Disambiguation4/5

Most tools are clearly distinct, with create/get/list/publish/update separating actions and resources. The main ambiguity is between create_presentation and publish_narrated_presentation, though the descriptions do clarify that one is server-narrated and the other uses locally synthesized audio.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: create_, get_, list_, publish_, update_. The naming is predictable and makes the action and target resource easy to identify.

Tool Count5/5

Eight tools is well-scoped for the presentations domain, covering authoring, publishing, status, reading, analytics, and channel configuration. There is no bloat, and each tool has a place in the workflow.

Completeness4/5

The core lifecycle is covered: fetch spec, create/publish, check status, list, read shared context, and view analytics. Obvious gaps like deleting or unpublishing a presentation are missing, but they are workable around and do not severely break the primary authoring-to-analytics workflow.

Available Tools

8 tools
create_presentationCreate narrated presentationA
Destructive
Inspect

Generate a narrated presentation from an html-presentation/v1 document. BEFORE authoring, call get_presentation_spec and follow it exactly — slides without its narration markup publish SILENT. Returns a presentationId; poll get_presentation_status until it is ready.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug; defaults to a slugified title.
titleNo
assetsNoFiles the document references relative to itself — fonts, images, Lottie/Rive animations, sound-effect audio, video clips. The SERVER fetches each https url at create time and stores it in the bundle, so reference `assets/...` paths in your HTML and list the sources here instead of inlining base64. 10MB per asset, 30MB total.
dryRunNoSandbox: run every check a real create runs (format, slug and org conflicts, tier cap, credit preflight) and write nothing. The reply has status "validated" and the webUrl a real create would publish at. Use it to test an integration without touching the channel.
handleNoPublish under a specific channel handle you own.
voiceIdNoNarration voice. ElevenLabs: a bare id or cloud:<id>. Self-hosted Kokoro: kokoro:<id> (e.g. kokoro:af_heart); local:<id> is accepted as a synonym. Omit to use the voice saved on the account (bisque.cloud/account), falling back to the server default.
designMdNoDesign frontmatter mapped to theme tokens.
contextMdNoShared-with-viewer context.md.
indexHtmlYesFull html-presentation/v1 document (the presentation-format meta gate applies).
visibilityNounlisted (the default) is shareable by link and plays in chat-embedded players; private requires the owner to sign in, so an inline chat player shows a sign-in wall instead of playing — choose private only when the user asked for it.unlisted
speechSpeedNo
presentationIdNoStable id for idempotent re-creates; defaults to slug-<hash(userId:slug)>.
voiceStabilityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesready = nothing needed narration; queued = narration runs in the background — poll get_presentation_status.
webUrlYesShareable watch URL (live once status is ready).
narrationYes
statusUrlYes
presentationIdYes
Behavior4/5

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

Beyond the annotations, the description adds valuable behavioral context: slides without the required narration markup 'publish SILENT,' and creation is asynchronous, requiring polling until ready. It does not elaborate on the destructiveHint=true annotation, but it does not contradict it, and the added silent-failure warning is genuinely useful.

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 three sentences with no filler: it states the core action, the critical prerequisite, and the follow-up step. Every sentence earns its place, and the most important warning is front-loaded.

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

Completeness4/5

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

Given the 13-parameter complexity and availability of an output schema, the description covers the essential workflow: prerequisites, the silent-failure risk, and polling. It does not mention sibling-tool selection or destructive implications, but the core invocation context is sufficiently 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 description coverage is 77%, so most parameters are already documented. The description adds meaning around the main input by tying the html-presentation/v1 document to the narration markup requirement, but it does not otherwise explain parameters beyond the schema. This is adequate but not exceptional.

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 and resource: 'Generate a narrated presentation from an html-presentation/v1 document.' This clearly identifies what the tool does. However, it does not explicitly distinguish itself from the sibling publish_narrated_presentation, so an agent may have to infer the relationship between creating and publishing.

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 gives explicit usage guidance: call get_presentation_spec before authoring, follow it exactly, and poll get_presentation_status after creation. This is clear operational context. It does not, however, explain when to choose this tool over publish_narrated_presentation or other siblings, so exclusion guidance is missing.

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

get_presentation_analyticsGet presentation analyticsA
Read-onlyIdempotent
Inspect

Watch analytics for one of your presentations: views, likes, completion rate, per-slide retention funnel, traffic sources, distinct signed-in/anonymous viewers, and organization email domains (personal providers filtered). Lets an agent read how its own published briefings performed.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentationIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
titleYes
webUrlNo
sourcesYesTraffic source → view count.
likeCountYes
viewCountYes
orgDomainsYesOrganization email domains of signed-in viewers (personal providers filtered), sorted desc.
slideReachYesRetention funnel ordered by slide index.
anonViewersYes
uniqueViewersYesDistinct signed-in viewers.
completedCountYes
completionRateYescompletedCount / viewCount, 0..1; null when no views.
presentationIdYes
Behavior4/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 valuable scope constraints: it only covers 'own published briefings' and notes that personal email providers are filtered from domains. These details are not in the annotations and give the agent insight into what data to expect and the tool's boundary conditions. No contradiction with 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?

Two sentences with zero filler. The first sentence front-loads the purpose and the full list of analytics fields. The second sentence clarifies the scope (own published briefings). Every word earns its place, and the structure is logical: purpose → scope.

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

Completeness4/5

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

Given the tool's simplicity (one parameter), existing output schema, and annotations covering safety, the description is comprehensive. It lists the analytics fields, notes the publisher ownership scope, and mentions filtering of personal providers. It does not explicitly address error handling or non-published presentations, but those are secondary given the schema and annotations. Slight room to mention what happens if the presentation doesn't exist or isn't published, but overall it's complete enough for an agent to call correctly.

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 0%, so the description must compensate for the presentationId parameter. The description refers to 'one of your presentations' which maps to presentationId but does not elaborate on the ID's format, provenance (e.g., from list_presentations), or validation. It gives minimal semantic context beyond the schema's type and length constraints. A stronger hint about how to obtain a valid presentationId would raise this score.

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 ('Watch'/'read') and resource ('analytics for one of your presentations'), enumerating concrete metrics (views, likes, completion rate, per-slide retention, traffic sources, viewer counts, domains) and the scope ('its own published briefings'). This clearly distinguishes it from siblings like get_presentation_status or get_presentation_context, which serve different purposes.

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 when to use this tool: when an agent needs performance metrics for its own published presentations. It explicitly mentions the scope ('own published briefings') and lists the data types, which indirectly differentiates it from alternatives like get_presentation_status (status) or list_presentations (listing). However, it does not explicitly name sibling tools or provide 'when not to use' guidance, so it stops short of a full 5.

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

get_presentation_contextLoad a presentation into contextA
Read-onlyIdempotent
Inspect

Load any shared Bisque presentation for reading: its metadata, the full per-slide narration transcript with timestamps, and the context.md file its author shipped for agents (extra background the slides summarize). Target it by watch URL (https://bisque.today/p/{handle}/{slug}) or by handle + slug — it does not have to be yours. Use this to read, summarize, cite, or answer questions about a presentation: ground your answers in the returned transcript and context, and cite slides as [slide N].

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoWatch URL, e.g. https://bisque.today/p/{handle}/{slug}. Provide this OR handle + slug.
slugNo
handleNoChannel handle (leading @ allowed).

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
titleYes
handleYes
webUrlYes
contextMdYesThe bundle's context.md (shared agent-facing background); null when the presentation ships none.
transcriptYesPer-slide narration, ordered by slide index.
visibilityYes
descriptionNo
publishedAtNoISO 8601, null when unknown.
presentationIdYes
contextTruncatedYes
transcriptTruncatedSlidesYesContent slides the size-capped transcript dropped; 0 = complete.
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive; the description reinforces this with 'for reading' and adds concrete behavioral context: it loads metadata, timestamped narration transcript, and the context.md file, and it supports both URL or handle+slug targeting. No contradiction with annotations, and no hidden mutating side effects are implied.

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?

Three dense sentences, each with a distinct job: enumerate what is loaded, explain how to target it, and state the supported use cases with the slide-citation convention. There is no filler or repetition of schema/annotation data.

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 read-only, three-optional-parameter tool, the description covers identification, payload contents, ownership scope, and downstream usage/citation behavior. With an output schema and safety annotations present, no essential caller-facing information 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?

The main description adds the target-selection semantics that the schema leaves implicit: either the full watch URL or the handle+slug pair, with an example URL format. It also states the presentation need not be owned, which clarifies authorization scope. Slug still lacks its own schema description, but the OR-combination guidance compensates for the 67% schema coverage.

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 identifies the action ('Load... for reading') and resource (shared Bisque presentation), and enumerates the distinctive payload: metadata, per-slide transcript with timestamps, and the author's context.md. It does not explicitly name sibling tools, so the differentiation from get_presentation_spec/analytics/status relies on the reader inferring that 'context/reading' is not those read-only views.

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?

It gives concrete usage context: use this when the task is to read, summarize, cite, or answer questions from a presentation, and it clarifies that the target need not be owned by the user. It does not explicitly state when not to use it or name alternative tools for metrics/spec/status.

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

get_presentation_specGet the authoring specA
Read-onlyIdempotent
Inspect

Fetch the html-presentation/v1 authoring contract: document structure, the dual landscape/vertical layout rule, and the narration markup that makes slides speak. Call this BEFORE authoring for create_presentation — documents written without it publish with missing audio.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
specYesThe full authoring recipe + format contract, markdown.
formatYes
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds the important behavioral context of ordering: this must be called before create_presentation, and skipping it leads to missing audio in published documents. This is useful beyond what annotations provide and does not contradict 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?

Two tight sentences accomplish everything: the first states the resource and its scope, the second gives the critical usage directive and consequence. There is no repetition of annotation data or filler, and the key workflow warning is front-loaded into the second sentence with clear emphasis.

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 parameterless, read-only fetch with an output schema available, the description is complete. It tells the agent what will be retrieved, when to call the tool, and why it matters. The missing-audio consequence communicates operational importance without requiring the description to duplicate output-schema details.

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 parameter semantics are essentially non-applicable; the schema carries no burden. The description instead clarifies what the fetched contract contains, which is appropriate for a no-argument tool. The baseline for zero parameters is 4, and nothing here lowers 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 uses the specific verb 'Fetch' and names the exact resource, the 'html-presentation/v1 authoring contract'. It then enumerates the contract's contents—document structure, the dual landscape/vertical layout rule, and narration markup—making the tool's purpose unmistakable and distinct from siblings like get_presentation_analytics or get_presentation_status.

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 gives an explicit workflow directive: 'Call this BEFORE authoring for create_presentation', reinforced with a concrete consequence for skipping it ('documents written without it publish with missing audio'). It does not explicitly discuss when not to use the tool or compare it to alternatives, but the timing and purpose are clearly stated.

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

get_presentation_statusGet presentation statusA
Read-onlyIdempotent
Inspect

Fetch the build state and result URL for a presentationId.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentationIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
readyYesTrue once the presentation is viewable.
webUrlNoShareable watch URL.
narrationNoNarration progress: status (complete | partial | failed | …) and per-slide errors when partial/failed.
visibilityNo
publishStatusYes
presentationIdYes
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 no behavioral detail beyond the scope of what is fetched; it doesn't mention polling, error behavior, or URL availability timing. No contradiction.

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?

One short sentence with no redundant words; the key action and target are front-loaded.

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

Completeness5/5

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

For a simple read-only, idempotent getter with one self-explanatory parameter, an output schema, and safety annotations, the description conveys the necessary purpose. The presence of an output schema means return-value detail is not the description's job.

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

Parameters2/5

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

Schema has 0% description coverage, so the description must compensate, but it merely restates 'for a presentationId' without adding format, source, or lifecycle context. The parameter name is self-explanatory, but the description adds essentially nothing beyond the schema property.

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 ('Fetch') and resource ('build state and result URL') scoped to a presentationId, and its focus on build status clearly separates it from siblings like get_presentation_spec, get_presentation_context, and get_presentation_analytics.

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 the tool is for checking a presentation's build status and result URL, which gives clear context. However it does not explicitly say when to choose this over siblings, nor list alternatives or exclusions.

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

list_presentationsList your presentationsA
Read-onlyIdempotent
Inspect

List the authenticated user's presentations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
visibilityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
presentationsYesNewest first.
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds useful authentication scope but does not disclose pagination, default visibility behavior, or any rate-limit considerations.

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 with no redundant content. The title and description align with zero filler.

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, read-only list operation with an output schema and safety annotations, the description covers the essential scope. It lacks minor context like pagination or filtering defaults, but nothing an agent needs to invoke the tool correctly is missing.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not compensate by explaining limit or visibility. Although the parameter names and enum are self-explanatory, the description adds no meaning beyond the raw 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?

The description uses a specific verb (List) and resource (presentations), and scopes it to the authenticated user. This clearly separates it from the get_presentation_* siblings, which target a single presentation, and from create/publish.

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 makes clear that this is for enumerating the user's presentations, which implies the main use case. However, it does not explicitly state when to prefer it over get_presentation_* or when not to use it.

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

publish_narrated_presentationPublish a presentation you narrated yourselfA
Destructive
Inspect

Publish an html-presentation/v1 document using audio YOU synthesized locally (e.g. with bisque-voice) — free, unlimited, and works on macOS, Linux and Windows. Send each narrated slide's word timings and MP3 metadata; the server assembles presentation.json (recomputing cues from your narration markers) and returns one upload URL per MP3. Then PUT each file and POST the returned completeUrl with the returned files array. RE-PUBLISHING: audio is optional — any narrated slide you omit reuses the audio from the last publish whenever its narration text and speechSpeed are unchanged, so an HTML-only edit needs no synthesis at all. The response reports reused, synthesized, and staleSlides (narrated slides whose text changed and have no audio — synthesize exactly those and publish again). Use create_presentation instead to have the server narrate.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoURL slug; defaults to a slugified title.
audioNoOne entry per slide you synthesized, from the JSON `bisque-voice` prints on stdout. `words`, `durationMs`, `size` and `hash` map across verbatim. Optional: omit a slide (or the whole array) and its audio carries forward from the previous publish if the narration text is unchanged — otherwise that slide publishes silent and is listed in `staleSlides`. A FIRST publish with nothing to carry forward is rejected.
titleNo
assetsNoFiles the document references relative to itself — fonts, images, SVG, Lottie, Rive, bundled audio cues. html-presentation/v1 requires these to be self-hosted, so a presentation that renders locally is broken once published unless they travel with it. Each gets an upload URL back alongside the MP3s; PUT them the same way. Paths must be under `assets/` — the server owns index.html, presentation.json and context.md, and the manifest owns audio/. Omit for a presentation that references nothing.
handleNoPublish under a specific channel handle you own.
voiceIdNoRecords what actually spoke, e.g. kokoro:af_heart for a locally synthesized Kokoro voice. No audio is generated server-side.
designMdNoDesign frontmatter mapped to theme tokens.
contextMdNoShared-with-viewer context.md.
indexHtmlYesFull html-presentation/v1 document (the presentation-format meta gate applies).
visibilityNounlisted (the default) is shareable by link and plays in chat-embedded players; private requires the owner to sign in, so an inline chat player shows a sign-in wall instead of playing — choose private only when the user asked for it.unlisted
speechSpeedNoMust match the speed you synthesized at — it is part of the audio cache key, so changing it on a re-publish makes every slide stale instead of carrying forward.
presentationIdNoStable id for idempotent re-publishes; defaults to slug-<hash(userId:slug)>.
voiceStabilityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYesEcho back verbatim as the complete call's `files`.
reusedYesSlide keys whose audio carried forward — no upload.
webUrlYesShareable watch URL.
warningsYes
publishIdYes
uploadUrlsYesOne pre-signed PUT per file to upload.
completeUrlYesPOST here after every PUT, echoing `files` back verbatim.
staleSlidesYesNarrated slide keys that will publish SILENT — synthesize exactly these and publish again.
synthesizedYesSlide keys this request supplied audio for.
presentationIdYes
Behavior4/5

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

Annotations already mark this as destructive, so the description need not restate that. It adds useful behavior not visible in annotations: the two-step upload flow (PUT MP3s/assets then POST completeUrl), server-side cue recomputation, and re-publish carry-forward/reuse semantics with staleSlides. It is slightly less explicit about destructive overwrite effects, but the annotation covers that baseline.

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 dense but well organized, front-loading the core behavior, then the upload workflow, then the RE-PUBLISHING section. A few clauses (e.g., 'free, unlimited, and works on macOS, Linux and Windows') are contextual rather than invocation-critical, but the structure keeps the important guidance easy to parse.

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

Completeness5/5

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

Given 13 parameters, an output schema, and rich annotations, the description covers what an agent needs: the full call/response workflow, re-publish behavior, stale-slide remediation, and the alternative tool. Nothing critical for correct invocation appears to be 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?

With 85% schema coverage, the schema carries most parameter detail; the description adds high-level meaning by explaining how the audio array and returned URLs fit into the publish workflow and by clarifying re-publish audio optionality. It does not fully compensate for the undocumented voiceStability field, but that gap is minor given the schema richness.

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 names a specific verb and resource ('Publish an html-presentation/v1 document using audio YOU synthesized locally') and immediately distinguishes it from the sibling that server-narrates. It leaves no ambiguity about what this tool is for.

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

Usage Guidelines5/5

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

It gives explicit selection criteria: use this for locally synthesized narration, and 'Use create_presentation instead to have the server narrate.' It also states exactly when re-publishing can omit audio, covering a major conditional use case.

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

update_channelUpdate channelA
Idempotent
Inspect

Update one of your channels. Set the description — the line a stranger reads in a search result or a link unfurl, at most 160 characters, empty to clear it and go back to naming the newest presentations. Set the avatar from an image URL, which is fetched, center-cropped square and resized. Pass either or both. Omit handle to use your default channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleNoWhich of your channel handles to update; defaults to your default username.
image_urlNohttps URL of the avatar image (any common format, ≤10 MB).
descriptionNoWhat the channel publishes, in the owner's words. Empty clears it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
failedNoFields that did not apply, each with the reason. A field listed here left the channel unchanged; the ones in updated still took effect.
handleYes
updatedYesField names that were written.
channelUrlYesPublic channel page carrying the update.
descriptionNoThe stored line, or null when the write cleared it.
Behavior5/5

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

The description reveals non-obvious behavior beyond the annotations: the avatar is fetched from a URL, center-cropped, and resized; an empty description clears the channel and reverts to auto-naming with newest presentations. This adds significant value beyond the idempotentHint annotation and helps an agent predict side effects.

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

Conciseness5/5

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

The description is dense but economical, using three sentences to cover scope, each field's semantics, and the optional/default behavior. Every sentence contributes new information, and the core 'update one of your channels' framing is front-loaded.

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 only three optional parameters, no enums, an output schema present, and annotations covering idempotency and safety, the description supplies everything an agent needs to call the tool correctly. It explains defaults, field combinations, clear behavior, and image processing without requiring the agent to infer anything.

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

Parameters5/5

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

Even though the schema already documents all three parameters, the description enriches each one: it explains what the description line appears in, what empty means behaviorally, and how the avatar image is processed. This goes well beyond the parameter descriptions and disambiguates edge cases like clearing the description.

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

Purpose5/5

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

The description opens with 'Update one of your channels,' naming a specific verb and resource, and immediately scopes it to owned channels. It distinguishes the operation from presentation-focused siblings by talking exclusively about channel metadata. No ambiguity remains about what the tool is for.

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 gives clear practical context: pass either or both fields, and omit handle to target the default channel. There are no alternative channel-update tools among the siblings, so a when-not-to-use note is unnecessary. The guidance is useful but stops short of explicitly contrasting with alternative operations.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources