← Files PartoskaARCHIVED FILE

plugin.json

12 KB · Nov 6, 2026 · 06:33 UTC

↓ Download file

See the change to this file →

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "app-69732efbec4c8191b922536df9857357",
  "version": "3.0.0",
  "description": "Create and manage Partoska photo-sharing events, browse and upload photos, moderate galleries, and share invite links, QR codes, and printable cards.",
  "author": {
    "name": "Partoska",
    "email": "ask@partoska.com",
    "url": "https://lab.partoska.com"
  },
  "homepage": "https://www.partoska.com/features/mcp-server-for-ai-assistants",
  "keywords": [
    "event photos",
    "photo sharing",
    "QR codes",
    "weddings",
    "galleries",
    "Partoska"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Partoska",
        "shortDescription": "Manage event photo galleries",
        "longDescription": "Ever spent hours chasing down photos scattered across chat groups, email threads, and random cloud folders after a party? Partoska fixes that.\nCreate an event, share a link or QR code, and watch the photos roll in\u2014from everyone, in one place, in full quality.\nPerfect for weddings, birthday parties, team events, family reunions, corporate gatherings, sports matches, camps, and anywhere people take photos worth keeping.",
        "developerName": "Partoska",
        "category": "Productivity",
        "capabilities": [
          "Create photo-sharing events",
          "Collect and organize guest photos",
          "Browse galleries and favorites",
          "Upload and moderate photos",
          "Revoke approval of published photos",
          "Generate invite links and QR cards",
          "Design collages and photo recaps"
        ],
        "defaultPrompt": [
          "Create an event named Linden Yard BBQ and give me an invite QR card.",
          "Show me the favorite photos from the Linden Yard BBQ.",
          "Find Linden Yard BBQ event and return its details."
        ],
        "websiteURL": "https://www.partoska.com/features/mcp-server-for-ai-assistants",
        "supportURL": "https://www.partoska.com/contact",
        "privacyPolicyURL": "https://www.partoska.com/legal/privacy-policy",
        "termsOfServiceURL": "https://www.partoska.com/legal/terms-of-service",
        "logo": "./assets/logo.png",
        "composerIcon": "./assets/composer-icon.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Put an approved photo back on hold. Setup: the review account administers a moderated Office Sports Day event (from Cases 3 and 4, or prepared separately) in which exactly one non-sensitive sample photo uploaded by the review account has been approved. Revoking is reversible: the reviewer can re-approve the photo afterwards. If the review account has uploaded several approved photos to the event, the assistant must ask which one rather than choosing.",
              "prompt": "Hide the photo I uploaded to Office Sports Day on Partoska from guests again. Don't delete it.",
              "tools_triggered": "event-query (or search), photo-list, photo-approve",
              "expected_behavior": "Resolve the event and confirm from returned data that it is moderated. Call photo-list with filter = author to identify the reviewer's approved upload. Call photo-approve once for that photo with approved = false and report the returned isApproved = false. Explain that the photo is on hold: hidden from guests, still visible to its author and moderators, and still stored in Partoska; do not claim it was rejected or deleted. Do not change any other photo, the event's public or moderated settings, or favorites. If the event is not moderated, explain that approval cannot be revoked there and make no change."
            },
            {
              "description": "Browse photos using the interactive gallery. Setup: the dedicated review account can access exactly one event named Linden Yard BBQ, which contains at least two approved sample photos and the review account has the required access. Use an MCP Apps-capable host. Repeated assistant gallery calls must not substitute for the widget's navigation. Keep this event active throughout review. If more than one matching event exists, the assistant must ask the reviewer to choose rather than selecting an arbitrary match.",
              "prompt": "Show me the photos from my Linden Yard BBQ event on Partoska.",
              "tools_triggered": "event-query (or search), photo-list, photo-gallery",
              "expected_behavior": "Resolve the fixture event, call photo-list with its id, then call photo-gallery once using that event id and a photo identifier returned by photo-list. Omit includeData or set it to false. Display the real gallery widget; previous/next navigation must move between fixture photos without one assistant tool call per photo. Do not report unseen image content or change favorite state without a user action."
            },
            {
              "description": "Create and configure an event, then share its QR code. Setup: a dedicated account is permitted to create a test event. Run this once per rehearsal; use the returned identifier throughout. Creation is intentional test data, not an authentication probe.",
              "prompt": "Create a Partoska event called Office Sports Day, turn on approval for uploads, and give me its invite link and QR code.",
              "tools_triggered": "event-create, event-update, event-browse",
              "expected_behavior": "Call event-create with name = Office Sports Day. Use the returned event id for event-update, changing only moderated = true. Preserve the returned public state; sharing a QR code does not authorize changing visibility. After a successful update, call event-browse with the same id and format = svg. Verify that moderation is enabled and public is unchanged. Show the returned invite url and the actual event QR in the widget or an SVG file, and explain that new uploads await approval before guests can see them. The QR must point to the returned invite URL. Follow host approval controls. Do not claim moderation is enabled if the update fails, and do not create a second event after an ambiguous creation result."
            },
            {
              "description": "Upload a sample photo through the picker and respect moderation and the event audience. Setup: the review account administers an active moderated Office Sports Day event with sufficient remaining quota. Record its public state before the case; do not change it as part of the upload. Case 3 can provide it, or prepare an equivalent fixture in advance. The reviewer selects a non-sensitive JPEG from their device and clicks Upload; no attachment URL or embedded image data is required in the prompt.",
              "prompt": "I want to upload a photo to my Office Sports Day event on Partoska.",
              "tools_triggered": "event-query (or search), photo-picker; photo-list for verification",
              "expected_behavior": "Resolve the intended event and its public/moderated state from returned data, clarifying an ambiguous destination. Call photo-picker with only id to open the upload widget, without type or base64 data in the initial call. Show the event context and remaining quota; explain that this moderated upload remains pending until approved, when it becomes visible to eligible guests, including guests of public events. Opening the picker must return photo = null and must not upload or publish media. After the reviewer chooses a JPEG and confirms upload, the widget must report the actual new photo identifier. Verify that the uploaded item appears in photo-list with isApproved = false and that public/moderated settings are unchanged. Follow host approval controls. Do not call photo-approve without a separate request, change visibility, or claim that merely opening the picker uploaded a file."
            },
            {
              "description": "Preview and download a print-ready QR card. Setup: the review account administers an active Office Sports Day event, provided by Case 3 or prepared separately. Use the tech design, English text, A4 paper, and one card per page. Downloading consumes the temporary link, so verify it once and save the file locally.",
              "prompt": "Show me a tech-themed photo-upload QR card for Office Sports Day in English, one card on an A4 page, and give me the PDF to print.",
              "tools_triggered": "event-query (or search), card-gallery, card-link",
              "expected_behavior": "Resolve the intended event and call card-gallery once with its id, design = tech, locale = en, layout = single, paper = a4, and includeData omitted or false. Let the widget handle browsing. Call card-link with the same design/layout settings and format = pdf, since the prompt explicitly requests a printable file. Return or save the actual one-time URL according to host capabilities; explain that it expires and must not be embedded in reusable documents. The opened PDF must use the requested theme and event QR."
            }
          ],
          "negative": [
            {
              "description": "Photo retouching is outside the Partoska MCP tools. Setup: attach a non-sensitive sample JPEG directly to the message. Expected: no Partoska tools are called, since the image is already attached. Use available image-editing tools or explain their absence; do not claim the original in Partoska has been changed.",
              "prompt": "Here's a photo from the Linden Yard BBQ. Brighten it, remove the red-eye, and crop out the person in the background."
            },
            {
              "description": "Calendar scheduling is not event-photo management. Expected: no Partoska tools are called and no photo event is created. Use an appropriate connected calendar service within its authorization rules, or ask for calendar access, the precise date/time, and invitees. Do not claim invitations were sent without a successful calendar action.",
              "prompt": "Add my daughter's birthday party to my calendar for next Saturday at 3pm and send my family a calendar invite."
            },
            {
              "description": "A Wi-Fi QR code is unrelated to a Partoska photo-upload event. Expected: no Partoska tools are called, no event is created, and neither event-browse nor event-qr-link is used. Ask for the network information needed by a general QR generator, or explain that the necessary generator is unavailable.",
              "prompt": "Generate a QR code that connects people to my home Wi-Fi network so guests can scan it when they come over."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "The plugin does not offer purchases, payment links, or checkout.",
        "demo_recording_url": "https://www.partoska.com/chatgpt-demo.mp4"
      },
      "publication": {
        "countries": [],
        "release_notes": "Plugin 3.0.0 aligns its version with the bundled Partoska 3.0.0 skill and packages it with the existing Partoska MCP server. Adds support for putting an approved photo back on hold (photo-approve with approved = false) and explicit favorite and unfavorite (photo-favorite with favorite = true or false). New guidance lets the assistant review photos on the user's request when the client can view images: moderating pending uploads against rules the user agrees, picking favorites, a privacy check before making an event public, and finding a specific moment. Adds live-event hosting help (coverage checks, drafted guest nudges, and scheduled moderation with agreed rules) and collage, photo recap, and recap story designs built from full-quality originals. Content-based moderation and favorite selection require viewing the photos. Explicit commands to change approval or favorite state on identified photos, or to approve all pending media without review, do not require viewing them; the assistant never claims to have inspected unseen content. It never sends messages on the user's behalf without confirmation and offers the privacy check before an event is made public. Review cases now include revoking an approval."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 42dd2bb38576f8852a40ee95dcf9b22c1bfa03236088148b1c0480cd937c5400