← Files UniversallyARCHIVED FILE

plugin.json

7.09 KB · Nov 2, 2026 · 13:17 UTC

↓ Download file

{
  "$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