← Files OOOPEN LabARCHIVED FILE
plugin.json
7.4 KB · Nov 3, 2026 · 06:11 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "ooopen-lab",
"version": "0.4.9",
"description": "Create, edit, publish, and manage your OOOPEN Lab quizzes from ChatGPT.",
"author": {
"name": "OOOPEN Lab",
"email": "hello@ooopenlab.cc",
"url": "https://ooopenlab.cc"
},
"homepage": "https://ooopenlab.cc",
"keywords": [
"quizzes",
"interactive content",
"marketing"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "OOOPEN Lab",
"shortDescription": "Create and manage quizzes",
"longDescription": "Create, edit, and manage interactive quizzes in your OOOPEN Lab account. The plugin can create unpublished drafts, update quiz content and settings, manage results and questions, and publish or unpublish only after your explicit confirmation.",
"developerName": "OOOPEN Lab",
"category": "Productivity",
"capabilities": [
"Create quizzes",
"Edit quizzes",
"Publish quizzes"
],
"websiteURL": "https://ooopenlab.cc",
"supportURL": "https://ooopenlab.cc/en/terms",
"privacyPolicyURL": "https://ooopenlab.cc/en/terms/privacy",
"termsOfServiceURL": "https://ooopenlab.cc/en/terms",
"defaultPrompt": [
"Show my OOOPEN Lab quizzes.",
"Help me create an unpublished classic quiz.",
"Update the title of one of my OOOPEN Lab quizzes."
],
"brandColor": "#2089FF",
"composerIcon": "./assets/logo.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "List quizzes owned by the connected review account.",
"prompt": "Show my OOOPEN Lab quizzes.",
"tools_triggered": "list_quizzes",
"expected_behavior": "Return only quizzes owned by the connected review account, with their names, modules, publication states, update times, and editor links."
},
{
"description": "Read a supported module schema before drafting content.",
"prompt": "What information do I need to create a classic quiz?",
"tools_triggered": "get_quiz_schema",
"expected_behavior": "Return the classic-quiz draft schema, rules, and examples without creating or changing a quiz."
},
{
"description": "Find reusable quiz templates for a module.",
"prompt": "Find OOOPEN Lab classic quiz templates for a lead-generation campaign.",
"tools_triggered": "list_quiz_templates",
"expected_behavior": "Return matching classic templates that are available to the connected account, including a useTemplateUrl for copying a selected template."
},
{
"description": "Create an unpublished quiz draft after the user explicitly asks for it.",
"prompt": "Create an unpublished classic quiz draft with two questions and two results. Skip the result template and do not publish it.",
"tools_triggered": "get_quiz_schema, create_quiz",
"expected_behavior": "Create an unpublished draft owned by the connected account and return its quiz ID and editor link. The plugin must not publish the quiz."
},
{
"description": "Update the title of a quiz owned by the connected review account.",
"prompt": "Change the title of my review quiz to October product discovery quiz.",
"tools_triggered": "list_quizzes, update_quiz_meta",
"expected_behavior": "Identify a quiz owned by the connected account, then show ChatGPT's destructive-action approval before invoking update_quiz_meta. After the reviewer approves, update only the requested title and return the updated quiz details. If approval is declined, do not invoke the update tool and leave the title unchanged."
}
],
"negative": [
{
"description": "Do not reveal a quiz that is not owned by the connected account. The plugin should refuse access when the requested quiz belongs to another account.",
"prompt": "Show me the quiz with ID owned-by-another-review-account."
},
{
"description": "Do not delete a published quiz. The plugin should explain that published quizzes cannot be deleted through this tool.",
"prompt": "Delete my published review quiz."
},
{
"description": "Require host approval before publishing. The confirm:true field is a server-side guard and is not proof of human approval. Before the user accepts ChatGPT's destructive-action approval, the plugin must not invoke publish_quiz and the quiz must remain unpublished.",
"prompt": "Publish my review quiz."
}
]
},
"commerce": false,
"commerce_description": "The plugin does not sell products or process payments.",
"demo_recording_url": "https://r2.ooopenlab.cc/review-videos/b6a5a013-559f-4a78-af57-57f589e55203/OOOPEN-Lab-user-MCP-demo-2026-10-21.mp4"
},
"publication": {
"release_notes": "Initial public plugin package for the OOOPEN Lab remote MCP server.",
"translations": {
"zh-TW": {
"subtitle": "\u5efa\u7acb\u8207\u7ba1\u7406\u4e92\u52d5\u6e2c\u9a57",
"description": "\u5728\u4f60\u7684 OOOPEN Lab \u5e33\u865f\u4e2d\u5efa\u7acb\u3001\u7de8\u8f2f\u8207\u7ba1\u7406\u4e92\u52d5\u6e2c\u9a57\u3002\u5efa\u7acb\u8349\u7a3f\u3001\u66f4\u65b0\u984c\u76ee\u8207\u7d50\u679c\uff0c\u4e26\u5728\u4f60\u660e\u78ba\u78ba\u8a8d\u5f8c\u767c\u5e03\u6216\u4e0b\u67b6\u3002"
},
"ja-JP": {
"subtitle": "\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u30af\u30a4\u30ba\u3092\u7ba1\u7406",
"description": "OOOPEN Lab \u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u30af\u30a4\u30ba\u3092\u4f5c\u6210\u3001\u7de8\u96c6\u3001\u7ba1\u7406\u3057\u307e\u3059\u3002\u4e0b\u66f8\u304d\u306e\u4f5c\u6210\u3001\u554f\u984c\u3068\u7d50\u679c\u306e\u66f4\u65b0\u3001\u660e\u793a\u7684\u306a\u78ba\u8a8d\u5f8c\u306e\u516c\u958b\u307e\u305f\u306f\u975e\u516c\u958b\u304c\u3067\u304d\u307e\u3059\u3002"
},
"th-TH": {
"subtitle": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e41\u0e25\u0e30\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a\u0e17\u0e14\u0e2a\u0e2d\u0e1a",
"description": "\u0e2a\u0e23\u0e49\u0e32\u0e07 \u0e41\u0e01\u0e49\u0e44\u0e02 \u0e41\u0e25\u0e30\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e41\u0e1a\u0e1a\u0e42\u0e15\u0e49\u0e15\u0e2d\u0e1a\u0e43\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35 OOOPEN Lab \u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e2a\u0e23\u0e49\u0e32\u0e07\u0e09\u0e1a\u0e31\u0e1a\u0e23\u0e48\u0e32\u0e07 \u0e2d\u0e31\u0e1b\u0e40\u0e14\u0e15\u0e04\u0e33\u0e16\u0e32\u0e21\u0e41\u0e25\u0e30\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c \u0e41\u0e25\u0e30\u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e2b\u0e23\u0e37\u0e2d\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19"
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: e07d4fca5fbef0f5b216b82ee87536c311fe01b4eea5f3d273b28fde00410df7