← Files DemovelaARCHIVED FILE

plugin.json

4.85 KB · Nov 3, 2026 · 19:22 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "demovela",
  "version": "1.1.0",
  "description": "Browse your saved Demovela videos and drafts, check an existing video\u2019s status, and explore video templates. Save supplied copy as an editable draft brief with your chosen template, ready for review in Demovela. This connection does not record websites, render videos, publish content, or spend credits. A Demovela account and OAuth connection are required.",
  "author": {
    "name": "Cnames"
  },
  "extensions": {
    "com.openai": {
      "interface": {
        "capabilities": [],
        "category": "Productivity",
        "defaultPrompt": null,
        "developerName": "Cnames",
        "displayName": "Demovela",
        "longDescription": "Browse your saved Demovela videos and drafts, check an existing video\u2019s status, and explore video templates. Save supplied copy as an editable draft brief with your chosen template, ready for review in Demovela. This connection does not record websites, render videos, publish content, or spend credits. A Demovela account and OAuth connection are required.",
        "privacyPolicyURL": "https://demovela.com/privacy",
        "shortDescription": "Browse videos and save drafts",
        "supportURL": "https://github.com/demovela/mcp-server/issues",
        "termsOfServiceURL": "https://demovela.com/terms",
        "websiteURL": "https://demovela.com",
        "logo": "./assets/icon.png",
        "composerIcon": "./assets/icon.png"
      },
      "publication": {
        "release_notes": "Recreate the rejected submission under Cnames, retaining the product skill, OAuth endpoint and documented reviewer workflows."
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Read own profile",
              "prompt": "Show my Demovela account profile.",
              "tools_triggered": "get_profile",
              "expected_behavior": "Returns only the connected account profile. The reviewer account is explicitly labelled synthetic."
            },
            {
              "description": "Browse templates",
              "prompt": "List Demovela templates with their supported formats.",
              "tools_triggered": "list_templates",
              "expected_behavior": "Returns the actual catalogue and supported formats; no rendering starts."
            },
            {
              "description": "Browse saved drafts",
              "prompt": "List my saved Demovela videos and drafts.",
              "tools_triggered": "list_videos",
              "expected_behavior": "Returns only the connected workspace items and pagination; sample account includes a labelled sample draft."
            },
            {
              "description": "Read a draft and status",
              "prompt": "Read my video 11111111-1111-4111-8111-111111111111 and check its current status.",
              "tools_triggered": "get_video, get_video_status",
              "expected_behavior": "Returns the existing draft and draft status without starting work."
            },
            {
              "description": "Save supplied brief",
              "prompt": "Use a template from the catalogue to save a draft titled Product overview, with brief: Introduce our fictional note-taking app in three scenes. Do not render it.",
              "tools_triggered": "list_templates, create_video_draft",
              "expected_behavior": "Uses a fresh UUID requestId and valid templateId; saves a draft, returns its ID and does not spend credits. Reviewer drafts expire after 24 hours."
            }
          ],
          "negative": [
            {
              "description": "No rendering",
              "prompt": "Record example.com and render a finished video now.",
              "tools_triggered": "",
              "expected_behavior": "Explains that recording/rendering are unsupported and does not call create_video_draft without a separate draft request."
            },
            {
              "description": "No foreign access",
              "prompt": "Read the video 99999999-9999-4999-8999-999999999999 from another customer\u2019s workspace.",
              "tools_triggered": "",
              "expected_behavior": "Does not expose other workspaces; if get_video is called, returns not found."
            },
            {
              "description": "No overwrite",
              "prompt": "Reuse the previous requestId to save a completely different brief.",
              "tools_triggered": "",
              "expected_behavior": "Requests a fresh requestId for a new draft; changed retries are rejected and the earlier draft is preserved."
            }
          ]
        },
        "demo_recording_url": "https://app.demovela.com/api/public/b6d197c3-bc12-43de-b845-2de3c842b670.mp4",
        "commerce": false
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: d9c173740f0bdfa4bf859f4f0550f5ec426edd0298a55b04635054f3ea326536