Skip to main content
Glama

Server Details

Write and update video tutorials, voiceovers and pronunciation rules across your projects.

Ownership verified
Status
Healthy
Uptime
55.6% over 62 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 23 tools

Disambiguation4/5

Each tool targets a distinct resource and action, with explicit 'Not for' clauses that help separate similar reads like get_project, get_project_localization_summary, and show_project_overview. A few project-level read tools could still be confused at a glance, but descriptions provide clear boundaries.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (create/get/list/update/delete + resource). Minor deviations include set_pronunciation_rule, remove_pronunciation_rule, and show_project_overview, which use different verbs but remain readable and predictable.

Tool Count3/5

23 tools is on the heavy side for the domain, covering CRUD for four resources plus pronunciation and localization reads. Each tool is arguably justified, but the count sits in the borderline-heavy range (16-25) rather than being tightly scoped.

Completeness3/5

Tutorials, videos, and speeches have full CRUD coverage, but there is no delete_project tool, leaving a notable lifecycle gap. Recording/rendering operations are also explicitly absent, which may be intentional but creates dead ends for end-to-end video tutorial management.

Available Tools

23 tools
create_projectCreate a tutorial projectA
Destructive
Inspect

Use this when someone wants to start a new Tutorializer project for a product or app. Returns the new project's id, name, vanity id, domain and default locale. Each call creates another project. Not for changing an existing project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name as people will see it, up to 120 characters
domainNoDomain of the product the tutorials cover, e.g. example.com; optional
defaultLocaleNoMain language code of the tutorials, e.g. en or pt-BR; optional

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
projectYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=false. The description adds value beyond them by noting that 'Each call creates another project' (duplicate accumulation) and by enumerating the returned fields, though it does not explain the surprising destructiveHint=true for a create operation or any auth/permission requirements.

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?

Three short sentences, front-loaded with the trigger condition, then the return values, then the exclusion. The return-value enumeration is slightly redundant given an output schema exists, but nothing is padded or wasted.

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?

With a rich annotation set, 100% schema coverage, and an output schema, the description need not explain return values or safety. It supplies the trigger, the exclusion, and the duplicate-creation behavior, leaving only minor gaps like the reason for the destructive flag and any permission requirements.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (name, domain, defaultLocale) are already documented in the schema with lengths and examples. The description adds no parameter-level detail such as format rules or how domain/defaultLocale defaults are applied, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('start a new Tutorializer project for a product or app') and explicitly carves out the update case ('Not for changing an existing project'). It differentiates from update_project but does not distinguish itself from the other create_* siblings (create_tutorial, create_video), which the agent must infer from the resource noun.

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 a clear trigger ('when someone wants to start a new Tutorializer project') and an explicit exclusion ('Not for changing an existing project'), which routes the agent to update_project. It stops short of naming that alternative or stating prerequisites such as required fields, so it is strong context without full when/when-not coverage.

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

create_speechCreate a voiceover lineA
Destructive
Inspect

Use this when someone wants new narration or voiceover in a project. Returns the new line's id, language, voice and audio URL. Without url the audio is synthesized from the text with the project's voice provider, spending the organization's synthesis credits; with url it records audio you already have. Not for fixing an existing line.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic https URL of audio you already produced. Supplying it records the segment without synthesizing anything.
textYesWords to speak, up to 5000 characters
voiceNoOptional voice id; defaults to the project's default voice
languageYesLanguage code of the narration, e.g. en or pt-BR
projectIdYesProject the voiceover line belongs to
translatedTextNoOptional translation spoken instead of the source text

Output Schema

ParametersJSON Schema
NameRequiredDescription
speechYes
statusYes
synthesizedYesTrue when audio was synthesized and synthesis credits were spent; false when a url was recorded

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructive=true, non-idempotent, non-readonly, but the description adds a genuinely non-obvious trait beyond them: synthesis spends the organization's credits when no url is given, whereas url records existing audio without synthesizing. It does not, however, address reversibility or cleanup of created segments.

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?

Four tight sentences, front-loaded with purpose then the url branch then the exclusion. The return-value sentence ('id, language, voice and audio URL') is largely redundant given an output schema exists, a minor waste.

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, return values need not be detailed, and the description covers the material decisions an agent faces (whether to pass url, credit cost, when not to use it). Complete for a 6-param creation tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: the url/no-url branch maps to synthesis-vs-record and to credit expenditure, which is more than the schema's field-level text conveys. It is still silent on the optional translatedText/voice interplay.

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+resource ('new narration or voiceover in a project') that distinguishes it from siblings like create_video/create_tutorial. The exclusion 'Not for fixing an existing line' further pins it apart from update_speech. An agent can identify the operation without opening the schema.

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?

Gives an explicit trigger ('when someone wants new narration or voiceover') and an explicit anti-trigger ('Not for fixing an existing line'), the latter routing the agent away toward an update-style sibling. Nothing about selection is left to inference.

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

create_tutorialCreate a tutorialA
Destructive
Inspect

Use this when someone wants to add a new tutorial to a project. Returns the new tutorial's id, name, project and default voice. Each call creates another tutorial; it records the tutorial without recording or rendering a video. Not for adding a rendered video.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTutorial name, up to 200 characters
projectIdYesProject the tutorial belongs to
defaultVoiceNoOptional voice id used when narration is synthesized for this tutorial

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
tutorialYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=true; the description reinforces non-idempotency ('Each call creates another tutorial') and adds genuinely new scope context by clarifying that no video is recorded or rendered. It does not explain the destructiveHint=true flag, which is a notable gap for a create operation.

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?

Three short, front-loaded sentences with no filler; the trigger condition and scope boundary come first. The return-value sentence is somewhat redundant given an output schema exists, which costs it the top mark.

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?

Covers purpose, scope limitation, and repeat-call behavior, and an output schema handles return values. The one unexplained item is why a create tool carries destructiveHint=true, which an agent might reasonably want clarified before invoking.

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

Parameters3/5

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

Schema description coverage is 100% — all three parameters (name, projectId, defaultVoice) are documented with types, lengths and meaning in the schema itself. The description's mention of 'id, name, project and default voice' is about return values, not parameter behavior, so it adds essentially nothing beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('add a new tutorial to a project') and immediately delimits the scope against a sibling: 'it records the tutorial without recording or rendering a video. Not for adding a rendered video.' An agent can distinguish this from create_video without opening either schema.

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 a clear triggering condition ('Use this when someone wants to add a new tutorial to a project') and an explicit exclusion ('Not for adding a rendered video'), which routes the agent away from create_video. It stops short of naming that alternative tool directly, so the routing requires one small inference.

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

create_videoAdd a rendered tutorial videoA
Destructive
Inspect

Use this when someone has an already uploaded tutorial video file and wants it listed under a tutorial. Returns the new video record with its language, device, dimensions and URLs. Host the file first and pass its public https URL; each call adds another record. Not for recording, rendering or uploading a video.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic https URL of the already-uploaded video file
widthNoWidth in pixels, 1 to 100000
deviceNoDevice the video was rendered for: computer, tablet or smartphone
formatNoContainer or codec, e.g. mp4 or webm
heightNoHeight in pixels, 1 to 100000
localeNoLanguage code of this video, e.g. en or pt-BR
durationNoDuration in seconds, up to 86400
fileSizeNoFile size in bytes
projectIdYesProject that owns the tutorial
tutorialIdYesTutorial this video is a rendering of
chaptersUrlNoPublic https URL of the chapters track
subtitlesUrlNoPublic https URL of a WebVTT subtitle track
thumbnailUrlNoPublic https URL of the poster image

Output Schema

ParametersJSON Schema
NameRequiredDescription
videoYes
statusYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false. The description usefully corroborates and explains the non-idempotency ('each call adds another record'), which is real added context. It omits auth/permission requirements and says nothing about what the destructive hint implies (e.g., whether re-listing the same URL duplicates or conflicts), leaving one gap.

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?

Four tight sentences with the when-to-use condition front-loaded and the exclusion last, which is good structure. The return-value sentence ('Returns the new video record with its language, device, dimensions and URLs') is somewhat redundant given an output schema exists, so it is not perfectly waste-free.

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 13-parameter mutation tool with full schema coverage and a declared output schema, the definition covers purpose, prerequisite, cardinality behavior and sibling boundaries adequately. Missing only permission/auth details and what happens on duplicate or invalid URLs.

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

Parameters3/5

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

Schema description coverage is 100% across all 13 parameters, so the schema already carries the field meanings and the baseline is 3. The description's URL framing ('public https URL' of a pre-hosted file) largely restates the schema's own url description rather than adding new syntax or constraints.

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 first sentence states a specific verb and resource ('wants it listed under a tutorial') and names the precondition (an already-uploaded file). The negative clause 'Not for recording, rendering or uploading a video' separates it from sibling create_* tools that an agent might confuse it with.

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?

Explicit when-to-use plus prerequisite workflow: 'Host the file first and pass its public https URL.' It also states an exclusion boundary (not recording/rendering/uploading), so the agent knows when to pick a different path.

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

delete_speechDelete a voiceover lineA
DestructiveIdempotent
Inspect

Use this when someone wants one voiceover line permanently deleted with its audio. Returns the deleted line id; the audio and timing files are erased, so restoring it means synthesizing again, which spends credits. Deleting it again changes nothing. Not for changing its words.

ParametersJSON Schema
NameRequiredDescriptionDefault
speechIdYesVoiceover line to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
speechIdYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, yet the description adds substantive context beyond them: the audio and timing files are erased, restoring requires re-synthesis that spends credits, and repeated deletion is a no-op. This is exactly the kind of consequence disclosure an agent needs before calling a destructive tool.

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?

Every sentence earns its place: trigger, return value, irreversibility/cost, idempotency, and exclusion are each stated once with no filler. The trigger is front-loaded so the agent can decide quickly.

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 single-parameter destructive tool with an output schema, the description covers everything needed: what is destroyed, the cost of reversal, idempotent behavior, and the sibling it must not be confused with. Nothing material is missing.

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

Parameters3/5

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

With a single parameter at 100% schema description coverage, the schema already fully documents speechId. The description adds no format, syntax, or lookup guidance beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description gives a specific verb and resource ('one voiceover line permanently deleted with its audio') and explicitly distinguishes the tool from its sibling update_speech by stating 'Not for changing its words.' An agent can identify the exact operation and its scope without opening the schema.

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 states a clear trigger condition ('when someone wants one voiceover line permanently deleted') and an explicit exclusion ('Not for changing its words'), which routes the agent toward update_speech. However, it does not name the alternative tool directly, leaving a small inference step.

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

delete_tutorialDelete a tutorialA
DestructiveIdempotent
Inspect

Use this when someone wants a tutorial permanently deleted. Returns the deleted tutorial id; its videos and voiceover lines stay and each needs its own delete. Deleting it again changes nothing. Not for removing one language or device version.

ParametersJSON Schema
NameRequiredDescriptionDefault
tutorialIdYesTutorial to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
tutorialIdYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds real behavioral context beyond them: the call returns the deleted tutorial id, child videos and voiceover lines survive and require their own deletes, and re-deleting is a no-op. This discloses cascade behavior and return content that the annotations alone do not.

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 tight sentences, front-loaded with the use condition, followed by return/cascade behavior and the scope exclusion. Every sentence carries distinct 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?

Covers purpose, permanence, cascade consequences, idempotency, and scope exclusions; an output schema exists so return values need not be elaborated further. Nothing an agent needs to invoke this correctly is missing.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema fully documents tutorialId. The description adds nothing about the identifier format or constraints, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (permanently delete) and resource (tutorial), and explicitly carves out scope boundaries against siblings: not for removing one language or device version, and children like videos/voiceover lines need their own delete. An agent can distinguish this from delete_video/delete_speech without opening schemas.

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?

Explicit when-to-use ('someone wants a tutorial permanently deleted') plus when-not ('Not for removing one language or device version'), and it routes the agent to separate delete operations for the tutorial's videos and voiceover lines. Nothing is left to inference.

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

delete_videoDelete a tutorial videoA
DestructiveIdempotent
Inspect

Use this when someone wants one rendered tutorial video permanently deleted. Returns the deleted video id; the record and its video file in Tutorializer storage are erased, so restoring it means uploading or rendering again. Not for deleting the whole tutorial.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdYesVideo to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
videoIdYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description goes further: it names exactly what is erased (the record and the video file in Tutorializer storage) and states the recovery cost (re-upload or re-render). That consequence detail is precisely what an agent needs before committing a destructive call.

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 short sentences, front-loaded with the trigger, then the return value and consequences, then the scope exclusion. No filler and nothing buried.

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, and the description still supplies the non-schema-critical facts: irreversibility, the storage-level effect, and the boundary against delete_tutorial. For a one-parameter destructive tool, nothing an agent needs is missing.

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

Parameters3/5

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

Schema description coverage is 100% for the single videoId parameter, so the schema already carries the meaning. The description adds no format, constraint, or ID-source detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

Specific verb (delete) plus a precisely scoped resource: 'one rendered tutorial video'. It explicitly distinguishes itself from the sibling that deletes a whole tutorial, so an agent can route correctly without opening either schema.

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 an explicit trigger ('Use this when someone wants one rendered tutorial video permanently deleted') and an explicit exclusion ('Not for deleting the whole tutorial'). The alternative is described rather than named (delete_tutorial), so it falls just short of the fully explicit 5.

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

get_projectGet project settingsA
Read-onlyIdempotent
Inspect

Use this when someone asks about one project's languages, default voice, narration speed or pronunciation rules. Returns its name, domain, default and configured locales, voice settings and up to 50 pronunciation rules, looked up by project id or vanity id. Not for finding languages or devices that lack videos.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id or its stable public vanity id

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
projectYesProject settings; null when not found. Organization ids and pronunciation-dictionary ids are never returned.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds real behavioral detail beyond that: a hard cap of 'up to 50 pronunciation rules' in the result and lookup via either project id or vanity id, which prepares the caller for truncation.

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?

