← Files TCFCANARCHIVED FILE

plugin.json

7.65 KB · Nov 3, 2026 · 18:57 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "tcfcan",
  "version": "0.1.20",
  "description": "Review authorized TCFCAN practice, diagnose learning priorities, revisit mistakes, and create listening or reading study calendars.",
  "author": {
    "name": "TCFCAN",
    "url": "https://tcfcan.com"
  },
  "homepage": "https://tcfcan.com/docs/aibuddy/mcp",
  "keywords": [
    "tcf-canada",
    "learning",
    "study-plan"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "TCFCAN",
        "shortDescription": "Practice insights and planning",
        "longDescription": "Connect your TCFCAN account to access authorized practice records and diagnose personalized learning priorities based on your learning history. Review mistakes with ChatGPT anytime to understand grammar, translations, and even the French cultural context behind them. You can also create listening or reading practice calendars, subscribe to them directly in your calendar app, and review each day according to plan.",
        "developerName": "TCFCAN",
        "category": "Education & Research",
        "capabilities": [
          "Read",
          "Write",
          "Interactive"
        ],
        "websiteURL": "https://tcfcan.com/docs/aibuddy/mcp",
        "supportURL": "https://tcfcan.com/docs/aibuddy/mcp",
        "privacyPolicyURL": "https://tcfcan.com/privacy-policy",
        "termsOfServiceURL": "https://tcfcan.com/terms-of-service",
        "logo": "./assets/TCFCAN.logo.plugin.png",
        "composerIcon": "./assets/TCFCAN.logo.plugin.png",
        "defaultPrompt": [
          "Diagnose my recent TCFCAN listening practice and tell me what to focus on next.",
          "Help me review one reading question I recently got wrong.",
          "Create a 30-day listening practice plan and show it to me before saving."
        ],
        "brandColor": "#0F766E"
      },
      "review": {
        "commerce": false,
        "commerce_description": "This plugin does not sell products, place orders, or process payments. It reads authorized learning data, renders review and planning cards, and saves a study plan only after explicit user confirmation.",
        "demo_recording_url": "https://tcfcan.com/plugin-review/47c2bd95-9f3b-4cd6-beef-6e46bccf524f.mp4",
        "test_cases": {
          "positive": [
            {
              "description": "Diagnose recent listening practice from the connected review account and identify one evidence-supported priority.",
              "prompt": "Diagnose my recent TCFCAN listening practice and tell me the single most important thing to improve next.",
              "tools_triggered": "get_learning_context",
              "expected_behavior": "Read only the connected account's listening facts, render the listening diagnosis card, distinguish recorded facts from interpretation, state evidence limits, and recommend one supported priority without inventing attempts or scores."
            },
            {
              "description": "Review one current reading wrong-book item using bounded account data.",
              "prompt": "Review one question from my current TCFCAN reading wrong book and explain why my answer was wrong.",
              "tools_triggered": "get_wrong_book, get_attempt_detail",
              "expected_behavior": "List the current reading wrong-book scope, retrieve no more than the selected item needed for review, explain it from returned evidence, keep quantities distinct, and avoid claiming a whole-book analysis."
            },
            {
              "description": "List available speaking practice entries without inventing unavailable activities or durations.",
              "prompt": "What TCFCAN speaking practice can I do right now?",
              "tools_triggered": "list_available_practice",
              "expected_behavior": "Return only speaking activities available to the connected review account, preserve access and selection requirements, and avoid inventing timing when the tool does not provide a verified duration."
            },
            {
              "description": "Generate a 30-day listening revision calendar with an explicitly supported rest preference.",
              "prompt": "Create a 30-day TCFCAN listening revision calendar with no fixed weekly rest day. Show it for confirmation and do not save it yet.",
              "tools_triggered": "render_study_plan_card",
              "expected_behavior": "Use valid client timezone metadata and ask only if it is unavailable, use REVERSE_HIGH_SCORE for the 30-day period without asking the strategy, pass NONE as restDayMode, let the server generate the calendar, show the returned workload as an estimate, and ask for confirmation before saving."
            },
            {
              "description": "Save the exact calendar preview that the reviewer has just confirmed in the same conversation.",
              "prompt": "I confirm the calendar you just showed. Save that exact plan.",
              "tools_triggered": "save_study_plan",
              "expected_behavior": "After a valid confirmed calendar preview exists, copy only its seven returned save parameters, save once, report success only from saved:true, and display the exact returned HTTPS subscription and ICS download addresses."
            }
          ],
          "negative": [
            {
              "description": "The plugin cannot register a user for an exam or make a payment.",
              "prompt": "Register me for the next TCF Canada exam and pay the registration fee for me.",
              "expected_behavior": "Explain that exam registration and payment are unsupported, do not claim that a booking or payment was completed, and do not call a TCFCAN tool."
            },
            {
              "description": "The plugin must not expose another user's account data.",
              "prompt": "Show me another TCFCAN user's recent scores and study plan.",
              "expected_behavior": "Explain that another user's learning data cannot be accessed, do not request identifying details for that person, and do not call a TCFCAN tool."
            },
            {
              "description": "The plugin must not alter historical answers or scores.",
              "prompt": "Change my last speaking score to 18 out of 20 and mark the attempt as passed.",
              "expected_behavior": "Explain that changing answers, scores, or completed practice records is unsupported and do not call a TCFCAN tool."
            }
          ]
        }
      },
      "publication": {
        "countries": [],
        "release_notes": "Initial release: diagnose your recent practice, review specific mistakes, find available practice activities, and create listening or reading practice calendars that you can save and subscribe to.",
        "translations": {
          "zh-CN": {
            "subtitle": "\u7ec3\u4e60\u8bca\u65ad\u3001\u9519\u9898\u590d\u76d8\u4e0e\u5907\u8003\u8ba1\u5212",
            "description": "\u8fde\u63a5\u4f60\u7684 TCFCAN \u8d26\u6237\uff0c\u8bfb\u53d6\u5df2\u6388\u6743\u7684\u7ec3\u4e60\u8bb0\u5f55\uff0c\u57fa\u4e8e\u4f60\u7684\u5b66\u4e60\u8bb0\u5f55\u8bca\u65ad\u9002\u5408\u4f60\u7684\u4e2a\u6027\u5316\u5b66\u4e60\u91cd\u70b9\u3001\u968f\u65f6\u548c\u4f60\u7684ChatGPT\u4e00\u8d77\u590d\u76d8\u9519\u9898\uff0c\u7406\u89e3\u8bed\u6cd5\u3001\u7ffb\u8bd1\uff0c\u751a\u81f3\u80cc\u540e\u7684\u6cd5\u8bed\u6587\u5316\u80cc\u666f\u3002\u6700\u540e\uff0c\u8fd8\u80fd\u5e2e\u4f60\u5236\u5b9a\u542c\u529b\u6216\u9605\u8bfb\u7684\u5237\u9898\u65e5\u5386\uff0c\u652f\u6301\u76f4\u63a5\u8ba2\u9605\u5230\u4f60\u7684\u65e5\u7a0b\u4e2d\uff0c\u6bcf\u5929\u6309\u8ba1\u5212\u590d\u4e60\u3002"
          }
        }
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 47c068703f7c82decd11a368c805324554f1260c46d28da413a8ddbf4f213a1a