← Files UniversallyARCHIVED FILE
plugin.json
7.09 KB · Nov 2, 2026 · 13:17 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "universally",
"version": "1.0.1",
"description": "Manage your Universally website translations: sites, languages, strings, glossary rules and translation analytics.",
"author": {
"name": "Universally",
"email": "support@universally.com",
"url": "https://universally.com"
},
"homepage": "https://universally.com",
"keywords": [
"translation",
"localization",
"multilingual",
"website",
"i18n",
"glossary"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Universally",
"shortDescription": "Manage website translations",
"longDescription": "Universally translates websites. This plugin lets you manage your Universally workspace from a conversation.\n\nAsk about your sites and plan: which sites you have, which languages each one serves, how many of your prepaid words are left, and which pages get the most translated traffic.\n\nReview and fix translations: search a site's strings by text or status (missing, unreviewed, verified), read every translation of a string, correct a translation, approve it, or generate a fresh machine translation.\n\nKeep terms consistent: list glossary rules, and create or edit rules that keep a brand name untranslated or always translate a term the same way, including patterns such as order numbers.\n\nSet up new work: create a site and get the exact install steps for its platform (WordPress, Shopify, Astro, or a script tag for any other website), add a language, or switch a language on or off.\n\nYou sign in with your Universally account and pick one workspace. The connection is read-only unless you tick \"Allow changes\", and it can never do more than your role in the workspace allows. There are no delete tools: deleting sites, languages, translations or glossary rules stays in the dashboard. Secret API keys are never shown to the AI.\n\nRequires a Universally account (universally.com).",
"developerName": "Universally",
"category": "Productivity",
"capabilities": [
"List sites, languages and plan usage",
"Search strings by text or translation status",
"Correct, approve or machine-translate a translation",
"Create and edit glossary rules",
"Create a site and get its install steps",
"Read translated-traffic analytics"
],
"websiteURL": "https://universally.com",
"supportURL": "https://universally.com/docs/contact-support/",
"privacyPolicyURL": "https://universally.com/privacy-policy/",
"termsOfServiceURL": "https://universally.com/terms/",
"defaultPrompt": [
"How many words do I have left on my Universally plan?",
"Which strings on my site are still missing a French translation?",
"Add a glossary rule so our brand name is never translated."
],
"brandColor": "#650CDF",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Plan check. The assistant reports the plan name, the prepaid word limit, words used and the difference, without calling it a monthly allowance.",
"prompt": "How many words do I have left on my Universally plan?",
"tools_triggered": "get_workspace_usage",
"expected_behavior": "States the plan name (Growth on the review account), the prepaid word limit, the words used and how many remain."
},
{
"description": "Languages and their status. The assistant resolves the site named 'uniconnect' and lists its target languages, including the one that is switched off.",
"prompt": "Which languages does uniconnect have, and which of them are live?",
"tools_triggered": "list_sites, list_site_languages",
"expected_behavior": "Reports English (US) as the source, Spanish and French as live, and German as present but switched off."
},
{
"description": "Review and approve. The assistant searches the Spanish strings filtered to unreviewed, shows a few, and approves the first one.",
"prompt": "Show me the first three unreviewed Spanish translations on uniconnect and approve the first one.",
"tools_triggered": "list_sites, search_strings, approve_translation",
"expected_behavior": "Lists up to three source strings with their unreviewed Spanish translations, then confirms the first one is now approved."
},
{
"description": "Add a glossary keep rule, checking for an existing rule first and only creating one if it does not exist.",
"prompt": "Make sure 'uniconnect' is never translated on any language of uniconnect.",
"tools_triggered": "list_sites, list_glossary_rules, upsert_glossary_rule",
"expected_behavior": "Reports the existing keep rule for 'uniconnect', or the newly created rule with its type and scope (all languages)."
},
{
"description": "Create a site and return its install steps for a plain website (script tag). If a site named 'Reviewer Test' already exists from an earlier run, use a different name, or delete it in the dashboard first.",
"prompt": "Create a new Universally site called 'Reviewer Test' for reviewer-test.example, written in English, and tell me how to install it.",
"tools_triggered": "create_site",
"expected_behavior": "Confirms the site was created and lists the install steps, including the script tag and the dashboard link that finishes setup."
}
],
"negative": [
{
"description": "Delete request. The plugin has no delete tools; the assistant explains that deleting a site is done in the Universally dashboard and changes nothing.",
"prompt": "Delete the uniconnect site."
},
{
"description": "Unrelated request. The plugin manages a Universally workspace; it does not translate arbitrary text, so no Universally tool is called and the assistant answers itself.",
"prompt": "Translate this paragraph into Italian for me: 'We ship worldwide.'"
},
{
"description": "Secret key request. No tool returns a private API key; the assistant points to the site's API settings in the dashboard.",
"prompt": "Show me the private API key for uniconnect."
}
]
},
"demo_recording_url": "https://quicksnip.com/s/PeKCqSh9Pp5ZnnV",
"commerce": false,
"commerce_description": "This plugin does not sell products or process payments. Plan upgrades happen in the Universally dashboard."
},
"publication": {
"release_notes": "1.0.1: every tool now declares all four MCP annotation hints explicitly (idempotentHint added to read-only tools). No tool or behaviour changes."
},
"apps": "./.app.json"
}
}
}
SHA-256: c2c9a0e3d037d3f2e325a6bb0feabff02923abd9ff0ed17e9fefda34b7790958