Skip to main content
Glama

Server Quality Checklist

83%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.5

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: synthesize for TTS, list_voices for voice metadata, list_languages for language metadata, and get_usage for account status. No two tools overlap in function.

    Naming Consistency4/5

    Tool names are lowercase with underscores and mostly follow a verb_noun pattern (list_voices, list_languages, get_usage), but synthesize is a bare verb, which is a minor deviation from the pattern.

    Tool Count5/5

    With four tools, the server is well-scoped: one core operation, two metadata lookups, and one usage check. This is an ideal size for a TTS-focused server.

    Completeness5/5

    The tool surface covers the essential lifecycle for text-to-speech: the synthesis action, necessary resource discovery (voices/languages), and account monitoring. There are no obvious gaps or dead ends.

  • Average 4.2/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
    • 22 commits in the last 12 weeks
    • Last stable release on
    • 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.

  • This repository includes a glama.json configuration file.

  • This server has been verified by its author.

  • 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

  • Behavior3/5

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

    No annotations are provided, so the description bears the full burden of disclosing behavior. It indicates that the tool is a read-only status check (characters used vs quota), but it does not specify details such as whether the data is current, cached, or if any external calls are made. It adds minimal context beyond the obvious.

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

    Conciseness5/5

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

    The description is a single, concise sentence that is front-loaded with the key information ('Characters used vs quota'). It uses no filler words and every word contributes to the meaning.

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

    Completeness4/5

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

    Given that the tool has no parameters and an output schema exists, the description is largely complete. However, it could provide more context about what specific quotas or usage metrics are included (e.g., daily vs total, whether it's the current key), but these details are likely captured in the output schema.

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

    Parameters4/5

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

    The tool has zero parameters, so the description has no need to explain parameter semantics. The baseline for tools with no parameters is 4, and the description does not introduce any param-related confusion.

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

    Purpose5/5

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

    The description clearly states the tool reports 'Characters used vs quota' for the configured API key, which is a specific and distinct purpose compared to sibling tools (synthesize, list_voices, list_languages). It uses a clear verb ('used') and resource ('characters' and 'quota') to convey its function.

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

    Usage Guidelines3/5

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

    The description implies that this tool should be used to check API key usage and quota status, but it does not explicitly state when to use it or contrast it with alternatives. There is no mention of prerequisites or when not to use it, so the guidance is only implied.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It accurately describes a read-only listing operation, but does not go beyond the basic purpose to disclose additional behavioral traits such as output structure or rate limits. Given the tool's simplicity, this is adequate but not enriched.

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

    Conciseness5/5

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

    The description is a single, concise sentence that front-loads the action (List), the resource (language codes), and the context (that synthesize accepts), with no wasted words.

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

    Completeness5/5

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

    For a simple tool with no parameters and an output schema, the description sufficiently explains the tool's purpose and relation to synthesize. There is no missing information needed for an agent to select and invoke it correctly.

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

    Parameters4/5

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

    The tool has zero parameters, so the description does not need to elaborate on parameter semantics. A baseline score of 4 is appropriate given the absence of parameters.

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

    Purpose5/5

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

    The description clearly states the tool lists language codes accepted by synthesize, including their names, which is a specific and distinct function from sibling tools like list_voices or synthesize.

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

    Usage Guidelines3/5

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

    The description implies the tool is for retrieving language codes for use with synthesize, but it does not explicitly state when to use it over alternatives or provide exclusions. The context is clear but not directly framed as guidance.

    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 carries the full burden. It clearly indicates a read-only listing operation and adds the detail that IDs are returned. While it does not explicitly state 'this is safe' or 'no side effects,' the verb 'list' strongly implies a non-mutating operation, and there are no hidden behaviors expected.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that conveys the action, target, and output content without extraneous words. Every word contributes value, making it highly concise and well-structured.

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

    Completeness5/5

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

    For a simple list tool with no parameters and an existing output schema, the description is complete. It tells the agent exactly what the tool does and what data to expect, with no gaps requiring additional explanation.

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

    Parameters4/5

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

    The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the schema coverage is 100% with no undocumented inputs.

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

    Purpose5/5

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

    The description clearly states the action ('List') and the resource ('available Gandr voices'), and specifies that IDs are included. This distinguishes it from sibling tools like 'synthesize' (which generates speech) and 'list_languages' (which lists languages), making the purpose 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/5

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

    The description provides no explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or preconditions. However, the name and context ('list_voices' among siblings) imply it is the tool for retrieving available voices, though this is not explicitly stated.

    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?

    No annotations are provided, so the description carries full burden. It discloses the output format (WAV base64), parameter ranges and meanings (e.g., 'temperature: 0.1-1.2 pitch range', 'cfg_weight: 0.2-1.0 pacing'), and a key capability ('Any voice can speak any of them'). It lacks details on potential errors, text length limits, or rate limits, but for a generation tool this is solid coverage.

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

    Conciseness5/5

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

    The description is front-loaded with the core purpose, then uses a compact line-per-parameter format. Every sentence adds value: output format, parameter ranges, cross-reference, and defaults. It is information-dense without fluff, achieving high conciseness.

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

    Completeness4/5

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

    With output schema present, return value structure is covered by schema, so description does not need to explain it. It covers all six parameters with meanings and ranges, and gives a cross-reference for languages. It could mention text length limits or error behavior, but for a moderately complex TTS tool, it is largely complete.

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

    Parameters5/5

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

    Schema description coverage is 0%, so description must compensate. It does: voice options are enumerated, language is explained with a pointer to list_languages, temperature and cfg_weight get non-obvious meanings (pitch range and pacing), and sample_rate range is given. This adds substantial meaning beyond the schema.

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

    Purpose5/5

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

    The description clearly states the tool's function with a specific verb and resource: 'Render text to speech.' It also specifies the output format ('Returns the WAV audio base64-encoded'), and the sibling tools (list_voices, list_languages, get_usage) are distinct supplementary tools, so there is no ambiguity.

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

    Usage Guidelines4/5

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

    The description implies usage for generating speech and even references a sibling tool: 'call list_languages for the 23 supported,' guiding the user on a related dependency. However, it does not explicitly state when NOT to use this tool, but there are no alternative TTS tools among siblings, and the purpose is clear enough.

    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

gandr-mcp MCP server

Copy to your README.md:

Score Badge

gandr-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Gandr-AI/gandr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server