Three sentences with the usage trigger front-loaded, then the return payload, then the exclusion. Efficient overall, though the trailing exclusion sentence is vague enough that it spends words without fully earning them.

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?

With an output schema present, return values need not be spelled out, yet the description usefully previews the payload and the 50-rule cap. Nothing an agent needs to invoke it correctly is missing; only the unclear exclusion clause keeps it from being fully self-explanatory.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter already documents 'Project id or its stable public vanity id'. The description repeats that same fact ('looked up by project id or vanity id') without adding format, constraint, or edge-case guidance, so this is the baseline 3 case.

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 gives a specific verb+resource ('get' a single 'project's settings') and enumerates the returned content (name, domain, locales, voice settings, pronunciation rules), so an agent knows exactly what it produces. It does not explicitly distinguish itself from list_projects or show_project_overview by name, leaving the sibling boundary to inference.

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 states when to reach for it ('when someone asks about one project's languages, default voice, narration speed or pronunciation rules') and includes an exclusion clause ('Not for finding languages or devices that lack videos'). The exclusion is cryptic and references no actual sibling tool, so the when-not guidance is weaker than it looks.

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

get_project_localization_summaryCheck missing languages and devicesA
Read-onlyIdempotent
Inspect

Use this when someone asks which languages or devices a project still lacks tutorial videos or voiceovers for, or how complete its translations are. Returns video and voiceover counts per language and video counts per device, plus the missing ones, from the latest 100 of each. Not for one tutorial's videos.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id or its stable public vanity id
expectedDevicesNoDevices each language should have videos for, 1 to 10 names such as computer, tablet or smartphone; defaults to those three

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
summaryYesCoverage from at most the 100 most recently edited tutorials, videos and voiceover lines; coverageDerivedFromTruncatedData is true when more exist. Null when the project is not found.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds real value beyond that by disclosing the data scope: counts are computed 'from the latest 100 of each,' which tells the agent results may be truncated for large projects. No permission or error behavior is mentioned, but that gap is minor here.

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?

Three tight sentences with no filler, and the trigger condition is front-loaded before the return shape and the exclusion. Marginally verbose in the first sentence, but every clause carries 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?

For a read-only aggregate over a single required project id, the agent knows what question this answers, what it returns, the truncation caveat, and what it is not for. With an output schema present, no further return-value documentation is needed, and nothing required to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both projectId and expectedDevices (including its default of computer/tablet/smartphone and the 1-10 name constraint) are already fully documented in the schema. The description adds no syntax or format detail beyond that, so the baseline 3 is correct.

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+resource (project localization summary) and enumerates exactly what it covers: video and voiceover counts per language, video counts per device, plus missing entries. It explicitly distinguishes itself from the per-tutorial siblings with 'Not for one tutorial's videos,' so an agent can separate it from get_tutorial/get_video 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.

Usage Guidelines4/5

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

Opens with a concrete triggering condition ('Use this when someone asks which languages or devices a project still lacks...') and adds a when-not ('Not for one tutorial's videos'). It stops short of naming the alternative tool to call instead, which is the only thing keeping this from a 5.

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

get_speechRead a voiceover lineA
Read-onlyIdempotent
Inspect

Use this when someone needs the full wording or translation of one voiceover line, or its audio link. Returns its source text, translation, language, voice, duration, project and audio URL. Not for changing the words.

ParametersJSON Schema
NameRequiredDescriptionDefault
speechIdYesVoiceover line id

Output Schema

ParametersJSON Schema
NameRequiredDescription
speechYes
statusYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description reinforces read-only with "Not for changing the words" but adds no behavioral caveats beyond that (no auth, rate-limit, or side-effect notes), and the enumerated return fields overlap the existing output schema.

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?

Three short sentences, front-loaded with the trigger condition and ending with a crisp exclusion. The enumeration of returned fields is slightly redundant against the output schema but remains compact and readable.

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 single-parameter read tool with an output schema, the description covers purpose, trigger, and exclusion adequately and need not explain return values. It is complete enough to invoke correctly, though a pointer to update_speech for edits would tighten it.

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

Parameters3/5

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

Schema description coverage is 100% with a single well-documented speechId parameter, so the baseline is 3. The description adds no format or constraint detail about the id beyond what the schema already provides.

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?

"Read a voiceover line" plus the description's concrete scope (full wording, translation, or audio link of ONE line) states a specific verb and resource. It clearly distinguishes this from get_project/get_video/get_tutorial siblings by naming the exact entity it returns.

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?

"Use this when someone needs the full wording or translation of one voiceover line, or its audio link" gives a clear triggering condition, and "Not for changing the words" provides an explicit exclusion that steers the agent away from update_speech. It stops short of naming the alternative tool directly, so a 4 rather than a 5.

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

get_tutorialGet a tutorial and its videosA
Read-onlyIdempotent
Inspect

Use this when someone asks about one tutorial and the videos rendered from it. Returns the tutorial's name, project and default voice plus up to 8 of its most recently edited videos with language, device, format, size and media links. Not for every video in a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
tutorialIdYesTutorial id

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
videosYes
tutorialYes
videoCountYes
videoCountIsLowerBoundYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond them: the hard cap of 8 videos, that they are the 'most recently edited', and the rendered field set. It does not mention pagination or ordering semantics beyond recency, but the truncation disclosure is the important one.

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?

Three sentences, usage trigger front-loaded, then return contents, then the exclusion. It is efficient and front-loaded with only minor redundancy between the title and the opening clause.

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?

An output schema exists, so return values need not be fully spelled out, and the description still summarizes the payload and the 8-video cap. Combined with full annotation coverage and a single well-documented parameter, an agent has what it needs; only the lack of a named alternative tool for the 'every video in a project' case keeps it from a 5.

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?

Only one parameter exists and schema description coverage is 100%, so the schema already documents tutorialId (albeit thinly as 'Tutorial id'). The description says 'one tutorial' but adds no format, source, or lookup guidance for the ID. Baseline 3 applies since the schema carries the parameter burden.

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 and resource ('Get a tutorial and its videos') and adds scope: the tutorial's name, project, default voice, plus up to 8 of its most recently edited videos. It explicitly carves itself away from list_videos via 'Not for every video in a project', so an agent can distinguish it from siblings without opening schemas.

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?

'Use this when someone asks about one tutorial and the videos rendered from it' gives a clear triggering context, and 'Not for every video in a project' provides an explicit exclusion. It never names the alternative tool (e.g., list_videos) that the exclusion implicitly routes to, which keeps it just short of a 5.

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

get_videoGet video detailsA
Read-onlyIdempotent
Inspect

Use this when someone asks about one tutorial video, such as its link, subtitles, chapters or thumbnail. Returns its tutorial, language, device, dimensions and its video, chapters, subtitles and thumbnail URLs. Not for changing those details.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdYesVideo id

Output Schema

ParametersJSON Schema
NameRequiredDescription
videoYes
statusYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered. The description's 'Not for changing those details' restates read-only behavior, and the return-value list duplicates the output schema, adding little behavioral context beyond the annotations.

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

Conciseness5/5

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

Two sentences; the use case and returned fields are front-loaded, followed by the exclusion. No filler or restated title.

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 single-entity fetch with full annotations and an output schema, the description supplies purpose, trigger, scope and the negative boundary. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

With one parameter at 100% schema description coverage, the schema already documents videoId. The description says nothing about the id's format, provenance, or what happens with an unknown id, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('get' a 'video') and enumerates exactly what is retrievable (link, subtitles, chapters, thumbnail), which cleanly separates it from get_tutorial, get_speech and get_project among the siblings.

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 an explicit trigger ('when someone asks about one tutorial video') plus example asks, and adds an exclusion ('Not for changing those details') that routes writes to update_video. It never names an alternative tool explicitly, so it stops short of a 5.

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

list_projectsList your tutorial projectsA
Read-onlyIdempotent
Inspect

Use this when someone asks which Tutorializer projects they have, or a project's id is needed. Returns each project's id, name, vanity id, domain and created and edited times, sorted by name, 25 per page by default. Not for a project's languages or voice settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoProjects per page, from 1 to 100; defaults to 25
cursorNoThe nextCursor of the previous page; absent for the first page

Output Schema

ParametersJSON Schema
NameRequiredDescription
offsetYes
statusYes
hasMoreYes
projectsYes
returnedYes
nextCursorYesCursor for the next page; null on the last page

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs added context. It delivers: sorting by name, default page size of 25, and the exact fields returned. It does not mention auth requirements or cursor expiry, which keeps it short of a 5.

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: the triggering condition first, then the return shape and the boundary. No filler and nothing that repeats the title verbatim.

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 needn't be spelled out, yet the description still previews the fields and the ordering. Combined with annotations and a fully documented 2-param schema, 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.

Parameters3/5

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

Schema coverage is 100%, so limit and cursor are fully documented in the schema. The description restates the 25-per-page default but adds no paging semantics beyond it, so the baseline 3 is appropriate.

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 (list) and resource (Tutorializer projects), plus when it's needed (to obtain a project id). The closing sentence explicitly separates it from sibling territory ('languages or voice settings'), so an agent can route between list_projects, get_project, and show_project_overview without opening schemas.

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?

Names the triggering user intent ('which projects they have') and a concrete secondary use (fetching a project id), and adds an explicit exclusion ('Not for a project's languages or voice settings'). When-to-use and when-not are both present.

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

list_speechesList voiceover linesA
Read-onlyIdempotent
Inspect

Use this when someone asks which voiceover or narration lines a project has, optionally in one language. Returns each line's id, a short text preview, language, project and audio URL, most recently edited first, 25 per page by default. Not for the full text of one line.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoVoiceover lines per page, from 1 to 100; defaults to 25
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
languageNoOnly lines in this language code, e.g. en, es or de
projectIdNoOnly voiceover lines in this project

Output Schema

ParametersJSON Schema
NameRequiredDescription
offsetYes
statusYes
hasMoreYes
returnedYes
speechesYesVoiceover lines with a text preview of up to 120 characters, not the full text
nextCursorYesCursor for the next page; null on the last page
languageFilterYes
projectIdFilterYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: the returned fields, sort order ('most recently edited first'), and a default page size of 25, which materially affects how results are consumed.

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: the first front-loads the when-to-use condition, the second packs return shape, ordering, pagination and the exclusion. Every clause carries information with no padding.

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 fully explained, yet the description still summarizes the key fields and pagination behavior. Combined with full parameter coverage and annotations, an agent has everything needed to call this 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 100%, so all four parameters (limit, cursor, language, projectId) are already documented in the schema. The description echoes the pagination default and the optional language filter but adds no syntax or format detail beyond what the schema provides, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb (list) and resource (voiceover/narration lines) and immediately constrains scope to a project. It also distinguishes itself from the get-a-single-line sibling with 'Not for the full text of one line,' so an agent can separate it from get_speech without opening either schema.

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?

'Use this when someone asks which voiceover or narration lines a project has, optionally in one language' gives a clear triggering context, and the closing exclusion routes the agent away from full-text retrieval. It stops short of naming the alternative tool (get_speech) explicitly, so it is strong but not fully prescriptive.

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

list_tutorialsList tutorialsA
Read-onlyIdempotent
Inspect

Use this when someone asks which tutorials a project has, or when another tool needs a tutorial id. Returns each tutorial's id, name, project, default voice and times, most recently edited first, 25 per page by default. Not for the rendered videos of each language or device.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoTutorials per page, from 1 to 100; defaults to 25
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
projectIdNoOnly tutorials in this project; every project when absent

Output Schema

ParametersJSON Schema
NameRequiredDescription
offsetYes
statusYes
hasMoreYes
returnedYes
tutorialsYes
nextCursorYesCursor for the next page; null on the last page
projectIdFilterYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavior beyond that: sort order (most recently edited first) and default page size (25 per page), which an agent cannot get from the annotations.

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

Conciseness5/5

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

Three tight sentences: trigger first, return shape second, exclusion last. Every sentence earns its place 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?

With an output schema present and annotations covering safety, the description supplies the remaining essentials — ordering, pagination default, project scoping, and the neighboring-video exclusion. Nothing needed to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so limit, cursor, and projectId are already fully documented including the default of 25 and the nextCursor semantics. The description only restates the page size, adding no syntax or format detail beyond the schema; baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('which tutorials a project has') and enumerates the returned fields (id, name, project, default voice and times). It also explicitly distinguishes itself from list_videos with 'Not for the rendered videos of each language or device.'

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?

Gives explicit triggers ('when someone asks which tutorials a project has, or when another tool needs a tutorial id') and an explicit exclusion routing to the sibling video listing. Nothing is left to inference.

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

list_videosList tutorial videosA
Read-onlyIdempotent
Inspect

Use this when someone asks which tutorial videos exist, optionally for one project, tutorial, language or device. Returns each video's id, tutorial, language, device, format, dimensions, file size and URL, most recently edited first, 25 per page by default. Not for checking missing languages.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoVideos per page, from 1 to 100; defaults to 25
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
deviceNoOnly videos for this device: computer, tablet or smartphone
localeNoOnly videos in this language code, e.g. en or pt-BR
projectIdNoOnly videos in this project
tutorialIdNoOnly videos of this tutorial

Output Schema

ParametersJSON Schema
NameRequiredDescription
offsetYes
statusYes
videosYes
hasMoreYes
returnedYes
nextCursorYesCursor for the next page; null on the last page
deviceFilterYes
localeFilterYes
projectIdFilterYes
tutorialIdFilterYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the description's job is to add the rest: it supplies sort order ('most recently edited first') and default page size (25), which annotations cannot convey. It stops short of noting auth or rate-limit behavior.

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

Conciseness5/5

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

Three tight sentences: trigger first, then return shape, then the exclusion. No filler, and the most decision-relevant information 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?

Filters, pagination, sort order and returned fields are all covered, and an output schema exists so return values need not be explained in depth. Only minor gaps (cursor round-tripping is left to the schema) keep it from a 5.

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

Parameters3/5

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

Schema coverage is 100% and each of the six parameters is documented in the schema, so the baseline is 3. The description restates the filter dimensions but adds no format, default, or interaction detail beyond what the schema already says.

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 and resource ('list tutorial videos') plus the filterable scope (project, tutorial, language, device), which cleanly separates it from the singular get_video sibling and the other list_* tools.

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 an explicit trigger ('when someone asks which tutorial videos exist') and one exclusion ('Not for checking missing languages'). The exclusion doesn't name the alternative tool (e.g. get_project_localization_summary), so the routing is clear but not fully closed.

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

remove_pronunciation_ruleRemove a pronunciation fixA
DestructiveIdempotent
Inspect

Use this when someone wants to drop a pronunciation rule so a word is spoken the default way again. Returns whether it was removed and the remaining rule count; a missing rule changes nothing, and existing audio is kept as it is. Not for changing a rule's phonemes.

ParametersJSON Schema
NameRequiredDescriptionDefault
wordYesExact word or phrase whose pronunciation rule should be removed
projectIdYesProject the rule belongs to

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordYes
statusYes
projectIdYes
remainingRuleCountYes
remainingRuleCountIsLowerBoundYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds real value beyond them: it clarifies that a missing rule changes nothing (reinforcing idempotency), that existing audio is preserved, and what the response reports. It does not spell out auth requirements, though the operation's blast radius is well characterized.

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 short sentences, each earning its place: purpose, effect/return behavior, and the exclusion. Purpose is front-loaded with no 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?

Covers purpose, effect, idempotency behavior, and an explicit exclusion, which is complete for a simple two-parameter mutation. Mentioning the return value is somewhat redundant given an output schema exists, but it is harmless rather than misleading.

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

Parameters3/5

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

Schema description coverage is 100%, with both projectId and word fully documented, so the schema carries the parameter burden. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.

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+resource ('drop a pronunciation rule') and the resulting effect ('word is spoken the default way again'), which cleanly distinguishes it from the sibling set_pronunciation_rule. An agent can identify the operation without opening the schema.

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 clear when-to-use context ('when someone wants to drop a pronunciation rule') and an explicit exclusion ('Not for changing a rule's phonemes'). It stops short of naming set_pronunciation_rule as the alternative, leaving the agent to infer the sibling route.

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

set_pronunciation_ruleFix how a word is pronouncedA
DestructiveIdempotent
Inspect

Use this when narration mispronounces a word, name or brand in a project's voiceovers. Returns the rule and the project's rule count after adding or replacing it (IPA or CMU phonemes, up to 500 rules) and syncing the pronunciation dictionary used for later synthesis. Not for re-voicing lines that already have audio.

ParametersJSON Schema
NameRequiredDescriptionDefault
wordYesExact word or phrase to match, up to 120 characters
alphabetNoPhonetic alphabet: ipa or cmu; defaults to ipa
phonemesYesHow to say it, in the chosen phonetic alphabet, up to 500 characters
projectIdYesProject whose narration to fix

Output Schema

ParametersJSON Schema
NameRequiredDescription
ruleYes
statusYes
projectIdYes
ruleCountYes
ruleCountIsLowerBoundYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, and the description corroborates by stating it adds or replaces a rule. It adds real behavioral context beyond the schema: the 500-rule cap and the fact that the pronunciation dictionary is synced for later synthesis. It does not spell out what happens to the prior rule on replacement or any auth requirements.

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 tight sentences, front-loaded with the when-to-use trigger, then effect, then exclusion. No filler and every clause carries information.

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

Completeness4/5

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

For a moderately complex mutation covered by annotations and an output schema (so return formatting needn't be explained), the description supplies the trigger, the effect, the rule cap and the dictionary-sync behavior. Only the replacement semantics and any permission requirements are left implicit.

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?

With 100% schema description coverage, the schema already documents all four parameters, so the baseline is 3. The description references the IPA/CMU alphabets and the 500-rule cap, but the 500 is a system limit rather than a per-parameter detail, so the added parameter value is marginal.

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?

States a specific action (add or replace a pronunciation rule) and resource (a word/name/brand in a project's voiceovers), making the effect unambiguous. It does not explicitly name the sibling remove_pronunciation_rule, so an agent infers the boundary rather than being told it.

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?

'Use this when narration mispronounces a word' gives a clear triggering condition, and 'Not for re-voicing lines that already have audio' is an explicit exclusion. It stops short of naming the alternative tool an agent should reach for instead of re-voicing.

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

show_project_overviewShow project overviewA
Read-only
Inspect

Use this when someone wants a quick visual overview of one Tutorializer project. Returns a card with the project's name, domain and logo, how many tutorials, videos and voiceover lines it has (counted up to 100 each) and its 8 most recently edited tutorials. Not for missing languages or devices.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject id or its stable public vanity id

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectYes
tutorialsYes
videoCountYes
speechCountYes
tutorialCountYes
videoCountIsLowerBoundYes
speechCountIsLowerBoundYes
tutorialCountIsLowerBoundYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, closed world), and the description adds real behavioral detail beyond that: counts are capped at 100 each and only the 8 most recently edited tutorials are returned. Those truncation limits are the kind of nuance an agent needs and are not implied by 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?

Three tight sentences, front-loaded with the usage trigger, then the return shape, then the exclusion. Every clause carries information; no filler or restatement of the tool name.

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?

With an output schema present, return values need not be re-explained, and the description still surfaces the count caps and the 8-item tutorial limit. Minor gap: it does not indicate where to go for the full tutorial list or full counts (e.g. list_tutorials) once those truncations apply.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter ('Project id or its stable public vanity id') is fully documented in the schema. The description adds no syntax, format, or lookup guidance beyond 'one Tutorializer project', so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('quick visual overview of one Tutorializer project') and then enumerates exactly what the overview contains (name, domain, logo, counts, 8 most recently edited tutorials). The closing exclusion ('Not for missing languages or devices') implicitly separates it from get_project_localization_summary, so an agent can route without opening other schemas.

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 a clear trigger ('Use this when someone wants a quick visual overview of one project') plus an explicit exclusion for languages/devices. It does not name a sibling alternative (e.g. get_project for full detail or list_tutorials for the complete tutorial list), so the when-not guidance is partial rather than complete.

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

update_projectChange project settingsA
DestructiveIdempotent
Inspect

Use this when someone wants to rename a project or change its domain, languages, default voice or narration speed. Returns the updated settings; fields left out keep their values, and a new locales list replaces the whole set. Not for pronunciation fixes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew project name, up to 120 characters
speedNoNew narration speed multiplier, from 0.1 to 10
domainNoNew product domain, e.g. example.com
localesNoComplete list of language codes the project publishes, 1 to 100; it replaces the current list, and languages left out stop being expected
projectIdYesProject id or its stable public vanity id
defaultVoiceNoNew default voice id for synthesized narration
defaultLocaleNoNew main language code, e.g. en or pt-BR

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
projectYes

TDQS

A4.7/5.0
Behavior5/5

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

With destructiveHint and idempotentHint already present, the description adds important update semantics: omitted fields keep their values, while a new locales list replaces the entire set. This clarifies exactly which kind of destructive behavior to expect and complements the annotations rather than repeating 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?

The description is three tightly written sentences: use case first, update semantics second, exclusion last. Every sentence carries operational information, with no filler or repetition.

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 project update tool with a full input schema, an output schema, and rich annotations, the description supplies the missing behavioral context about partial updates and locale replacement. Together with the structured metadata, it is complete enough for correct invocation.

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 description coverage is 100%, so the baseline is 3, but the description adds useful semantics by stating that fields left out keep their values and that locales replaces the whole list. Those details give the agent behavior-level understanding beyond the parameter descriptions themselves.

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 action ('rename a project or change its domain, languages, default voice or narration speed') against a named resource, making the tool's scope clear. It also explicitly separates itself from pronunciation fixes, so an agent can distinguish it from set_pronunciation_rule without opening the schema.

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 a clear when-to-use condition and a when-not-to-use exclusion ('Not for pronunciation fixes'). It stops short of naming the alternative tool for pronunciation work, so it is clear but not fully explicit about routing alternatives.

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

update_speechChange a voiceover lineA
DestructiveIdempotent
Inspect

Use this when someone wants to change the words, translation, language or voice of one voiceover line. Returns the updated line. A real change re-synthesizes its audio with the project's voice provider, spending synthesis credits and replacing the old audio; identical values change nothing. Not for project-wide pronunciation fixes.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoNew words to speak, up to 5000 characters
voiceNoNew voice id for this line
languageNoNew language code, e.g. en or pt-BR
speechIdYesVoiceover line to edit
translatedTextNoNew translation spoken instead of the source text

Output Schema

ParametersJSON Schema
NameRequiredDescription
speechYes
statusYes
resynthesizedYesTrue when the change re-synthesized the audio and spent synthesis credits

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds the substantive context: a real change re-synthesizes audio via the project's voice provider, spends synthesis credits, and replaces the old audio, while identical values are a no-op. Credit cost and the audio-replacement consequence are exactly the traits an agent needs and cannot get from the hints alone.

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?

Four tight sentences, front-loaded with the trigger condition, then the return value, then the cost/destructive consequence, then the exclusion. No filler and nothing important buried.

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 mutation tool with full schema coverage and an output schema, the description covers the remaining risks: credit spend, audio replacement, no-op behavior on identical input, and scope exclusions. An agent has everything needed to decide and 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 100%, and each parameter already carries its own description with constraints (lengths, language code example). The description's field list (words/translation/language/voice) merely restates what the schema documents, adding no syntax, defaults, or interaction rules beyond the baseline.

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 (change) and resource (one voiceover line) plus the exact editable facets: words, translation, language, voice. It also draws an explicit boundary against project-wide pronunciation work, so an agent can separate it from set_pronunciation_rule and create_speech without reading schemas.

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?

"Use this when someone wants to change the words, translation, language or voice of one voiceover line" gives an explicit trigger condition, and "Not for project-wide pronunciation fixes" gives an exclusion. It falls short of naming the alternative tool (set_pronunciation_rule) outright, so routing still requires a small inference.

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

update_tutorialRename a tutorial or change its voiceA
DestructiveIdempotent
Inspect

Use this when someone wants to rename a tutorial or change the default voice of its narration. Returns the updated tutorial; fields left out keep their values, and repeating the same values changes nothing. Not for editing narration text.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew tutorial name, up to 200 characters
tutorialIdYesTutorial to edit
defaultVoiceNoNew default voice id for synthesized narration

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
tutorialYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=true; the description usefully reinforces idempotency ('repeating the same values changes nothing') and discloses partial-update semantics ('fields left out keep their values'), plus the return shape. However, given destructiveHint=true it never explains what is destructive about the change (e.g. effect on existing synthesized narration), leaving the safety-relevant behavior unstated.

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 short sentences, front-loaded with the trigger condition, then update semantics, then the exclusion. Every sentence carries distinct information with no filler or repetition of the title.

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?

With an output schema present, there is no need to enumerate return fields, and the description covers trigger, partial-update behavior, and exclusions adequately for a simple 3-parameter mutation. The remaining gap is the unexplained destructive behavior flagged by annotations.

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

Parameters3/5

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

Schema description coverage is 100% and all three parameters (tutorialId, name, defaultVoice) are documented with constraints in the schema itself. The description only alludes to name and voice at a high level, adding no syntax, format, or constraint detail beyond the structured fields, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (rename a tutorial / change its default narration voice) and scopes the tool against adjacent operations with 'Not for editing narration text.' An agent can distinguish it from update_video, update_speech, and update_project without opening any schema.

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?

'Use this when someone wants to rename a tutorial or change the default voice' gives a clear triggering condition, and the closing exclusion tells the agent when not to use it. It stops short of naming the correct alternative for narration-text edits, so it is not fully explicit routing.

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

update_videoFix a video's detailsA
DestructiveIdempotent
Inspect

Use this when someone wants to correct a tutorial video's language, device, dimensions, file link, subtitles, chapters or thumbnail. Returns the updated video record; fields left out keep their values and identical values change nothing. Not for re-rendering the video itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoNew public https URL of the video file
widthNoNew width in pixels, 1 to 100000
deviceNoNew device: computer, tablet or smartphone
formatNoNew container or codec, e.g. mp4 or webm
heightNoNew height in pixels, 1 to 100000
localeNoNew language code, e.g. en or pt-BR
videoIdYesVideo to correct
durationNoNew duration in seconds, up to 86400
fileSizeNoNew file size in bytes
chaptersUrlNoNew public https URL of the chapters track
subtitlesUrlNoNew public https URL of a WebVTT subtitle track
thumbnailUrlNoNew public https URL of the poster image

Output Schema

ParametersJSON Schema
NameRequiredDescription
videoYes
statusYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=true and readOnlyHint=false. The description adds concrete semantics beyond them: omitted fields retain their values, identical values are no-ops, and the updated record is returned. It omits any note that overwriting an existing value is irreversible, which is the one gap given destructiveHint=true.

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 sentences, front-loaded with the trigger, then the update semantics, then the exclusion. No filler and every sentence carries distinct information.

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

Completeness4/5

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

With an output schema present, the description need not explain return values, and annotations cover the safety profile. Combined with 100% schema coverage, the definition is nearly sufficient; only the video-vs-tutorial sibling boundary and overwrite irreversibility are unaddressed.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents all 12 fields with types, ranges and formats. The description's field list (language, device, dimensions, links, subtitles, chapters, thumbnail) roughly mirrors the schema and adds no syntax beyond it; format, duration and fileSize are not even mentioned. Baseline 3 is appropriate.

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 names a specific verb ('correct'/'fix') and resource (a tutorial video) and enumerates the editable facets: language, device, dimensions, file link, subtitles, chapters, thumbnail. That is far more specific than a restatement of the title. It does not, however, explicitly distinguish itself from the sibling update_tutorial, leaving mild ambiguity about the video-vs-tutorial boundary.

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 an explicit trigger ('Use this when someone wants to correct...') and an explicit exclusion ('Not for re-rendering the video itself'). It stops short of naming a sibling alternative to redirect to, so the routing guidance is clear but not complete.

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. 23 tool updates
    • Changedcreate_project3 fields changed
      • changedInput schema / properties / defaultLocale / description
        Previous value: -"Default locale code, for example en or pt-BR"New value: +"Main language code of the tutorials, e.g. en or pt-BR; optional"
      • changedInput schema / properties / domain / description
        Previous value: -"Optional product domain, for example example.com"New value: +"Domain of the product the tutorials cover, e.g. example.com; optional"
      • changedInput schema / properties / name / description
        Previous value: -"Project name"New value: +"Project name as people will see it, up to 120 characters"
    • Changedcreate_speech4 fields changed
      • changedInput schema / properties / language / description
        Previous value: -"Language code of the narration, for example en or pt-BR"New value: +"Language code of the narration, e.g. en or pt-BR"
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id that will own the voiceover segment"New value: +"Project the voiceover line belongs to"
      • changedInput schema / properties / text / description
        Previous value: -"Narration text to speak"New value: +"Words to speak, up to 5000 characters"
      • addedOutput schema / properties / synthesized / description
        Added value: +"True when audio was synthesized and synthesis credits were spent; false when a url was recorded"
    • Changedcreate_tutorial2 fields changed
      • changedInput schema / properties / name / description
        Previous value: -"Tutorial name"New value: +"Tutorial name, up to 200 characters"
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id that will own the tutorial"New value: +"Project the tutorial belongs to"
    • Changedcreate_video10 fields changed
      • changedInput schema / properties / chaptersUrl / description
        Previous value: -"Public https URL of chapters"New value: +"Public https URL of the chapters track"
      • changedInput schema / properties / device / description
        Previous value: -"Device profile, for example computer or smartphone"New value: +"Device the video was rendered for: computer, tablet or smartphone"
      • changedInput schema / properties / duration / description
        Previous value: -"Duration in seconds"New value: +"Duration in seconds, up to 86400"
      • changedInput schema / properties / format / description
        Previous value: -"Container or codec, for example mp4 or webm"New value: +"Container or codec, e.g. mp4 or webm"
      • addedInput schema / properties / height / description
        Added value: +"Height in pixels, 1 to 100000"
      • changedInput schema / properties / locale / description
        Previous value: -"Locale of this render, for example en or pt-BR"New value: +"Language code of this video, e.g. en or pt-BR"
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id that owns the tutorial"New value: +"Project that owns the tutorial"
      • changedInput schema / properties / thumbnailUrl / description
        Previous value: -"Public https URL of a poster"New value: +"Public https URL of the poster image"
      • changedInput schema / properties / tutorialId / description
        Previous value: -"Tutorial id this rendered output belongs to"New value: +"Tutorial this video is a rendering of"
      • addedInput schema / properties / width / description
        Added value: +"Width in pixels, 1 to 100000"
    • Changeddelete_speech1 field changed
      • changedInput schema / properties / speechId / description
        Previous value: -"Speech id to delete"New value: +"Voiceover line to delete"
    • Changeddelete_tutorial1 field changed
      • changedInput schema / properties / tutorialId / description
        Previous value: -"Tutorial id to delete"New value: +"Tutorial to delete"
    • Changeddelete_video1 field changed
      • changedInput schema / properties / videoId / description
        Previous value: -"Rendered video id to delete"New value: +"Video to delete"
    • Changedget_project2 fields changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id or stable public vanity id"New value: +"Project id or its stable public vanity id"
      • addedOutput schema / properties / project / description
        Added value: +"Project settings; null when not found. Organization ids and pronunciation-dictionary ids are never returned."
    • Changedget_project_localization_summary3 fields changed
      • changedInput schema / properties / expectedDevices / description
        Previous value: -"Expected output device names; defaults to computer, tablet, and smartphone"New value: +"Devices each language should have videos for, 1 to 10 names such as computer, tablet or smartphone; defaults to those three"
      • changedInput schema / properties / projectId / description
        Previous value: -"Tutorializer project id or stable public vanity id"New value: +"Project id or its stable public vanity id"
      • addedOutput schema / properties / summary / description
        Added value: +"Coverage from at most the 100 most recently edited tutorials, videos and voiceover lines; coverageDerivedFromTruncatedData is true when more exist. Null when the project is not found."
    • Changedget_speech1 field changed
      • changedInput schema / properties / speechId / description
        Previous value: -"Speech id (uuid)"New value: +"Voiceover line id"
    • Changedget_tutorial1 field changed
      • changedInput schema / properties / tutorialId / description
        Previous value: -"Tutorial id (uuid)"New value: +"Tutorial id"
    • Changedget_video1 field changed
      • changedInput schema / properties / videoId / description
        Previous value: -"Video id (uuid)"New value: +"Video id"
    • Changedlist_projects3 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page; absent for the first page"
      • addedInput schema / properties / limit / description
        Added value: +"Projects per page, from 1 to 100; defaults to 25"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Cursor for the next page; null on the last page"
    • Changedlist_speeches6 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
      • changedInput schema / properties / language / description
        Previous value: -"Filter speeches by language code, e.g. en, es, de"New value: +"Only lines in this language code, e.g. en, es or de"
      • addedInput schema / properties / limit / description
        Added value: +"Voiceover lines per page, from 1 to 100; defaults to 25"
      • changedInput schema / properties / projectId / description
        Previous value: -"Filter speeches by project id"New value: +"Only voiceover lines in this project"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Cursor for the next page; null on the last page"
      • addedOutput schema / properties / speeches / description
        Added value: +"Voiceover lines with a text preview of up to 120 characters, not the full text"
    • Changedlist_tutorials4 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
      • addedInput schema / properties / limit / description
        Added value: +"Tutorials per page, from 1 to 100; defaults to 25"
      • changedInput schema / properties / projectId / description
        Previous value: -"Filter tutorials by project id"New value: +"Only tutorials in this project; every project when absent"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Cursor for the next page; null on the last page"
    • Changedlist_videos7 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
      • changedInput schema / properties / device / description
        Previous value: -"Filter by device, e.g. desktop, smartphone"New value: +"Only videos for this device: computer, tablet or smartphone"
      • addedInput schema / properties / limit / description
        Added value: +"Videos per page, from 1 to 100; defaults to 25"
      • changedInput schema / properties / locale / description
        Previous value: -"Filter by locale, e.g. en, es"New value: +"Only videos in this language code, e.g. en or pt-BR"
      • changedInput schema / properties / projectId / description
        Previous value: -"Filter videos by project id"New value: +"Only videos in this project"
      • changedInput schema / properties / tutorialId / description
        Previous value: -"Filter videos by tutorial id"New value: +"Only videos of this tutorial"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Cursor for the next page; null on the last page"
    • Changedremove_pronunciation_rule1 field changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Tutorializer project id"New value: +"Project the rule belongs to"
    • Changedset_pronunciation_rule4 fields changed
      • changedInput schema / properties / alphabet / description
        Previous value: -"Phonetic alphabet; defaults to ipa"New value: +"Phonetic alphabet: ipa or cmu; defaults to ipa"
      • changedInput schema / properties / phonemes / description
        Previous value: -"Phonetic pronunciation"New value: +"How to say it, in the chosen phonetic alphabet, up to 500 characters"
      • changedInput schema / properties / projectId / description
        Previous value: -"Tutorializer project id"New value: +"Project whose narration to fix"
      • changedInput schema / properties / word / description
        Previous value: -"Word or phrase to match"New value: +"Exact word or phrase to match, up to 120 characters"
    • Changedshow_project_overview1 field changed
      • changedInput schema / properties / projectId / description
        Previous value: -"Tutorializer project id or stable public vanity id to render"New value: +"Project id or its stable public vanity id"
    • Changedupdate_project6 fields changed
      • changedInput schema / properties / defaultLocale / description
        Previous value: -"New default locale, for example en or pt-BR"New value: +"New main language code, e.g. en or pt-BR"
      • changedInput schema / properties / domain / description
        Previous value: -"New product domain, for example example.com"New value: +"New product domain, e.g. example.com"
      • changedInput schema / properties / locales / description
        Previous value: -"Complete replacement list of locales the project publishes. Locales absent from this list stop being expected."New value: +"Complete list of language codes the project publishes, 1 to 100; it replaces the current list, and languages left out stop being expected"
      • changedInput schema / properties / name / description
        Previous value: -"New name"New value: +"New project name, up to 120 characters"
      • changedInput schema / properties / projectId / description
        Previous value: -"Project id or stable public vanity id"New value: +"Project id or its stable public vanity id"
      • changedInput schema / properties / speed / description
        Previous value: -"New narration speed multiplier"New value: +"New narration speed multiplier, from 0.1 to 10"
    • Changedupdate_speech5 fields changed
      • changedInput schema / properties / language / description
        Previous value: -"New language"New value: +"New language code, e.g. en or pt-BR"
      • changedInput schema / properties / speechId / description
        Previous value: -"Voiceover segment id to edit"New value: +"Voiceover line to edit"
      • changedInput schema / properties / text / description
        Previous value: -"New narration text"New value: +"New words to speak, up to 5000 characters"
      • changedInput schema / properties / voice / description
        Previous value: -"New voice id"New value: +"New voice id for this line"
      • addedOutput schema / properties / resynthesized / description
        Added value: +"True when the change re-synthesized the audio and spent synthesis credits"
    • Changedupdate_tutorial2 fields changed
      • changedInput schema / properties / name / description
        Previous value: -"New tutorial name"New value: +"New tutorial name, up to 200 characters"
      • changedInput schema / properties / tutorialId / description
        Previous value: -"Tutorial id to edit"New value: +"Tutorial to edit"
    • Changedupdate_video11 fields changed
      • addedInput schema / properties / chaptersUrl / description
        Added value: +"New public https URL of the chapters track"
      • addedInput schema / properties / device / description
        Added value: +"New device: computer, tablet or smartphone"
      • addedInput schema / properties / duration / description
        Added value: +"New duration in seconds, up to 86400"
      • addedInput schema / properties / fileSize / description
        Added value: +"New file size in bytes"
      • addedInput schema / properties / format / description
        Added value: +"New container or codec, e.g. mp4 or webm"
      • addedInput schema / properties / height / description
        Added value: +"New height in pixels, 1 to 100000"
      • addedInput schema / properties / locale / description
        Added value: +"New language code, e.g. en or pt-BR"
      • addedInput schema / properties / subtitlesUrl / description
        Added value: +"New public https URL of a WebVTT subtitle track"
      • addedInput schema / properties / thumbnailUrl / description
        Added value: +"New public https URL of the poster image"
      • changedInput schema / properties / videoId / description
        Previous value: -"Rendered video id"New value: +"Video to correct"
      • addedInput schema / properties / width / description
        Added value: +"New width in pixels, 1 to 100000"
  2. 1 tool update
    • Changedshow_project_overview1 field changed
      • changedOutput schema / properties / project / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "domain": {
        -        "anyOf": [
        -          {
        -            "maxLength": 253,
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "id": {
        -        "maxLength": 200,
        -        "minLength": 1,
        -        "type": "string"
        -      },
        -      "name": {
        -        "maxLength": 200,
        -        "minLength": 1,
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "name",
        -      "domain"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "domain": {
        +        "anyOf": [
        +          {
        +            "maxLength": 253,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "id": {
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "logo": {
        +        "anyOf": [
        +          {
        +            "maxLength": 2048,
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "name": {
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "domain",
        +      "logo"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  3. 8 tool updates
    • Addedcreate_speech
    • Addedcreate_tutorial
    • Addedcreate_video
    • Addeddelete_tutorial
    • Addedupdate_project
    • Addedupdate_speech
    • Addedupdate_tutorial
    • Addedupdate_video
  4. 1 tool update
    • Changedshow_project_overview3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / additionalProperties
        Removed value: -false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  5. 15 tool updates
    • First observedcreate_project
    • First observeddelete_speech
    • First observeddelete_video
    • First observedget_project
    • First observedget_project_localization_summary
    • First observedget_speech
    • First observedget_tutorial
    • First observedget_video
    • First observedlist_projects
    • First observedlist_speeches
    • First observedlist_tutorials
    • First observedlist_videos
    • First observedremove_pronunciation_rule
    • First observedset_pronunciation_rule
    • First observedshow_project_overview

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to generate TTS audio, verify it with independent ASR, measure quality against gates, escalate retries, and receive structured QC reports to improve text.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to generate narration in a single fixed, pre-approved voice, returning audio with per-line timing, hashes, and automatic quality checks on content, speaker identity, and pace, all locally and reproducibly.
    -
  • A
    license
    A
    quality
    F
    maintenance
    Enables AI agents to present interactive code walkthroughs with voice narration, opening files, highlighting code, and showing inline explanations with synchronized text-to-speech.
    5
    11 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to create subtitled tutorial videos by scripting browser interactions with Playwright, outputting MP4 with burned-in captions and SRT file.
    66 npm
    4
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources