Poly-Glot AI Workspace
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
15 tools, 38 languages, 8 AIs. Apple-approved 3-day Pro trial; subscription renews, no free Sends.
| Author | io.github.hmoses |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 152 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Poly-Glot AI Workspace": {
"url": "https://br-steep-leaf-ae2o29qz-mcp.compute.c-2.us-east-2.aws.neon.tech/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
get_language_optionsread-onlyList 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.
Parameters:
uiLanguage— string — UI language code or name such as EN, es or Arabic; defaults to EN.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
get_subscription_statusread-onlyRead 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.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
open_workspaceread-onlyOpen 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.
Parameters:
query— string — Optional keyword or goal for template search, e.g. resume. Maximum 200 characters.uiLanguage— string — UI language name or code for template labels; defaults to EN.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
search_templatesread-onlySearch 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.
Parameters:
goal— string — Optional intended outcome, e.g. write a help article.plan— string — Filter catalog by free or Pro tier; filtering does not grant access.limit— integer — Maximum matches to return (1 to 24), default 12.query— string — Search phrase or topic; blank lists available templates.uiLanguage— string — Language code for localized template labels; defaults to EN.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
get_templateread-onlyRetrieve 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.
Parameters:
name(required) — string — Required template name returned by search_templates.uiLanguage— string — Language code for localized template fields; defaults to EN.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
build_promptFill 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.
Parameters:
name(required) — string — Required accessible template name; use search_templates or get_template to find it.values— object — Map of template placeholder names to strings, numbers or booleans, e.g. {topic: onboarding}.uiLanguage— string — Interface language name or code, e.g. EN; independent of source and response languages.inputLanguage— string — Language name or code of input text, e.g. es; defaults to EN.outputLanguage— string — Requested output language name or code, e.g. fr; defaults to EN.
Hints: read-only no · destructive no · idempotent not declared · open-world no
prepare_comparePrepare 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.
Parameters:
name— string — Optional accessible template name; supply this or a raw prompt.prompt— string — Optional original prompt for each provider, maximum 30,000 characters; provide this or name.values— object — Placeholder values used when preparing a named template.providers— array — Two to eight provider IDs; defaults to ChatGPT and Claude and duplicates are removed.uiLanguage— string — Interface language name or code, e.g. EN; independent of source and response languages.inputLanguage— string — Language name or code of input text, e.g. es; defaults to EN.outputLanguage— string — Requested output language name or code, e.g. fr; defaults to EN.
Hints: read-only no · destructive no · idempotent not declared · open-world no
get_custom_model_capabilitiesread-onlyExplain 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.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
validate_custom_modelread-onlyValidate 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.
Parameters:
adapterMode(required) — string — Adapter: openai-compatible or custom-rest.model— string — Optional external model identifier for a test probe.probe— boolean — True sends a minimal external request to test the model; false only checks URL safety.apiKey— string — Optional transient API credential, never stored or echoed.baseUrl— string — Public HTTPS base URL for openai-compatible mode.authMode— string — Custom REST authentication method: bearer, API-key header, or none.endpoint— string — Full public HTTPS URL for custom-rest mode.promptField— string — JSON request field for test prompt content on custom REST endpoints.systemField— string — JSON request field for system instructions on custom REST endpoints.apiKeyHeader— string — Header name when using api-key-header authentication.responseTextPath— string — JSON response field or path holding the generated text.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
run_custom_modelRun 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.
Parameters:
adapterMode(required) — string — Adapter for the target endpoint: openai-compatible or custom-rest.prompt(required) — string — Required nonempty prompt to send externally, maximum 30,000 characters.model— string — Model identifier at the custom provider, when needed.apiKey— string — Transient authentication key sent to the chosen provider; never log or embed in prompts.system— string — Optional system instructions supported by the endpoint.baseUrl— string — Required public HTTPS base URL for openai-compatible mode.authMode— string — Custom REST authentication mode, default bearer.endpoint— string — Required public HTTPS inference URL for custom-rest mode.maxTokens— integer — Optional maximum output token count, subject to model limits.uiLanguage— string — Interface language name or code, e.g. EN; independent of source and response languages.promptField— string — Custom REST request JSON key for prompt content.systemField— string — Custom REST request JSON key for system instructions.temperature— number — Optional response sampling randomness between 0 and 2.apiKeyHeader— string — Custom REST API-key authentication header name.extraHeaders— object — Extra HTTP headers required by the provider, if any.inputLanguage— string — Language name or code of input text, e.g. es; defaults to EN.outputLanguage— string — Requested output language name or code, e.g. fr; defaults to EN.responseTextPath— string — Optional JSON response field/path containing generated text.
Hints: read-only no · destructive no · idempotent not declared · open-world yes
prepare_custom_comparePrepare 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.
Parameters:
prompt(required) — string — Required canonical prompt shared among all selected models, up to 30,000 characters.customModels(required) — array — Required array of 1 to 5 custom model connection descriptors; excludes authentication credentials.uiLanguage— string — Interface language name or code, e.g. EN; independent of source and response languages.inputLanguage— string — Language name or code of input text, e.g. es; defaults to EN.outputLanguage— string — Requested output language name or code, e.g. fr; defaults to EN.builtinProviders— array — Optional built-in provider IDs to include alongside custom targets. This preparation tool does not call providers.
Hints: read-only no · destructive no · idempotent not declared · open-world no
transcribe_audioConvert 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.
Parameters:
prompt— string — Optional recognition context, such as expected names or specialist vocabulary; not the text to transcribe.audioUrl— string — Public HTTPS URL of an audio recording to transcribe. Use this OR audioBase64, never both; private or local URLs are not supported.filename— string — Original audio filename with extension, such as meeting.m4a, to help determine the format.mimeType— string — Audio MIME type, such as audio/mpeg, audio/mp4, or audio/wav. Recommended for base64 input.audioBase64— string — Base64-encoded audio bytes, without a data: prefix. Alternative to audioUrl; provide exactly one audio source.languageHint— string — Optional language hint for speech recognition, such as en, es, or fr. Leave blank if unknown.detectLanguage— boolean — When true, also infer a supported Poly-Glot language from the resulting transcript; defaults to false.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
detect_languageIdentify 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.
Parameters:
text(required) — string — 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.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
translate_textTranslate 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.
Parameters:
text(required) — string — Nonempty original text to translate, including any formatting to preserve.targetLanguage(required) — string — Required desired output language name or code among the 38 supported, e.g. 'Spanish' or 'es'.sourceLanguage— string — Original language name or code, such as 'en' or 'English'; 'auto' (default) asks the provider to detect it.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
localize_textAdapt 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.
Parameters:
text(required) — string — Original nonempty copy to adapt for the target culture, region, and audience.targetLanguage(required) — string — Required output language name or code, e.g. 'Arabic' or 'ar'.tone— string — Desired writing style, such as 'friendly', 'formal', or 'concise'.locale— string — Optional regional locale, such as 'es-MX', 'fr-CA', or 'en-GB'; affects regional spelling and conventions.audience— string — Intended readers or customers, e.g. 'first-time mobile app users' or 'enterprise developers'.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.