Tutorializer Video Tutorials
Server Details
Write and update video tutorials, voiceovers and pronunciation rules across your projects.
- Status
- Healthy
- Uptime
- 55.6% over 62 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 23 tools
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.
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.
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.
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 toolscreate_projectCreate a tutorial projectADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name as people will see it, up to 120 characters | |
| domain | No | Domain of the product the tutorials cover, e.g. example.com; optional | |
| defaultLocale | No | Main language code of the tutorials, e.g. en or pt-BR; optional |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| project | Yes |
TDQS
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.
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.
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.
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.
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.
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 lineADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public https URL of audio you already produced. Supplying it records the segment without synthesizing anything. | |
| text | Yes | Words to speak, up to 5000 characters | |
| voice | No | Optional voice id; defaults to the project's default voice | |
| language | Yes | Language code of the narration, e.g. en or pt-BR | |
| projectId | Yes | Project the voiceover line belongs to | |
| translatedText | No | Optional translation spoken instead of the source text |
Output Schema
| Name | Required | Description |
|---|---|---|
| speech | Yes | |
| status | Yes | |
| synthesized | Yes | True when audio was synthesized and synthesis credits were spent; false when a url was recorded |
TDQS
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.
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.
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.
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.
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.
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 tutorialADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tutorial name, up to 200 characters | |
| projectId | Yes | Project the tutorial belongs to | |
| defaultVoice | No | Optional voice id used when narration is synthesized for this tutorial |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| tutorial | Yes |
TDQS
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.
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.
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.
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.
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.
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 videoADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public https URL of the already-uploaded video file | |
| width | No | Width in pixels, 1 to 100000 | |
| device | No | Device the video was rendered for: computer, tablet or smartphone | |
| format | No | Container or codec, e.g. mp4 or webm | |
| height | No | Height in pixels, 1 to 100000 | |
| locale | No | Language code of this video, e.g. en or pt-BR | |
| duration | No | Duration in seconds, up to 86400 | |
| fileSize | No | File size in bytes | |
| projectId | Yes | Project that owns the tutorial | |
| tutorialId | Yes | Tutorial this video is a rendering of | |
| chaptersUrl | No | Public https URL of the chapters track | |
| subtitlesUrl | No | Public https URL of a WebVTT subtitle track | |
| thumbnailUrl | No | Public https URL of the poster image |
Output Schema
| Name | Required | Description |
|---|---|---|
| video | Yes | |
| status | Yes |
TDQS
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.
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.
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.
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.
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.
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 lineADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| speechId | Yes | Voiceover line to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| speechId | Yes |
TDQS
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.
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.
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.
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.
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.
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 tutorialADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tutorialId | Yes | Tutorial to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| tutorialId | Yes |
TDQS
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.
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.
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.
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.
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.
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 videoADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | Video to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| videoId | Yes |
TDQS
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.
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.
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.
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.
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.
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 settingsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or its stable public vanity id |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| project | Yes | Project settings; null when not found. Organization ids and pronunciation-dictionary ids are never returned. |
TDQS
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.
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.
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.
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.
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.
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 devicesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or its stable public vanity id | |
| expectedDevices | No | Devices each language should have videos for, 1 to 10 names such as computer, tablet or smartphone; defaults to those three |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| summary | Yes | 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. |
TDQS
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.
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.
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.
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.
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.
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 lineARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| speechId | Yes | Voiceover line id |
Output Schema
| Name | Required | Description |
|---|---|---|
| speech | Yes | |
| status | Yes |
TDQS
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.
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.
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.
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.
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.
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 videosARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tutorialId | Yes | Tutorial id |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| videos | Yes | |
| tutorial | Yes | |
| videoCount | Yes | |
| videoCountIsLowerBound | Yes |
TDQS
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.
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.
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.
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.
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.
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 detailsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | Video id |
Output Schema
| Name | Required | Description |
|---|---|---|
| video | Yes | |
| status | Yes |
TDQS
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.
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.
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.
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.
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.
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 projectsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Projects per page, from 1 to 100; defaults to 25 | |
| cursor | No | The nextCursor of the previous page; absent for the first page |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | Yes | |
| status | Yes | |
| hasMore | Yes | |
| projects | Yes | |
| returned | Yes | |
| nextCursor | Yes | Cursor for the next page; null on the last page |
TDQS
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.
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.
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.
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.
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.
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 linesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Voiceover lines per page, from 1 to 100; defaults to 25 | |
| cursor | No | The nextCursor of the previous page with the same filters; absent for the first page | |
| language | No | Only lines in this language code, e.g. en, es or de | |
| projectId | No | Only voiceover lines in this project |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | Yes | |
| status | Yes | |
| hasMore | Yes | |
| returned | Yes | |
| speeches | Yes | Voiceover lines with a text preview of up to 120 characters, not the full text |
| nextCursor | Yes | Cursor for the next page; null on the last page |
| languageFilter | Yes | |
| projectIdFilter | Yes |
TDQS
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.
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.
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.
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.
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.
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 tutorialsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Tutorials per page, from 1 to 100; defaults to 25 | |
| cursor | No | The nextCursor of the previous page with the same filters; absent for the first page | |
| projectId | No | Only tutorials in this project; every project when absent |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | Yes | |
| status | Yes | |
| hasMore | Yes | |
| returned | Yes | |
| tutorials | Yes | |
| nextCursor | Yes | Cursor for the next page; null on the last page |
| projectIdFilter | Yes |
TDQS
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.
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.
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.
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.
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.
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 videosARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Videos per page, from 1 to 100; defaults to 25 | |
| cursor | No | The nextCursor of the previous page with the same filters; absent for the first page | |
| device | No | Only videos for this device: computer, tablet or smartphone | |
| locale | No | Only videos in this language code, e.g. en or pt-BR | |
| projectId | No | Only videos in this project | |
| tutorialId | No | Only videos of this tutorial |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | Yes | |
| status | Yes | |
| videos | Yes | |
| hasMore | Yes | |
| returned | Yes | |
| nextCursor | Yes | Cursor for the next page; null on the last page |
| deviceFilter | Yes | |
| localeFilter | Yes | |
| projectIdFilter | Yes | |
| tutorialIdFilter | Yes |
TDQS
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.
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.
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.
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.
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.
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 fixADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | Exact word or phrase whose pronunciation rule should be removed | |
| projectId | Yes | Project the rule belongs to |
Output Schema
| Name | Required | Description |
|---|---|---|
| word | Yes | |
| status | Yes | |
| projectId | Yes | |
| remainingRuleCount | Yes | |
| remainingRuleCountIsLowerBound | Yes |
TDQS
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.
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.
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.
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.
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.
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 pronouncedADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | Exact word or phrase to match, up to 120 characters | |
| alphabet | No | Phonetic alphabet: ipa or cmu; defaults to ipa | |
| phonemes | Yes | How to say it, in the chosen phonetic alphabet, up to 500 characters | |
| projectId | Yes | Project whose narration to fix |
Output Schema
| Name | Required | Description |
|---|---|---|
| rule | Yes | |
| status | Yes | |
| projectId | Yes | |
| ruleCount | Yes | |
| ruleCountIsLowerBound | Yes |
TDQS
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.
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.
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.
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.
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.
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 overviewARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id or its stable public vanity id |
Output Schema
| Name | Required | Description |
|---|---|---|
| project | Yes | |
| tutorials | Yes | |
| videoCount | Yes | |
| speechCount | Yes | |
| tutorialCount | Yes | |
| videoCountIsLowerBound | Yes | |
| speechCountIsLowerBound | Yes | |
| tutorialCountIsLowerBound | Yes |
TDQS
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.
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.
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.
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.
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.
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 settingsADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New project name, up to 120 characters | |
| speed | No | New narration speed multiplier, from 0.1 to 10 | |
| domain | No | New product domain, e.g. example.com | |
| locales | No | Complete list of language codes the project publishes, 1 to 100; it replaces the current list, and languages left out stop being expected | |
| projectId | Yes | Project id or its stable public vanity id | |
| defaultVoice | No | New default voice id for synthesized narration | |
| defaultLocale | No | New main language code, e.g. en or pt-BR |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| project | Yes |
TDQS
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.
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.
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.
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.
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.
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 lineADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | New words to speak, up to 5000 characters | |
| voice | No | New voice id for this line | |
| language | No | New language code, e.g. en or pt-BR | |
| speechId | Yes | Voiceover line to edit | |
| translatedText | No | New translation spoken instead of the source text |
Output Schema
| Name | Required | Description |
|---|---|---|
| speech | Yes | |
| status | Yes | |
| resynthesized | Yes | True when the change re-synthesized the audio and spent synthesis credits |
TDQS
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.
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.
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.
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.
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.
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 voiceADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New tutorial name, up to 200 characters | |
| tutorialId | Yes | Tutorial to edit | |
| defaultVoice | No | New default voice id for synthesized narration |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| tutorial | Yes |
TDQS
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.
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.
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.
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.
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.
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 detailsADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | New public https URL of the video file | |
| width | No | New width in pixels, 1 to 100000 | |
| device | No | New device: computer, tablet or smartphone | |
| format | No | New container or codec, e.g. mp4 or webm | |
| height | No | New height in pixels, 1 to 100000 | |
| locale | No | New language code, e.g. en or pt-BR | |
| videoId | Yes | Video to correct | |
| duration | No | New duration in seconds, up to 86400 | |
| fileSize | No | New file size in bytes | |
| chaptersUrl | No | New public https URL of the chapters track | |
| subtitlesUrl | No | New public https URL of a WebVTT subtitle track | |
| thumbnailUrl | No | New public https URL of the poster image |
Output Schema
| Name | Required | Description |
|---|---|---|
| video | Yes | |
| status | Yes |
TDQS
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.
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.
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.
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.
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.
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.
23 tool updates
- Changed
create_project3 fields changed- changed
Input schema / properties / defaultLocale / descriptionPrevious 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" - changed
Input schema / properties / domain / descriptionPrevious value: -"Optional product domain, for example example.com"New value: +"Domain of the product the tutorials cover, e.g. example.com; optional" - changed
Input schema / properties / name / descriptionPrevious value: -"Project name"New value: +"Project name as people will see it, up to 120 characters"
- Changed
create_speech4 fields changed- changed
Input schema / properties / language / descriptionPrevious 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" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id that will own the voiceover segment"New value: +"Project the voiceover line belongs to" - changed
Input schema / properties / text / descriptionPrevious value: -"Narration text to speak"New value: +"Words to speak, up to 5000 characters" - added
Output schema / properties / synthesized / descriptionAdded value: +"True when audio was synthesized and synthesis credits were spent; false when a url was recorded"
- Changed
create_tutorial2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Tutorial name"New value: +"Tutorial name, up to 200 characters" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id that will own the tutorial"New value: +"Project the tutorial belongs to"
- Changed
create_video10 fields changed- changed
Input schema / properties / chaptersUrl / descriptionPrevious value: -"Public https URL of chapters"New value: +"Public https URL of the chapters track" - changed
Input schema / properties / device / descriptionPrevious value: -"Device profile, for example computer or smartphone"New value: +"Device the video was rendered for: computer, tablet or smartphone" - changed
Input schema / properties / duration / descriptionPrevious value: -"Duration in seconds"New value: +"Duration in seconds, up to 86400" - changed
Input schema / properties / format / descriptionPrevious value: -"Container or codec, for example mp4 or webm"New value: +"Container or codec, e.g. mp4 or webm" - added
Input schema / properties / height / descriptionAdded value: +"Height in pixels, 1 to 100000" - changed
Input schema / properties / locale / descriptionPrevious value: -"Locale of this render, for example en or pt-BR"New value: +"Language code of this video, e.g. en or pt-BR" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id that owns the tutorial"New value: +"Project that owns the tutorial" - changed
Input schema / properties / thumbnailUrl / descriptionPrevious value: -"Public https URL of a poster"New value: +"Public https URL of the poster image" - changed
Input schema / properties / tutorialId / descriptionPrevious value: -"Tutorial id this rendered output belongs to"New value: +"Tutorial this video is a rendering of" - added
Input schema / properties / width / descriptionAdded value: +"Width in pixels, 1 to 100000"
- Changed
delete_speech1 field changed- changed
Input schema / properties / speechId / descriptionPrevious value: -"Speech id to delete"New value: +"Voiceover line to delete"
- Changed
delete_tutorial1 field changed- changed
Input schema / properties / tutorialId / descriptionPrevious value: -"Tutorial id to delete"New value: +"Tutorial to delete"
- Changed
delete_video1 field changed- changed
Input schema / properties / videoId / descriptionPrevious value: -"Rendered video id to delete"New value: +"Video to delete"
- Changed
get_project2 fields changed- changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id or stable public vanity id"New value: +"Project id or its stable public vanity id" - added
Output schema / properties / project / descriptionAdded value: +"Project settings; null when not found. Organization ids and pronunciation-dictionary ids are never returned."
- Changed
get_project_localization_summary3 fields changed- changed
Input schema / properties / expectedDevices / descriptionPrevious 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" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Tutorializer project id or stable public vanity id"New value: +"Project id or its stable public vanity id" - added
Output schema / properties / summary / descriptionAdded 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."
- Changed
get_speech1 field changed- changed
Input schema / properties / speechId / descriptionPrevious value: -"Speech id (uuid)"New value: +"Voiceover line id"
- Changed
get_tutorial1 field changed- changed
Input schema / properties / tutorialId / descriptionPrevious value: -"Tutorial id (uuid)"New value: +"Tutorial id"
- Changed
get_video1 field changed- changed
Input schema / properties / videoId / descriptionPrevious value: -"Video id (uuid)"New value: +"Video id"
- Changed
list_projects3 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page; absent for the first page" - added
Input schema / properties / limit / descriptionAdded value: +"Projects per page, from 1 to 100; defaults to 25" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Cursor for the next page; null on the last page"
- Changed
list_speeches6 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page with the same filters; absent for the first page" - changed
Input schema / properties / language / descriptionPrevious 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" - added
Input schema / properties / limit / descriptionAdded value: +"Voiceover lines per page, from 1 to 100; defaults to 25" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Filter speeches by project id"New value: +"Only voiceover lines in this project" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Cursor for the next page; null on the last page" - added
Output schema / properties / speeches / descriptionAdded value: +"Voiceover lines with a text preview of up to 120 characters, not the full text"
- Changed
list_tutorials4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page with the same filters; absent for the first page" - added
Input schema / properties / limit / descriptionAdded value: +"Tutorials per page, from 1 to 100; defaults to 25" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Filter tutorials by project id"New value: +"Only tutorials in this project; every project when absent" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Cursor for the next page; null on the last page"
- Changed
list_videos7 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a previous call"New value: +"The nextCursor of the previous page with the same filters; absent for the first page" - changed
Input schema / properties / device / descriptionPrevious value: -"Filter by device, e.g. desktop, smartphone"New value: +"Only videos for this device: computer, tablet or smartphone" - added
Input schema / properties / limit / descriptionAdded value: +"Videos per page, from 1 to 100; defaults to 25" - changed
Input schema / properties / locale / descriptionPrevious value: -"Filter by locale, e.g. en, es"New value: +"Only videos in this language code, e.g. en or pt-BR" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Filter videos by project id"New value: +"Only videos in this project" - changed
Input schema / properties / tutorialId / descriptionPrevious value: -"Filter videos by tutorial id"New value: +"Only videos of this tutorial" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Cursor for the next page; null on the last page"
- Changed
remove_pronunciation_rule1 field changed- changed
Input schema / properties / projectId / descriptionPrevious value: -"Tutorializer project id"New value: +"Project the rule belongs to"
- Changed
set_pronunciation_rule4 fields changed- changed
Input schema / properties / alphabet / descriptionPrevious value: -"Phonetic alphabet; defaults to ipa"New value: +"Phonetic alphabet: ipa or cmu; defaults to ipa" - changed
Input schema / properties / phonemes / descriptionPrevious value: -"Phonetic pronunciation"New value: +"How to say it, in the chosen phonetic alphabet, up to 500 characters" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Tutorializer project id"New value: +"Project whose narration to fix" - changed
Input schema / properties / word / descriptionPrevious value: -"Word or phrase to match"New value: +"Exact word or phrase to match, up to 120 characters"
- Changed
show_project_overview1 field changed- changed
Input schema / properties / projectId / descriptionPrevious value: -"Tutorializer project id or stable public vanity id to render"New value: +"Project id or its stable public vanity id"
- Changed
update_project6 fields changed- changed
Input schema / properties / defaultLocale / descriptionPrevious value: -"New default locale, for example en or pt-BR"New value: +"New main language code, e.g. en or pt-BR" - changed
Input schema / properties / domain / descriptionPrevious value: -"New product domain, for example example.com"New value: +"New product domain, e.g. example.com" - changed
Input schema / properties / locales / descriptionPrevious 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" - changed
Input schema / properties / name / descriptionPrevious value: -"New name"New value: +"New project name, up to 120 characters" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id or stable public vanity id"New value: +"Project id or its stable public vanity id" - changed
Input schema / properties / speed / descriptionPrevious value: -"New narration speed multiplier"New value: +"New narration speed multiplier, from 0.1 to 10"
- Changed
update_speech5 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"New language"New value: +"New language code, e.g. en or pt-BR" - changed
Input schema / properties / speechId / descriptionPrevious value: -"Voiceover segment id to edit"New value: +"Voiceover line to edit" - changed
Input schema / properties / text / descriptionPrevious value: -"New narration text"New value: +"New words to speak, up to 5000 characters" - changed
Input schema / properties / voice / descriptionPrevious value: -"New voice id"New value: +"New voice id for this line" - added
Output schema / properties / resynthesized / descriptionAdded value: +"True when the change re-synthesized the audio and spent synthesis credits"
- Changed
update_tutorial2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"New tutorial name"New value: +"New tutorial name, up to 200 characters" - changed
Input schema / properties / tutorialId / descriptionPrevious value: -"Tutorial id to edit"New value: +"Tutorial to edit"
- Changed
update_video11 fields changed- added
Input schema / properties / chaptersUrl / descriptionAdded value: +"New public https URL of the chapters track" - added
Input schema / properties / device / descriptionAdded value: +"New device: computer, tablet or smartphone" - added
Input schema / properties / duration / descriptionAdded value: +"New duration in seconds, up to 86400" - added
Input schema / properties / fileSize / descriptionAdded value: +"New file size in bytes" - added
Input schema / properties / format / descriptionAdded value: +"New container or codec, e.g. mp4 or webm" - added
Input schema / properties / height / descriptionAdded value: +"New height in pixels, 1 to 100000" - added
Input schema / properties / locale / descriptionAdded value: +"New language code, e.g. en or pt-BR" - added
Input schema / properties / subtitlesUrl / descriptionAdded value: +"New public https URL of a WebVTT subtitle track" - added
Input schema / properties / thumbnailUrl / descriptionAdded value: +"New public https URL of the poster image" - changed
Input schema / properties / videoId / descriptionPrevious value: -"Rendered video id"New value: +"Video to correct" - added
Input schema / properties / width / descriptionAdded value: +"New width in pixels, 1 to 100000"
1 tool update
- Changed
show_project_overview1 field changed- changed
Output schema / properties / project / anyOfPrevious 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" + } +]
8 tool updates
- Added
create_speech - Added
create_tutorial - Added
create_video - Added
delete_tutorial - Added
update_project - Added
update_speech - Added
update_tutorial - Added
update_video
1 tool update
- Changed
show_project_overview3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
15 tool updates
- First observed
create_project - First observed
delete_speech - First observed
delete_video - First observed
get_project - First observed
get_project_localization_summary - First observed
get_speech - First observed
get_tutorial - First observed
get_video - First observed
list_projects - First observed
list_speeches - First observed
list_tutorials - First observed
list_videos - First observed
remove_pronunciation_rule - First observed
set_pronunciation_rule - First observed
show_project_overview
Related MCP Connectors
Write, edit, translate and publish blog and help-center articles across all your sites.
Transcribe, subtitle, dub and lip-sync media; create speech, voices, images and thumbnails.
Transcribe, subtitle and dub videos into 100+ languages, and translate text.
AI Voice Production Agent: picks from 30+ TTS models, fixes pronunciation, validates every line.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables agents to generate TTS audio, verify it with independent ASR, measure quality against gates, escalate retries, and receive structured QC reports to improve text.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables 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.-
- AlicenseAqualityFmaintenanceEnables AI agents to present interactive code walkthroughs with voice narration, opening files, highlighting code, and showing inline explanations with synchronized text-to-speech.511 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables users to create subtitled tutorial videos by scripting browser interactions with Playwright, outputting MP4 with burned-in captions and SRT file.66 npm4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.