Poly-Glot AI Workspace
Server Details
15 tools, 38 languages, 8 AIs. Apple-approved 3-day Pro trial; subscription renews, no free Sends.
- Status
- Healthy
- Uptime
- 97.0% over 56 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Server Listing
- polyglot-mcp
TDQS
Scored across 15 tools
Most tools have clearly distinct purposes, but prepare_compare and prepare_custom_compare are close siblings, as are get_template/search_templates and build_prompt versus the prepare_* tools. Descriptions do a good job differentiating them (built-in vs BYOM targets, fill vs prepare), so an agent can disambiguate with careful reading.
All 15 tools use a consistent snake_case verb_noun pattern (get_template, search_templates, build_prompt, prepare_compare, validate_custom_model, etc.). There are no camelCase or mixed-convention outliers, and verb choices (get_/search_/prepare_/run_/validate_) are predictable.
15 tools sit right at the top of the ideal 3-15 range for a multi-feature workspace (templates, translation, localization, transcription, comparison, BYOM, subscription). Each tool maps to a distinct capability and none feel redundant.
The surface covers the core multilingual lifecycle: language discovery/detection, translation, localization, transcription, template search/get/build, provider comparison, custom model validation and execution, and subscription/workspace state. Minor gaps exist (e.g., no direct cleanup/update for stored templates or batch/multi-segment translation), but core workflows have no dead ends.
Available Tools
15 toolsbuild_promptBuild a Poly-Glot promptAInspect
Fill a named Poly-Glot template with field values and requested input/output languages, producing a finished prompt. Use get_template to inspect needed fields first. This is a subscription-gated Send. Eligible users must authorize a three-day Pro introductory trial through Apple's native subscription purchase flow, or have an active verified Pro subscription or an unexpired legacy trial. There is no continuing free-Send allowance. This tool cannot start an Apple subscription or trial and does not directly query external AI providers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Required accessible template name; use search_templates or get_template to find it. | |
| values | No | Map of template placeholder names to strings, numbers or booleans, e.g. {topic: onboarding}. | |
| uiLanguage | No | Interface language name or code, e.g. EN; independent of source and response languages. | EN |
| inputLanguage | No | Language name or code of input text, e.g. es; defaults to EN. | EN |
| outputLanguage | No | Requested output language name or code, e.g. fr; defaults to EN. | EN |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| view | Yes | |
| prompt | No | |
| message | No | |
| template | No | |
| entitlement | Yes | |
| localization | Yes | |
| inputLanguage | No | |
| missingFields | No | |
| outputLanguage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations, which only declare readOnlyHint=false, openWorldHint=false, destructiveHint=false. The description discloses subscription gating, the three-day Pro trial path, absence of a continuing free-Send allowance, the fact it cannot start a subscription, and that it does not query external AI providers — all material to whether the call can succeed.
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?
Front-loads what the tool does, then the prerequisite, then the gating rules — a sensible order with no filler sentences. The subscription paragraph is dense and longer than typical, though each clause carries actionable constraint 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, return values need not be explained, and the description covers the remaining burdens: prerequisites, eligibility, and explicit non-capabilities. An agent has what it needs to decide whether to call this or a sibling.
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 every parameter (including the values map and the three language fields) is already documented in the schema. The description only gestures at "field values and requested input/output languages" without adding format or edge-case meaning, 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: fill a named Poly-Glot template with field values and language settings to produce a finished prompt. It also implicitly separates itself from get_template/search_templates by framing those as inspection tools used beforehand.
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 concrete prerequisite ("Use get_template to inspect needed fields first") and detailed eligibility conditions for use. It stops short of naming alternative tools for cases where the agent is not eligible or doesn't want a template-based prompt, so it is clear context rather than full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_languageDetect languageAInspect
Identify the primary language of a nonempty text snippet and map it to one of Poly-Glot's 38 supported language codes. Use when the source language is unknown before choosing an interface, output language, or translation workflow. Provide natural-language text in the text parameter (for example, '¿Dónde está la estación?'). Returns JSON with language, provider, and model. Does not translate or alter the input text. Requires an active 3-day trial or Pro subscription; very short, mixed-language, or ambiguous snippets may be misclassified.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Nonempty sample of text whose predominant language should be detected. Prefer a phrase or sentence, e.g. 'Bonjour, comment allez-vous ?'; this is source content, not an instruction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does it well: it discloses the exact return payload (language, provider, model), an access prerequisite (active 3-day trial or Pro subscription), non-mutation of input, and known failure modes ('very short, mixed-language, or ambiguous snippets may be misclassified'). That is unusually complete for a tool with zero annotation coverage.
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?
Front-loaded with purpose, then usage, then return shape, then caveats – a sensible priority order. Minor redundancy: 'nonempty' and the illustrative example are repeated from the schema, costing a little density but not obscuring anything.
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?
No output schema and no annotations exist, so the description must supply return shape, auth requirements, and limitations – and it does all three. An agent has everything needed to decide when to call it, how to call it, and how to interpret failures.
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 'text' parameter is already fully documented, including the 'source content, not an instruction' clarification and an example. The description's mention of the text parameter and its example largely restate the schema, 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 ('Identify the primary language of a nonempty text snippet') and bounds the output to 'one of Poly-Glot's 38 supported language codes'. The stated bound plus 'Does not translate or alter the input text' cleanly separates it from translate_text and localize_text without needing to open 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?
Gives a clear triggering condition ('Use when the source language is unknown before choosing an interface, output language, or translation workflow') and an implicit exclusion ('Does not translate or alter the input text'). It never names the sibling an agent should reach for instead (e.g., translate_text), so routing is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_custom_model_capabilitiesGet custom model capabilitiesARead-onlyInspect
Explain the supported Bring Your Own Model (BYOM) adapters, credential handling, HTTPS and SSRF restrictions, and inability of a public remote MCP server to connect directly to localhost. Use before configuring a custom model. Returns capability metadata without contacting a model, starting a trial, or consuming a send.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, openWorld=false, destructive=false. The description adds valuable context beyond that: it explains it 'Returns capability metadata without contacting a model, starting a trial, or consuming a send,' which tells the agent there's no side effect or cost. The credential/HTTPS/SSRF content is informational scope rather than behavior, but the no-contact/no-cost guarantee is a genuine addition.
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, front-loaded with the purpose and followed by usage guidance and behavior. The enumeration of restrictions is slightly dense but each item is relevant.
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 zero-parameter read-only tool with annotations covering safety, the description does enough: it explains what it returns (capability metadata), when to use it, and that there's no side effect. No output schema, but the description notes it returns metadata, which is sufficient.
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?
Zero parameters, so baseline is 4. The description correctly implies this is a no-argument informational tool; nothing to document.
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 (explain) and resource (BYOM adapter capabilities, restrictions), and enumerates what it covers: adapters, credential handling, HTTPS/SSRF, localhost limitation. Clearly distinguishable from run_custom_model and validate_custom_model 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?
Explicitly says 'Use before configuring a custom model,' giving a clear when-to-use cue. Doesn't name exclusions or alternative tools like validate_custom_model, but the pre-configuration context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_language_optionsGet Poly-Glot language optionsARead-onlyInspect
List Poly-Glot's 38 supported UI, input, and AI output languages. Use to verify language availability before multilingual work. Optionally select uiLanguage to localize labels. Returns language records and localization metadata. Read-only, with no send or trial activation.
| Name | Required | Description | Default |
|---|---|---|---|
| uiLanguage | No | UI language code or name such as EN, es or Arabic; defaults to EN. | EN |
Output Schema
| Name | Required | Description |
|---|---|---|
| view | Yes | |
| languages | Yes | |
| localization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint=false, and destructiveHint=false, so the safety bar is low. The description adds specific behavioral context beyond that: "no send or trial activation," which tells the agent this call has no downstream side effects. It also notes localization metadata is returned, though the output schema covers that.
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 core purpose front-loaded; nothing is buried or padded. The closing "Read-only" clause partially restates the annotations, which is mild redundancy but is paired with the non-duplicative "no send or trial activation" detail.
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-optional-parameter, read-only lookup with an output schema present, the description covers purpose, timing, parameter effect, and side-effect profile. Return values need not be explained given the output schema, so nothing essential 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 coverage is 100%, so the baseline is 3. The description goes further by stating the parameter is optional and explaining its effect — selecting uiLanguage localizes the returned labels — which clarifies intent beyond the schema's format-only description.
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 — listing Poly-Glot's supported languages — with the additional scope detail of UI, input, and AI output categories and the count (38). This clearly separates it from siblings like localize_text, translate_text, and detect_language, which perform work in a language rather than enumerating available languages.
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 to verify language availability before multilingual work" gives a clear context for invoking the tool. It does not name a specific alternative to use instead, nor state any exclusions, so it falls short of a full when/when-not/alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_statusGet Poly-Glot subscription statusARead-onlyInspect
Read the current account's access state, trial timing, subscription entitlement locks and subscription pricing. Use before gated tools or when asked about remaining access. This read-only operation never starts a trial or a charge. Eligible introductory trials begin only after an Apple subscription is explicitly authorized in the native app.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| view | Yes | |
| entitlement | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real value beyond that: it states the call never starts a trial or charge, and that trials only begin after explicit Apple authorization in the native app. That guards against an agent assuming a side effect.
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, each front-loaded and serving a purpose: capability, usage trigger, safety clarification. The final Apple sentence is slightly tangential but justified because it explains trial semantics an agent might otherwise misinterpret.
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?
A read-only, zero-parameter tool with an output schema, so return values need not be explained. Usage, safety, and capability are all covered, leaving nothing an agent needs to invoke 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?
Zero parameters, so the baseline is 4. The description correctly does not pad with parameter detail, and the schema is empty by design.
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 ('Read') and resource ('current account's access state'), then enumerates what is returned: trial timing, entitlement locks, and pricing. Although siblings are unrelated language tools, the definition leaves no ambiguity about what this call yields.
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?
Explicitly says when to use it: 'before gated tools or when asked about remaining access.' That is a concrete trigger condition. It does not name alternatives or exclusions, which is acceptable here since no sibling overlaps in purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateOpen a Poly-Glot templateARead-onlyInspect
Retrieve a named template's fields and entitled prompt body. Use search_templates first to find the exact name; inaccessible templates return a paywall view without Pro fields or prompt content after the trial. Returns template, entitlement and localization data. Reading a template alone neither starts the trial nor consumes a send.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Required template name returned by search_templates. | |
| uiLanguage | No | Language code for localized template fields; defaults to EN. | EN |
Output Schema
| Name | Required | Description |
|---|---|---|
| view | Yes | |
| message | No | |
| template | Yes | |
| entitlement | Yes | |
| localization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the readOnly/destructive annotations by disclosing what an inaccessible template actually returns (paywall view without Pro fields or prompt content after trial) and that reading does not start the trial or consume a send. This is meaningful side-effect and failure-mode context, though it does not cover rate limits or pagination.
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 short sentences, front-loaded with the core action, then routing, then failure semantics, then the caveat about trial/send consumption. Every sentence carries distinct information 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?
With an output schema present, the description needn't enumerate return values, yet it still summarizes them (template, entitlement, localization) and covers the critical entitlement/paywall edge case. Nothing needed 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?
Schema coverage is 100%, so the baseline is 3, but the description meaningfully constrains the 'name' parameter by stating it must be the exact name returned by search_templates, and it hints that localization affects returned fields ('localization data'), which ties the uiLanguage parameter to its effect.
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 ('Retrieve a named template's fields and entitled prompt body') and immediately distinguishes itself from search_templates, which only locates names. An agent can tell this is the fetch-by-name counterpart to search.
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?
Explicitly routes the agent: 'Use search_templates first to find the exact name.' It also names the failure condition (inaccessible templates return a paywall view) and clarifies the non-side-effect nature of calling it, so the agent knows when this is safe and when it will get degraded results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localize_textLocalize textAInspect
Adapt supplied text for a target language and audience, including culturally appropriate phrasing, tone, and regional conventions rather than literal translation. Use for localized product UI, marketing copy, documentation, or customer communications; use translate_text for a closer translation. Set required targetLanguage and optionally locale (e.g. 'es-MX'), audience, and tone. Returns JSON containing localized text, targetLanguage, locale, provider, and model. Requires an active trial or Pro. Review sensitive, legal, and technical output with a qualified local reviewer.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Original nonempty copy to adapt for the target culture, region, and audience. | |
| tone | No | Desired writing style, such as 'friendly', 'formal', or 'concise'. | |
| locale | No | Optional regional locale, such as 'es-MX', 'fr-CA', or 'en-GB'; affects regional spelling and conventions. | |
| audience | No | Intended readers or customers, e.g. 'first-time mobile app users' or 'enterprise developers'. | |
| targetLanguage | Yes | Required output language name or code, e.g. 'Arabic' or 'ar'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the plan prerequisite ('Requires an active trial or Pro'), the return shape, and a review caveat for sensitive/legal/technical output. It omits rate limits and reversibility, but for a non-destructive text adaptation tool those gaps are minor.
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?
Front-loads the differentiating purpose in the first sentence, then usage, params, return, and prerequisites in sequence. Dense but each sentence earns its place; slightly long with the trailing reviewer caveat, though that adds real value.
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?
No output schema exists, and the description compensates by enumerating the returned JSON fields (localized text, targetLanguage, locale, provider, model). Combined with the plan requirement and review caveat, an agent has everything needed to call and interpret this 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 description coverage is 100%, so the schema already documents all five parameters with examples. The description reinforces required vs optional (targetLanguage required; locale, audience, tone optional) 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+resource (adapt text for localization) and immediately distinguishes itself from literal translation, naming the sibling translate_text as the alternative. An agent can route between localize_text and translate_text 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?
Explicit when-to-use list (localized product UI, marketing copy, documentation, customer communications) and an explicit when-not with the named alternative ('use translate_text for a closer translation'). 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.
open_workspaceOpen Poly-Glot AI WorkspaceARead-onlyInspect
Open the embedded Poly-Glot prompt workspace and template browser, optionally prefiltered by a query and translated via uiLanguage. Returns the unlocked template catalog only for verified subscribers or valid legacy trials, plus entitlement and localization. An unsubscribed account receives no catalog results. Browsing is read-only and cannot start an Apple subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional keyword or goal for template search, e.g. resume. Maximum 200 characters. | |
| uiLanguage | No | UI language name or code for template labels; defaults to EN. | EN |
Output Schema
| Name | Required | Description |
|---|---|---|
| view | Yes | |
| query | Yes | |
| results | Yes | |
| entitlement | Yes | |
| localization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/destructiveHint/openWorldHint, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond them: entitlement-gated catalog results, silent empty results for unsubscribed accounts, and that browsing cannot initiate an Apple subscription.
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 short sentences, front-loaded with the action and followed by the entitlement rule and read-only caveat; nothing is wasted, though the mention of returned 'entitlement and localization' data is redundant given the output schema.
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 annotations and an output schema present, the description only needs to cover access rules and intent, and it does so: entitlement gating, empty results for unsubscribed users, and read-only scope. Nothing critical to a correct call 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 query and uiLanguage are already documented with defaults and max lengths. The description only restates their roles (prefilter by query, translate via uiLanguage) without adding format or interaction semantics, 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?
The description names a specific verb (Open) and resource (Poly-Glot prompt workspace and template browser), with the optional prefilter/translation behavior spelled out. It is clearly distinct from lookup siblings like get_template or search_templates, though it never names an alternative explicitly.
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 clear when/when-not context: the workspace yields the unlocked catalog only for verified subscribers or valid legacy trials, and an unsubscribed account receives no results. That is strong gating guidance, but it does not point to alternative tools (e.g., search_templates) for users who want catalog data another way.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_comparePrepare Poly-Glot Compare ModeAInspect
Prepare the same canonical prompt for two to eight selected AI providers using a raw prompt or accessible template. Returns provider destinations, prompt and usage instructions without calling third-party models. This is a subscription-gated Send; Compare Mode requires a verified Apple subscription or an unexpired legacy trial. MCP cannot start an introductory offer. Use when a user explicitly wants side-by-side answers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional accessible template name; supply this or a raw prompt. | |
| prompt | No | Optional original prompt for each provider, maximum 30,000 characters; provide this or name. | |
| values | No | Placeholder values used when preparing a named template. | |
| providers | No | Two to eight provider IDs; defaults to ChatGPT and Claude and duplicates are removed. | |
| uiLanguage | No | Interface language name or code, e.g. EN; independent of source and response languages. | EN |
| inputLanguage | No | Language name or code of input text, e.g. es; defaults to EN. | EN |
| outputLanguage | No | Requested output language name or code, e.g. fr; defaults to EN. | EN |
Output Schema
| Name | Required | Description |
|---|---|---|
| view | Yes | |
| prompt | No | |
| message | No | |
| template | No | |
| providers | No | |
| entitlement | Yes | |
| instructions | No | |
| localization | Yes | |
| sourceTemplate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, so the description's clarification that this only prepares and returns destinations/instructions without invoking third-party models is genuinely valuable. It also discloses the auth requirement (verified Apple subscription or unexpired legacy trial) and the limitation that MCP cannot start an introductory offer — real context beyond structured fields.
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?
Front-loaded with the core action and return shape before moving to gating and usage. Slightly redundant: 'This is a subscription-gated Send' and 'Compare Mode requires a verified Apple subscription or an unexpired legacy trial' restate the same constraint in adjacent sentences.
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 explained, and the description covers behavior, gating, and a usage trigger for a zero-required-parameter tool with nested objects. Only the sibling alternative (prepare_custom_compare) is unaddressed, which is a modest gap.
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 all seven parameters (including the prompt/template either-or and the 2-8 provider bound) are already documented in the schema. The description reinforces the either-or input choice and the provider count but adds no syntax or format detail beyond the schema, 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 (prepare), resource (canonical prompt for 2-8 providers), and inputs accepted (raw prompt or accessible template). It also draws a clear boundary by declaring it returns destinations/instructions 'without calling third-party models,' which separates it from run_custom_model-style 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?
'Use when a user explicitly wants side-by-side answers' gives a clear triggering condition, and the subscription gating spells out a prerequisite the agent must check beforehand. It does not name the nearest alternative (prepare_custom_compare) for when the user wants a custom rather than a canonical prompt, so routing is left partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_custom_comparePrepare custom Compare ModeAInspect
Prepare a canonical prompt and instructions for comparing at least two targets, including one to five custom BYOM models and optional supported built-in AI providers. API keys must not appear in the comparison plan; use run_custom_model to execute custom targets separately. Returns comparison targets and prompt without invoking any models. This is a Send action requiring an active Apple-authorized introductory trial, active Pro subscription, or existing unexpired legacy app-managed trial. MCP cannot start an Apple subscription or paid trial.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Required canonical prompt shared among all selected models, up to 30,000 characters. | |
| uiLanguage | No | Interface language name or code, e.g. EN; independent of source and response languages. | EN |
| customModels | Yes | Required array of 1 to 5 custom model connection descriptors; excludes authentication credentials. | |
| inputLanguage | No | Language name or code of input text, e.g. es; defaults to EN. | EN |
| outputLanguage | No | Requested output language name or code, e.g. fr; defaults to EN. | EN |
| builtinProviders | No | Optional built-in provider IDs to include alongside custom targets. This preparation tool does not call providers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=false. The description adds substantial context beyond that: it is a 'Send action,' it returns targets and prompt without model invocation, API keys must not appear in the plan, and it carries gating prerequisites. This is the kind of behavioral disclosure a mutation-flagged tool needs.
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?
Front-loads what the tool produces, then the alternative, then constraints and auth prerequisites. Dense and mostly waste-free, though the subscription/entitlement sentence is long and could be trimmed slightly without losing meaning.
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 no output schema, the description still tells the agent what comes back ('returns comparison targets and prompt'), what does not happen (no model invocation), what is required to call it (entitlement), and where execution goes next. Nothing material for correct invocation 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 coverage is 100%, so the baseline is 3, but the description adds two constraints not obvious from the schema: the 'at least two targets' requirement and the prohibition on API keys appearing in the comparison plan, plus the notion that the prompt is shared canonically across all selected models.
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 (prepare a canonical prompt + comparison targets) and bounds the scope precisely: 1–5 custom BYOM models plus optional built-in providers. It is immediately distinguishable from the sibling prepare_compare (built-in only) and from run_custom_model (which actually executes).
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?
The description explicitly routes the agent: 'use run_custom_model to execute custom targets separately,' and clarifies this tool does not invoke any models. It also states the exact conditions under which the tool is available (active trial, Pro subscription, unexpired legacy trial) and the limitation that MCP cannot start a subscription or paid trial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_custom_modelRun a custom modelAInspect
Run a user-supplied prompt against a developer-provided OpenAI-compatible or custom REST HTTPS model endpoint. Use validate_custom_model to test URL and adapter settings before sending. Returns model-generated text, model name, optional usage, and account state. Requires active trial or Pro and transmits prompt content to the selected provider. Credentials are transient, not persisted; localhost/private networks are not supported.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model identifier at the custom provider, when needed. | |
| apiKey | No | Transient authentication key sent to the chosen provider; never log or embed in prompts. | |
| prompt | Yes | Required nonempty prompt to send externally, maximum 30,000 characters. | |
| system | No | Optional system instructions supported by the endpoint. | |
| baseUrl | No | Required public HTTPS base URL for openai-compatible mode. | |
| authMode | No | Custom REST authentication mode, default bearer. | bearer |
| endpoint | No | Required public HTTPS inference URL for custom-rest mode. | |
| maxTokens | No | Optional maximum output token count, subject to model limits. | |
| uiLanguage | No | Interface language name or code, e.g. EN; independent of source and response languages. | EN |
| adapterMode | Yes | Adapter for the target endpoint: openai-compatible or custom-rest. | |
| promptField | No | Custom REST request JSON key for prompt content. | prompt |
| systemField | No | Custom REST request JSON key for system instructions. | system |
| temperature | No | Optional response sampling randomness between 0 and 2. | |
| apiKeyHeader | No | Custom REST API-key authentication header name. | x-api-key |
| extraHeaders | No | Extra HTTP headers required by the provider, if any. | |
| inputLanguage | No | Language name or code of input text, e.g. es; defaults to EN. | EN |
| outputLanguage | No | Requested output language name or code, e.g. fr; defaults to EN. | EN |
| responseTextPath | No | Optional JSON response field/path containing generated text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations present, adds strong context: transmits prompt content externally, credentials transient/not persisted, no localhost/private networks, returns model text/name/usage/account state. Missing detail on failure modes or timeout behavior, but rich beyond 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?
Dense but front-loaded: purpose first, then validate sibling, then returns, then constraints. Every sentence earns its place though it is somewhat packed.
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 an 18-param outbound-call tool with no output schema, the description covers what it returns, the account gate, data transmission, credential handling, and network restrictions. 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 coverage is 100%, so the schema already documents all 18 params thoroughly. The description adds the localhost/private-network constraint and auth-mode context but no additional per-parameter meaning beyond schema.
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 (run a prompt against a model endpoint) and resource (OpenAI-compatible or custom REST endpoint). Clearly distinguishes from validate_custom_model (testing) and prepare_custom_compare.
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?
Explicitly names validate_custom_model as the prerequisite test step and states the account requirement (active trial or Pro). Tells the agent when to use this versus its validation sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_templatesSearch Poly-Glot templatesARead-onlyInspect
Search Poly-Glot's template catalog by keywords and goal, optionally filtered to free or Pro results. Use before get_template or build_prompt when the exact name is unknown. Expired accounts see locked Pro template cards. Selecting one returns a paywall, not Pro fields or prompt text. Searching is read-only and does not trigger a send or trial.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Optional intended outcome, e.g. write a help article. | |
| plan | No | Filter catalog by free or Pro tier; filtering does not grant access. | |
| limit | No | Maximum matches to return (1 to 24), default 12. | |
| query | No | Search phrase or topic; blank lists available templates. | |
| uiLanguage | No | Language code for localized template labels; defaults to EN. | EN |
Output Schema
| Name | Required | Description |
|---|---|---|
| view | Yes | |
| query | Yes | |
| results | Yes | |
| entitlement | Yes | |
| localization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint/destructiveHint annotations by disclosing account-tier behavior: expired accounts see locked Pro cards, and selecting one yields a paywall rather than Pro fields or prompt text. It also confirms searching triggers no send or trial, which is real behavioral context an agent needs to interpret results.
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 operation and its scope, then routing guidance, then the paywall edge case, then the side-effect reassurance. Each sentence contributes distinct information and there is 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?
An output schema exists, so return structure need not be restated; the description instead covers the two things that would otherwise be missing — when to reach for it versus get_template/build_prompt, and how tier-locked results behave. Nothing needed to call it correctly is absent.
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 query, goal, plan, limit and uiLanguage are already fully documented, and the description adds no syntax or format detail beyond echoing keywords/goal/free-Pro. Baseline 3 is appropriate when 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 (Search) and resource (Poly-Glot's template catalog) plus the axis of search (keywords and goal) and an optional filter (free/Pro). It is immediately distinguishable from siblings like get_template and build_prompt, which the description explicitly positions itself before.
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 precondition — 'Use before get_template or build_prompt when the exact name is unknown' — naming both alternatives and the condition that selects this tool over them. Nothing about routing 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.
transcribe_audioTranscribe audioAInspect
Convert audio to transcript text for Poly-Glot workflows. Use for supplied speech recordings, not for translating text. Provide exactly one source: a publicly reachable HTTPS audioUrl or base64-encoded audioBase64 (without a data-URL prefix). For base64 audio, supply mimeType and filename when known; languageHint can improve recognition. Set detectLanguage=true to identify the resulting text's language. Requires an active trial or Pro. Returns JSON containing transcript text, optional detectedLanguage, provider, and model. Audio is submitted to a transcription provider; do not send material without permission.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | Optional recognition context, such as expected names or specialist vocabulary; not the text to transcribe. | |
| audioUrl | No | Public HTTPS URL of an audio recording to transcribe. Use this OR audioBase64, never both; private or local URLs are not supported. | |
| filename | No | Original audio filename with extension, such as meeting.m4a, to help determine the format. | |
| mimeType | No | Audio MIME type, such as audio/mpeg, audio/mp4, or audio/wav. Recommended for base64 input. | |
| audioBase64 | No | Base64-encoded audio bytes, without a data: prefix. Alternative to audioUrl; provide exactly one audio source. | |
| languageHint | No | Optional language hint for speech recognition, such as en, es, or fr. Leave blank if unknown. | |
| detectLanguage | No | When true, also infer a supported Poly-Glot language from the resulting transcript; defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the entitlement requirement ("Requires an active trial or Pro"), names the return payload fields, and warns that audio is submitted to a third-party provider. It omits size limits, failure modes, and latency/rate behavior, 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?
The source constraint and the primary tool purpose are front-loaded, and each subsequent sentence carries distinct, actionable information (entitlement, inputs, return shape, privacy warning) without 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?
For a 7-parameter tool with no output schema and no annotations, the description covers purpose, routing, input rules, entitlement, return contents, and a data-handling caveat. Nothing an agent needs 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 parameters are already documented and the baseline is 3. The description reinforces the exactly-one-source constraint and the mimeType/filename conditional, but adds little syntax or format detail beyond what the schema states.
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 ("Convert audio to transcript text") and immediately scopes it against the sibling space with "Use for supplied speech recordings, not for translating text." An agent can distinguish this from translate_text/localize_text 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?
Explicit when-to-use (supplied speech recordings), when-not (translating text), and the selection rule for inputs ("Provide exactly one source"). It also names the alternative forms of input and their conditions, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
translate_textTranslate textAInspect
Translate supplied text into one of Poly-Glot's 38 supported languages while aiming to preserve meaning, names, formatting, code, and URLs. Use for translation rather than cultural adaptation; use localize_text when audience, tone, or regional conventions must change. Specify required targetLanguage (language name or code, e.g. 'es'); set sourceLanguage to 'auto' to detect the source automatically. Returns JSON containing translated text, targetLanguage, provider, and model; quality can vary with idiom and context. Requires an active trial or Pro; text is processed by the configured translation provider.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Nonempty original text to translate, including any formatting to preserve. | |
| sourceLanguage | No | Original language name or code, such as 'en' or 'English'; 'auto' (default) asks the provider to detect it. | auto |
| targetLanguage | Yes | Required desired output language name or code among the 38 supported, e.g. 'Spanish' or 'es'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the subscription requirement (active trial or Pro), that text is sent to an external provider, the return payload shape, and that quality varies with idiom and context. It does not cover rate limits or error/failure behavior, so it falls 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?
Front-loaded with the core verb and resource, and each sentence adds distinct value (routing, params, return, constraints). The final sentence bundling return shape, quality caveat, and auth requirements is slightly dense but still efficient.
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?
There is no output schema, and the description compensates by naming the returned fields (translated text, targetLanguage, provider, model). Combined with the auth and privacy notes and the routing to localize_text, an agent has everything needed 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema, establishing a baseline of 3. The description restates targetLanguage and sourceLanguage semantics ('es', 'auto') without adding format or constraint detail beyond the schema, so it does not exceed 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 and resource ('Translate supplied text') with explicit scope (38 supported languages) and names the sibling it is not, localize_text. An agent can distinguish this from localize_text 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 routing rule: use for translation rather than cultural adaptation, and use localize_text when audience, tone, or regional conventions must change. It also clarifies the sourceLanguage='auto' detection path, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_custom_modelValidate a custom model endpointARead-onlyInspect
Validate the HTTPS URL and adapter configuration for an external custom model. For OpenAI-compatible mode provide baseUrl; for custom REST use endpoint. Set probe=true only when an actual minimal request to the external provider is intended. Returns validation or probe status; credentials are transient and never stored or echoed. Requires active trial or Pro; does not perform a user prompt Send.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Optional external model identifier for a test probe. | |
| probe | No | True sends a minimal external request to test the model; false only checks URL safety. | |
| apiKey | No | Optional transient API credential, never stored or echoed. | |
| baseUrl | No | Public HTTPS base URL for openai-compatible mode. | |
| authMode | No | Custom REST authentication method: bearer, API-key header, or none. | bearer |
| endpoint | No | Full public HTTPS URL for custom-rest mode. | |
| adapterMode | Yes | Adapter: openai-compatible or custom-rest. | |
| promptField | No | JSON request field for test prompt content on custom REST endpoints. | prompt |
| systemField | No | JSON request field for system instructions on custom REST endpoints. | system |
| apiKeyHeader | No | Header name when using api-key-header authentication. | x-api-key |
| responseTextPath | No | JSON response field or path holding the generated text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true, destructiveHint=false), but the description adds real value beyond them: the probe flag triggers an actual outbound request to a third-party provider, credentials are transient and never stored or echoed, and the tool is gated behind trial/Pro. No contradiction with openWorldHint.
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 dense, front-loaded sentences with no filler; the core action and mode-conditional parameters come first, followed by probe semantics, return/credential notes, and the entitlement constraint. Slightly compressed but every sentence 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?
With 11 parameters and no output schema, the description compensates by naming the return ('validation or probe status'), the credential lifecycle, and the tier requirement, while the schema covers per-field detail. It omits behavior for the custom-REST field-mapping params (promptField, systemField, responseTextPath), but those are adequately documented in the schema.
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 11 parameters are already documented. The description reiterates the baseUrl-vs-endpoint split by adapterMode and the probe semantics, which the schema itself states, and adds little syntax or format detail beyond that. Baseline 3 is appropriate when the schema carries the load.
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: 'Validate the HTTPS URL and adapter configuration for an external custom model.' It also delimits scope against the sibling run_custom_model by declaring 'does not perform a user prompt Send,' so an agent can separate validation from execution 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 explicit conditional guidance: use baseUrl for OpenAI-compatible mode and endpoint for custom REST, and set probe=true only when an actual external request is intended. It also states the trial/Pro prerequisite. It stops short of naming the alternative tool (run_custom_model) or stating when NOT to validate, which keeps it below a 5.
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.
2 tool updates
- Changed
prepare_compare3 fields changed- changed
Input schema / properties / providers / descriptionPrevious value: -"Two to nine provider IDs; defaults to ChatGPT and Claude and duplicates are removed."New value: +"Two to eight provider IDs; defaults to ChatGPT and Claude and duplicates are removed." - changed
Input schema / properties / providers / items / enumPrevious value: -[ - "chatgpt", - "claude", - "gemini", - "perplexity", - "grok", - "copilot", - "mistral", - "huggingchat", - "duckduckgo" -]New value: +[ + "chatgpt", + "claude", + "gemini", + "perplexity", + "grok", + "mistral", + "huggingchat", + "duckduckgo" +] - changed
Input schema / properties / providers / maxItemsPrevious value: -9New value: +8
- Changed
prepare_custom_compare1 field changed- changed
Input schema / properties / builtinProviders / items / enumPrevious value: -[ - "chatgpt", - "claude", - "gemini", - "perplexity", - "grok", - "copilot", - "mistral", - "huggingchat", - "duckduckgo" -]New value: +[ + "chatgpt", + "claude", + "gemini", + "perplexity", + "grok", + "mistral", + "huggingchat", + "duckduckgo" +]
14 tool updates
- Changed
build_prompt7 fields changed- added
Input schema / properties / inputLanguage / descriptionAdded value: +"Language name or code of input text, e.g. es; defaults to EN." - added
Input schema / properties / name / descriptionAdded value: +"Required accessible template name; use search_templates or get_template to find it." - added
Input schema / properties / outputLanguage / descriptionAdded value: +"Requested output language name or code, e.g. fr; defaults to EN." - added
Input schema / properties / uiLanguage / descriptionAdded value: +"Interface language name or code, e.g. EN; independent of source and response languages." - added
Input schema / properties / values / descriptionAdded value: +"Map of template placeholder names to strings, numbers or booleans, e.g. {topic: onboarding}." - added
Output schema / properties / entitlement / properties / dailyFreeRemainingAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / lastFreeSendAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
detect_language1 field changed- added
Input schema / properties / text / descriptionAdded value: +"Nonempty sample of text whose predominant language should be detected. Prefer a phrase or sentence, e.g. 'Bonjour, comment allez-vous ?'; this is source content, not an instruction."
- Changed
get_language_options1 field changed- added
Input schema / properties / uiLanguage / descriptionAdded value: +"UI language code or name such as EN, es or Arabic; defaults to EN."
- Changed
get_subscription_status2 fields changed- added
Output schema / properties / entitlement / properties / dailyFreeRemainingAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / lastFreeSendAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
get_template4 fields changed- added
Input schema / properties / name / descriptionAdded value: +"Required template name returned by search_templates." - added
Input schema / properties / uiLanguage / descriptionAdded value: +"Language code for localized template fields; defaults to EN." - added
Output schema / properties / entitlement / properties / dailyFreeRemainingAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / lastFreeSendAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
localize_text5 fields changed- added
Input schema / properties / audience / descriptionAdded value: +"Intended readers or customers, e.g. 'first-time mobile app users' or 'enterprise developers'." - added
Input schema / properties / locale / descriptionAdded value: +"Optional regional locale, such as 'es-MX', 'fr-CA', or 'en-GB'; affects regional spelling and conventions." - added
Input schema / properties / targetLanguage / descriptionAdded value: +"Required output language name or code, e.g. 'Arabic' or 'ar'." - added
Input schema / properties / text / descriptionAdded value: +"Original nonempty copy to adapt for the target culture, region, and audience." - added
Input schema / properties / tone / descriptionAdded value: +"Desired writing style, such as 'friendly', 'formal', or 'concise'."
- Changed
open_workspace4 fields changed- added
Input schema / properties / query / descriptionAdded value: +"Optional keyword or goal for template search, e.g. resume. Maximum 200 characters." - added
Input schema / properties / uiLanguage / descriptionAdded value: +"UI language name or code for template labels; defaults to EN." - added
Output schema / properties / entitlement / properties / dailyFreeRemainingAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / lastFreeSendAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
prepare_compare11 fields changed- added
Input schema / properties / inputLanguage / descriptionAdded value: +"Language name or code of input text, e.g. es; defaults to EN." - added
Input schema / properties / name / descriptionAdded value: +"Optional accessible template name; supply this or a raw prompt." - added
Input schema / properties / outputLanguage / descriptionAdded value: +"Requested output language name or code, e.g. fr; defaults to EN." - added
Input schema / properties / prompt / descriptionAdded value: +"Optional original prompt for each provider, maximum 30,000 characters; provide this or name." - added
Input schema / properties / providers / descriptionAdded value: +"Two to nine provider IDs; defaults to ChatGPT and Claude and duplicates are removed." - changed
Input schema / properties / providers / items / enumPrevious value: -[ - "chatgpt", - "claude", - "gemini", - "perplexity", - "grok", - "copilot", - "mistral" -]New value: +[ + "chatgpt", + "claude", + "gemini", + "perplexity", + "grok", + "copilot", + "mistral", + "huggingchat", + "duckduckgo" +] - changed
Input schema / properties / providers / maxItemsPrevious value: -7New value: +9 - added
Input schema / properties / uiLanguage / descriptionAdded value: +"Interface language name or code, e.g. EN; independent of source and response languages." - added
Input schema / properties / values / descriptionAdded value: +"Placeholder values used when preparing a named template." - added
Output schema / properties / entitlement / properties / dailyFreeRemainingAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / lastFreeSendAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
prepare_custom_compare12 fields changed- added
Input schema / properties / builtinProviders / descriptionAdded value: +"Optional built-in provider IDs to include alongside custom targets. This preparation tool does not call providers." - changed
Input schema / properties / builtinProviders / items / enumPrevious value: -[ - "chatgpt", - "claude", - "gemini", - "perplexity", - "grok", - "copilot", - "mistral" -]New value: +[ + "chatgpt", + "claude", + "gemini", + "perplexity", + "grok", + "copilot", + "mistral", + "huggingchat", + "duckduckgo" +] - added
Input schema / properties / customModels / descriptionAdded value: +"Required array of 1 to 5 custom model connection descriptors; excludes authentication credentials." - added
Input schema / properties / customModels / items / properties / adapterMode / descriptionAdded value: +"Adapter type for this model's API." - added
Input schema / properties / customModels / items / properties / baseUrl / descriptionAdded value: +"Public HTTPS base URL for an OpenAI-compatible model." - added
Input schema / properties / customModels / items / properties / endpoint / descriptionAdded value: +"Public HTTPS inference URL for a custom REST model." - added
Input schema / properties / customModels / items / properties / label / descriptionAdded value: +"Human-readable name of the custom model in the comparison results." - added
Input schema / properties / customModels / items / properties / model / descriptionAdded value: +"Optional external model identifier." - added
Input schema / properties / inputLanguage / descriptionAdded value: +"Language name or code of input text, e.g. es; defaults to EN." - added
Input schema / properties / outputLanguage / descriptionAdded value: +"Requested output language name or code, e.g. fr; defaults to EN." - added
Input schema / properties / prompt / descriptionAdded value: +"Required canonical prompt shared among all selected models, up to 30,000 characters." - added
Input schema / properties / uiLanguage / descriptionAdded value: +"Interface language name or code, e.g. EN; independent of source and response languages."
- Changed
run_custom_model18 fields changed- added
Input schema / properties / adapterMode / descriptionAdded value: +"Adapter for the target endpoint: openai-compatible or custom-rest." - added
Input schema / properties / apiKey / descriptionAdded value: +"Transient authentication key sent to the chosen provider; never log or embed in prompts." - added
Input schema / properties / apiKeyHeader / descriptionAdded value: +"Custom REST API-key authentication header name." - added
Input schema / properties / authMode / descriptionAdded value: +"Custom REST authentication mode, default bearer." - added
Input schema / properties / baseUrl / descriptionAdded value: +"Required public HTTPS base URL for openai-compatible mode." - added
Input schema / properties / endpoint / descriptionAdded value: +"Required public HTTPS inference URL for custom-rest mode." - added
Input schema / properties / extraHeaders / descriptionAdded value: +"Extra HTTP headers required by the provider, if any." - added
Input schema / properties / inputLanguage / descriptionAdded value: +"Language name or code of input text, e.g. es; defaults to EN." - added
Input schema / properties / maxTokens / descriptionAdded value: +"Optional maximum output token count, subject to model limits." - added
Input schema / properties / model / descriptionAdded value: +"Model identifier at the custom provider, when needed." - added
Input schema / properties / outputLanguage / descriptionAdded value: +"Requested output language name or code, e.g. fr; defaults to EN." - added
Input schema / properties / prompt / descriptionAdded value: +"Required nonempty prompt to send externally, maximum 30,000 characters." - added
Input schema / properties / promptField / descriptionAdded value: +"Custom REST request JSON key for prompt content." - added
Input schema / properties / responseTextPath / descriptionAdded value: +"Optional JSON response field/path containing generated text." - added
Input schema / properties / system / descriptionAdded value: +"Optional system instructions supported by the endpoint." - added
Input schema / properties / systemField / descriptionAdded value: +"Custom REST request JSON key for system instructions." - added
Input schema / properties / temperature / descriptionAdded value: +"Optional response sampling randomness between 0 and 2." - added
Input schema / properties / uiLanguage / descriptionAdded value: +"Interface language name or code, e.g. EN; independent of source and response languages."
- Changed
search_templates7 fields changed- added
Input schema / properties / goal / descriptionAdded value: +"Optional intended outcome, e.g. write a help article." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum matches to return (1 to 24), default 12." - added
Input schema / properties / plan / descriptionAdded value: +"Filter catalog by free or Pro tier; filtering does not grant access." - added
Input schema / properties / query / descriptionAdded value: +"Search phrase or topic; blank lists available templates." - added
Input schema / properties / uiLanguage / descriptionAdded value: +"Language code for localized template labels; defaults to EN." - added
Output schema / properties / entitlement / properties / dailyFreeRemainingAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / lastFreeSendAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
transcribe_audio7 fields changed- added
Input schema / properties / audioBase64 / descriptionAdded value: +"Base64-encoded audio bytes, without a data: prefix. Alternative to audioUrl; provide exactly one audio source." - added
Input schema / properties / audioUrl / descriptionAdded value: +"Public HTTPS URL of an audio recording to transcribe. Use this OR audioBase64, never both; private or local URLs are not supported." - added
Input schema / properties / detectLanguage / descriptionAdded value: +"When true, also infer a supported Poly-Glot language from the resulting transcript; defaults to false." - added
Input schema / properties / filename / descriptionAdded value: +"Original audio filename with extension, such as meeting.m4a, to help determine the format." - added
Input schema / properties / languageHint / descriptionAdded value: +"Optional language hint for speech recognition, such as en, es, or fr. Leave blank if unknown." - added
Input schema / properties / mimeType / descriptionAdded value: +"Audio MIME type, such as audio/mpeg, audio/mp4, or audio/wav. Recommended for base64 input." - added
Input schema / properties / prompt / descriptionAdded value: +"Optional recognition context, such as expected names or specialist vocabulary; not the text to transcribe."
- Changed
translate_text3 fields changed- added
Input schema / properties / sourceLanguage / descriptionAdded value: +"Original language name or code, such as 'en' or 'English'; 'auto' (default) asks the provider to detect it." - added
Input schema / properties / targetLanguage / descriptionAdded value: +"Required desired output language name or code among the 38 supported, e.g. 'Spanish' or 'es'." - added
Input schema / properties / text / descriptionAdded value: +"Nonempty original text to translate, including any formatting to preserve."
- Changed
validate_custom_model11 fields changed- added
Input schema / properties / adapterMode / descriptionAdded value: +"Adapter: openai-compatible or custom-rest." - added
Input schema / properties / apiKey / descriptionAdded value: +"Optional transient API credential, never stored or echoed." - added
Input schema / properties / apiKeyHeader / descriptionAdded value: +"Header name when using api-key-header authentication." - added
Input schema / properties / authMode / descriptionAdded value: +"Custom REST authentication method: bearer, API-key header, or none." - added
Input schema / properties / baseUrl / descriptionAdded value: +"Public HTTPS base URL for openai-compatible mode." - added
Input schema / properties / endpoint / descriptionAdded value: +"Full public HTTPS URL for custom-rest mode." - added
Input schema / properties / model / descriptionAdded value: +"Optional external model identifier for a test probe." - added
Input schema / properties / probe / descriptionAdded value: +"True sends a minimal external request to test the model; false only checks URL safety." - added
Input schema / properties / promptField / descriptionAdded value: +"JSON request field for test prompt content on custom REST endpoints." - added
Input schema / properties / responseTextPath / descriptionAdded value: +"JSON response field or path holding the generated text." - added
Input schema / properties / systemField / descriptionAdded value: +"JSON request field for system instructions on custom REST endpoints."
6 tool updates
- Changed
build_prompt3 fields changed- added
Output schema / properties / entitlement / properties / compareLockedAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / entitlement / properties / dailyFreeLimitAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / nextResetAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
get_subscription_status3 fields changed- added
Output schema / properties / entitlement / properties / compareLockedAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / entitlement / properties / dailyFreeLimitAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / nextResetAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
get_template3 fields changed- added
Output schema / properties / entitlement / properties / compareLockedAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / entitlement / properties / dailyFreeLimitAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / nextResetAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
open_workspace3 fields changed- added
Output schema / properties / entitlement / properties / compareLockedAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / entitlement / properties / dailyFreeLimitAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / nextResetAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
prepare_compare3 fields changed- added
Output schema / properties / entitlement / properties / compareLockedAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / entitlement / properties / dailyFreeLimitAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / nextResetAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
- Changed
search_templates3 fields changed- added
Output schema / properties / entitlement / properties / compareLockedAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / entitlement / properties / dailyFreeLimitAdded value: +{ + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / entitlement / properties / nextResetAtAdded value: +{ + "type": [ + "string", + "null" + ] +}
15 tool updates
- First observed
build_prompt - First observed
detect_language - First observed
get_custom_model_capabilities - First observed
get_language_options - First observed
get_subscription_status - First observed
get_template - First observed
localize_text - First observed
open_workspace - First observed
prepare_compare - First observed
prepare_custom_compare - First observed
run_custom_model - First observed
search_templates - First observed
transcribe_audio - First observed
translate_text - First observed
validate_custom_model
Related MCP Connectors
25 tools: LLM chat, summaries, translation, embeddings, speech, images. 25 free calls.
Mail, Calendar, Messages, Notes, Contacts, Slack on your Mac for AI. Remote needs Pro or free trial.
AI visibility across 8 LLM platforms. 30 tools, most need no API key. EU-hosted, free.
AI agent email — 23 tools free to read inbox, 28 paid to send. $9.99/mo. Token auto-provisioned.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceApproved incident states and customer-facing wording for AI assistants, over MCP. A 14-day trial, then Pro. The price is only at checkout.608 npmMIT
- AlicenseNot gradedqualityBmaintenanceInvoice by Ouroboros Apps (https://ouroborosapps.com). Freelance invoice records: approved invoice line items, quantities, agreed rates, due dates, and late terms; invoice changes need explicit approval. Connect by pasting https://invoice-continuity2.vercel.app/mcp into Claude, Cursor, Grok, or ChatGPT developer mode (OAuth). Docs: https://ouroborosapps.com/docs/invoice4 npmMIT
- AlicenseNot gradedqualityFmaintenanceApproved curriculum for coaches, connected to AI assistants over MCP. A 14-day trial, then Pro. The price is only at checkout.6 npmMIT
- AlicenseNot gradedqualityBmaintenanceClaim by Ouroboros Apps (https://ouroborosapps.com). Brand claims and marketing copy compliance: approved claims, offers, proof, brand voice, and banned phrases, with a check that rejects copy inventing a guarantee or discount. Connect by pasting https://claim-continuity2.vercel.app/mcp into Claude, Cursor, Grok, or ChatGPT developer mode (OAuth). Docs: https://ouroborosapps.com/docs/claim46 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.