zvex
Server Quality Checklist
Latest release: v0.1.1
- Disambiguation5/5
Each tool has a clearly distinct purpose: cost estimation, job submission, status polling, and blocking wait. There is no overlap or ambiguity; an agent can easily select the right tool for each step of the workflow.
Naming Consistency5/5All tool names follow a consistent verb_noun pattern (estimate_cost, submit_dubbing_job, get_job_status, wait_for_job). The naming is uniform and predictable, making the API easy to learn and use.
Tool Count5/5With 4 tools, the server is well-scoped for a dubbing service. Each tool covers a necessary step: cost estimation, job submission, status checking, and a convenience wait method. There are no redundant or missing tools that would bloat or underrepresent the functionality.
Completeness4/5The core dubbing lifecycle is covered: estimate cost, submit job, poll status, and retrieve output. A minor gap is the lack of a cancel operation (though status mentions 'cancelled'), but it is not a critical dead end. The workflow is fully functional without it.
Average 4.6/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does a solid job: it discloses blocking behavior, the final-state condition, timeout behavior, and the return shape. It even gives a practical heuristic about dubbing duration to guide timeout configuration. Minor gaps remain around what happens exactly on timeout, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose sentence followed by Args and Returns sections. Every sentence earns its place: the wrapper explanation, the duration heuristic, and the parameter semantics are all useful and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter convenience wrapper, the description covers purpose, parameter meaning, timeout guidance, and return content. Since an output schema is present, explaining return values in depth is not required. It could be slightly more explicit about timeout failure behavior or when to fall back to get_job_status, but nothing essential is missing for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning beyond the raw schema, and it does. It explains that job_id comes from submit_dubbing_job and gives timeout_seconds a default (1800) and maximum (7200) that are not present in the schema. The only weakness is that it stops short of describing the timeout result behavior in detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Block until a dubbing job reaches a final state, then return its result.' It also distinguishes itself from get_job_status by calling itself a 'convenience wrapper' for callers that just want the finished video, which clearly differentiates it from the sibling polling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names get_job_status as the underlying tool and frames wait_for_job as the right choice for callers that 'just want the finished video,' giving clear context for when to use it. It does not explicitly state when to prefer get_job_status (e.g., for incremental polling), but the implied usage is strong and the alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the burden. It discloses the four possible statuses, the presence of download URLs on completion, the error field on failure, and the side effect of credit refund on failure. This goes well beyond the schema and covers key behavioral outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a brief opening, followed by Args and Returns sections. It is slightly longer than strictly necessary, but every sentence adds useful detail (statuses, URLs, error handling). No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter status-check tool with an output schema, the description covers all essential information: possible statuses, what the response contains for each state, and the refund side effect. It is complete enough for an agent to call correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only states job_id is an integer and required. The description adds the critical semantic context that job_id is the value returned by submit_dubbing_job, which fully explains how to obtain a valid input. With 0% schema description coverage, this is essential and well handled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Check a dubbing job's status.' It explicitly ties job_id to submit_dubbing_job, which distinguishes it from the cost-estimation and submission tools. The resource and action are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly implies the tool is for checking status after submission, and references where job_id comes from. However, it does not explicitly contrast with the wait_for_job sibling or state when to prefer one over the other. The guidance is present but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses its read-only nature (estimate, not actual dub), the pricing model, and the return contents (credits, balance, sufficiency). It could mention that no credits are consumed, but the term 'estimate' strongly implies that, making this sufficient for a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured: purpose first, then pricing rule, then parameter explanations, then return summary. Every sentence earns its place and there is no fluff. It is long enough to be informative but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple estimation tool with two parameters and a known output (already described), the description covers all necessary aspects: what it does, how pricing works, parameter constraints, and return behavior. The presence of an output schema reduces the need for further detail, but the description already goes beyond it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully compensates: it explains minutes range (0-600) and valid tier values (fast/standard/professional), plus the flat pricing relationship that ties them together. This adds real meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (estimate) and resource (credit cost of dubbing a video), plus a second purpose (checking credit balance). It is inherently distinct from siblings like submit_dubbing_job and get_job_status, so an agent can easily tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies the use case: estimating cost and checking balance before submitting a job. While it doesn't explicitly name when not to use it or refer to alternatives, the context (sibling names) makes the intended usage clear. The flat pricing note adds useful whether-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to provide safety or read-only hints, the description carries the full burden of behavioral disclosure. It covers the background execution model, credit charging up front with refund on failure, and the concurrency limit. It does not mention rate limits or idempotency, but it gives a comprehensive picture of the tool's behavior beyond basic input/output. Since the description is very informative despite no annotations, score 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and detailed without being verbose. It front-loads the core purpose in the first sentence, then explains the pipeline, billing, execution model, and parameters in a logical flow. Each sentence adds value, and the Args and Returns sections are clearly segmented brief. No unnecessary repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (background job, pricing, concurrency) and the absence of annotations, the description covers all essential aspects: input requirements, parameter semantics, background execution, billing, concurrency, and how to track the job via siblings. The output schema exists and is referenced ('Returns: JSON with job_id, run_id...'), so return values are adequately conveyed. The tool is three parameters, and the description leaves no critical gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate for the lack of parameter details. It does this thoroughly: it explains video_url (publicly reachable, max 500 MB), target_language (dubbing language with examples), and tier (options and default). This is significantly more than the schema provides, giving clear usage semantics for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: submitting a fully automatic dubbing job with a video URL input and a dubbed video output. It enumerates the processing pipeline (speech recognition, speaker separation, translation, voice cloning/TTS, composition) and distinguishes it from siblings by noting the manual review absence. This is a specific verb-resource pair with comprehensive detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions sibling tools (get_job_status and wait_for_job) and explains when to use each: polling for background job status versus blocking until completion. It also notes the concurrency constraint (one job per account) and the HTTP 409 response for violations, which is critical for the agent to know. It provides clear context for when this tool should be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md: