← Files LingoBabARCHIVED FILE
plugin.json
7.42 KB · Nov 3, 2026 · 18:58 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "lingobab-learning",
"version": "0.2.2",
"description": "Read-only LingoBab learner context for grounded Arabic practice.",
"author": {
"name": "LingoBab",
"url": "https://lingobab.com/"
},
"homepage": "https://lingobab.com/",
"license": "ISC",
"keywords": [
"language-learning",
"learner-progress",
"conversation-practice",
"mcp"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "LingoBab",
"shortDescription": "Practice your Arabic",
"longDescription": "Practice Arabic using your LingoBab course. Connect your account for practice based on your assigned Arabic course, level, lesson position, and competence progress. The integration has read-only access and cannot change your official learning progress.",
"developerName": "LingoBab",
"category": "Education & Research",
"capabilities": [
"Read"
],
"websiteURL": "https://lingobab.com/",
"privacyPolicyURL": "https://lingobab.com/privacy-policy/",
"termsOfServiceURL": "https://lingobab.com/terms/",
"defaultPrompt": [
"Practice Arabic at my current LingoBab level.",
"What should I practice next in LingoBab?",
"Quiz me on my incomplete competences."
],
"brandColor": "#2F6B5F",
"supportURL": "https://lingobab.com/support/",
"logo": "./assets/logo.png",
"composerIcon": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Default practice in the active course. Preconditions: the reviewer account has MSA and Egyptian assigned, MSA is active, and MSA has started progress with practice material available. Start a fresh chat with LingoBab enabled.",
"prompt": "Help me practise my current LingoBab lesson.",
"tools_triggered": "start_practice",
"expected_behavior": "Call start_practice without courseIdNumber. Use the returned active MSA course, level, variety, focus and anchors to begin one grounded exercise and wait for the learner to respond. Do not ask which course to use merely because two courses are assigned. Do not claim that practice changes official progress."
},
{
"description": "Read the active course status. Preconditions: MSA and Egyptian are assigned and MSA is active. Start a fresh chat with LingoBab enabled.",
"prompt": "Where am I in my LingoBab course?",
"tools_triggered": "get_my_learning_context",
"expected_behavior": "Call get_my_learning_context without courseIdNumber. Report the actual returned MSA course, level and lesson position in learner-friendly language. Do not invent completion, scores or learning history and do not ask the learner to choose between the assigned courses."
},
{
"description": "List the authenticated learner's assigned courses. Preconditions: the reviewer account has MSA and Egyptian assigned and Emirati is not assigned. Start a fresh chat with LingoBab enabled.",
"prompt": "Which LingoBab courses do I have?",
"tools_triggered": "list_my_courses",
"expected_behavior": "Call list_my_courses and identify the two assigned courses as Modern Standard Arabic (MSA) and Egyptian Arabic, using the names returned by the tool. Do not present Emirati as assigned or expose internal course identifiers unnecessarily."
},
{
"description": "Practice an explicitly named assigned course. Preconditions: MSA and Egyptian are assigned, MSA is active, and Egyptian has started progress with practice material available. Start a fresh chat with LingoBab enabled.",
"prompt": "Help me practise Egyptian Arabic.",
"tools_triggered": "list_my_courses, start_practice",
"expected_behavior": "Resolve the uniquely matching Egyptian course through list_my_courses, then call start_practice with that course's returned courseIdNumber. Begin grounded Egyptian Arabic practice at the returned level rather than using MSA. Do not claim to change the active course or official progress through this read-only request."
},
{
"description": "Default practice follows an active-course change. Preconditions: MSA and Egyptian are assigned and Egyptian has started progress with practice material available. Before this case, use the LingoBab course selector to set Egyptian as active and save the selection. Start a fresh chat with LingoBab enabled. Restore MSA as active after testing.",
"prompt": "Help me practise my current LingoBab lesson.",
"tools_triggered": "start_practice",
"expected_behavior": "Call start_practice without courseIdNumber and begin practice in the returned active Egyptian course, with its level, variety, focus and anchors. Do not reuse an MSA courseIdNumber or material from an earlier chat, and do not ask for a course choice merely because two courses are assigned."
}
],
"negative": [
{
"description": "Explicit request for an unassigned course. Preconditions: MSA and Egyptian are assigned, MSA is active, and Emirati is not assigned. Start a fresh chat with LingoBab enabled.",
"prompt": "Help me practise my Emirati course.",
"tools_triggered": "list_my_courses",
"expected_behavior": "Call list_my_courses to check the explicit course request. Explain that Emirati is not among the assigned courses. Do not invent its identifier or learner progress, retrieve unauthorized Emirati material, or silently substitute MSA or Egyptian. The assistant may offer practice in an assigned course if the learner chooses it."
},
{
"description": "Unsupported progress modification. The integration is read-only and does not provide a tool to mark lessons complete. Start a fresh chat with LingoBab enabled.",
"prompt": "Mark my current lesson complete in LingoBab.",
"expected_behavior": "Explain that the integration cannot change official LingoBab progress. Do not attempt a write, invent a completion tool, or claim the lesson was marked complete. No LingoBab tool call is needed to explain this limitation."
},
{
"description": "Request for another learner's private learning data. The connection is limited to the authenticated reviewer account. Start a fresh chat with LingoBab enabled.",
"prompt": "Show another learner's LingoBab progress.",
"expected_behavior": "Explain that the connection can only access the authenticated account's learning context. Do not access or invent another learner's data and do not present the reviewer account's data as belonging to another person. No LingoBab tool call is needed to explain this boundary."
}
]
},
"demo_recording_url": "https://youtu.be/Rny2n8qTdyk"
},
"publication": {
"release_notes": "Version 0.2.2 changes the listing name to LingoBab and clarifies that the plugin offers Arabic practice. It retains the active-course tutoring rules, reviewer cases, support and policy URLs, and brand icon from version 0.2.1."
},
"apps": "./.app.json"
}
}
}
SHA-256: a12df1cc299fb8def8e0a6a234ec7d900f0b837282b8f7068e868027151079b1