← PartoskaCONTENT HISTORY

Update to Partoska

Snapshot Sep 30, 2026 · 22:59 UTC · version 1.2.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "partoska",
  "description": "Help users manage Partoska.com photo-sharing events through the Partoska MCP server — find and create events, browse/preview/upload/curate photos, approve moderated uploads, share via invite links, QR codes, and printable cards, and design event assets. Use when Partoska MCP tools (e.g. event-query, photo-list) are available in the session.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 480
    },
    {
      "relative_path": "assets/logo.png",
      "size_in_bytes": 93846
    },
    {
      "relative_path": "assets/logo.svg",
      "size_in_bytes": 2683
    },
    {
      "relative_path": "references/design.md",
      "size_in_bytes": 14108
    }
  ],
  "skill_md_contents": "---\nname: partoska\ndescription: Help users manage Partoska.com photo-sharing events through the Partoska MCP server — find and create events, browse/preview/upload/curate photos, approve moderated uploads, share via invite links, QR codes, and printable cards, and design event assets. Use when Partoska MCP tools (e.g. event-query, photo-list) are available in the session.\nlicense: MIT\nmetadata:\n  author: Partoska Laboratory\n  version: \"2.1.1\"\n---\n\n# Partoska Skill\n\n## Usage\n\n- `/partoska` — describe what you want to do; the assistant will pick the right tools\n- `/partoska show me photos from event B-Day`\n- `/partoska create an event for Saturday's BBQ and give me the QR code`\n- `/partoska make a QR stand for the wedding`\n\n## What This Skill Does\n\nThis skill makes you an expert on [Partoska.com](https://partoska.com) — a photo-sharing service for events — through the Partoska MCP server (`https://api.partoska.com/mcp/v1`). It covers finding and managing events, browsing and curating photos, uploading, moderation, and sharing via invite links, QR codes, and printable cards.\n\nThe tools below are available when Partoska MCP tools (e.g. `event-query`, `photo-list`) are visible in the session. If they are not, tell the user to connect their AI assistant to the Partoska MCP server at `https://api.partoska.com/mcp/v1` — exact steps depend on the assistant, typically an \"Add MCP server\" or \"Connectors\" setting.\n\n---\n\n## Available Tools\n\nTool names below are the canonical Partoska MCP tool names. Different MCP clients may surface them under host-specific prefixes (e.g. `partoska/event-query`, `mcp.partoska.event-query`) — match by the trailing tool name. Output schemas are defined by the server — consult each tool's schema for exact field names and types.\n\n### Discovery\n\n- **`event-query`** — search and list events with rich metadata. Use this as the primary entry point when you need to find an event by name, sort results, limit result count, or inspect event attributes such as admin/favorite/public/moderated state and guest/photo counts. Returns `url` per event — use it to retrieve the invite URL without a separate tool call.\n- **`search`** — full-text search across events. Narrower than `event-query`; reach for it when the user gives a free-form query like \"Birthday 2024\" without specifying which field to match.\n- **`fetch`** — ChatGPT-compatible detailed event fetch by event ID. Use it when a client expects the simplified `id`/`title`/`text`/`url` result shape; prefer `event-query` or `event-browse` for richer structured data.\n\n### Event Lifecycle\n\n- **`event-create`** — create a new event by name. Returns the populated event record.\n- **`event-update`** — partially update an event. Send only the fields you intend to change (`name`, `public`, `favorite`, `moderated`, `from`/`to`).\n\n### Photo Inspection & Curation\n\n- **`photo-list`** — list photos for a given event. Use to enumerate before previewing or curating. Check `isApproved` to identify pending photos in a moderated event.\n- **`photo-gallery`** — open an event's interactive photo gallery with metadata, favorite state and count, and navigation. Call it once with a starting photo, omit `includeData` (or leave it `false`), and let the user browse through the MCP App; the widget fetches preview binaries without loading them into model context. For a full-quality download link, use `photo-link`.\n- **`photo-link`** — returns a one-time download URL for a photo. Use when the user explicitly needs to save or download the file. Set `preview = false` (default) for the full-quality original; `preview = true` for a compressed thumbnail.\n- **`photo-picker`** — upload a photo or video to an event; also ships as an MCP App widget. When called with only `id`, returns event context (`event`, `name`, `url`, `guests`, `photos`, `allowVideo`, `quota`, `photo: null`) so the MCP App can present the upload UI. When called with `id` + `type` (`image/jpeg`, `video/mp4`, or `video/quicktime`) + `data` (base64 data URL, e.g. `data:image/jpeg;base64,...`), performs the upload and returns the new photo identifier in the `photo` field. In moderated events the upload is created as unapproved until a moderator approves it. **Prefer the MCP App widget path (call with `id` only and let the App handle the rest) over passing `data` directly whenever the client supports it** — base64-encoded photos and videos are large and will bloat the context window.\n- **`photo-favorite`** — toggle favorite on a photo.\n- **`photo-approve`** — approve a photo in a moderated event (requires moderator permission).\n\n> **Photo access note.** `photo-list`, `photo-gallery`, `photo-picker`, and `photo-link` need guest access on a public event, and contributor access on a non-public one.\n\n> **Quota note.** The `quota` returned by `photo-picker` is the event's *remaining* upload capacity in bytes, not a fixed ceiling. \n\n### Sharing\n\n- **`event-browse`** — fetch event details with an inline QR code. Returns the `qrCode` field in the requested `format` (`svg` or `utf8`), plus `url`, favorite state, and `previous`/`next` event IDs for navigation. Also ships as an MCP App widget when the client supports it. Use this when the user wants event details, an inline QR preview, or event navigation. For SVG, save the content to a file (or embed it in an SVG/HTML deliverable) before presenting; for UTF-8, render it directly in a code block.\n- **`event-qr-link`** — returns a one-time download URL for a full-quality QR code file (PNG, SVG, or UTF-8). Use when the user needs to download or save the QR file. For in-context QR preview, use `event-browse` instead.\n- **`card-gallery`** — open the interactive share-card gallery. These are **pre-built themed cards** containing the event's QR code, intended to prompt guests to upload photos — not general-purpose design assets. Call it once with a starting design, omit `includeData` (or leave it `false`), and let the user browse designs through the MCP App; the widget fetches preview binaries without loading them into model context. Requires event admin access and `design`; optional values are `locale` (`en`, `cs`, `sk`, `pl`, `ru`, or `es`), `layout` (`single` or `business`), `paper` (`a4` or `letter`), and boolean `background`.\n  - `bday` — birthday parties and anniversaries\n  - `tech` — corporate events, conferences, hackathons\n  - `match` — sport events and tournaments\n  - `forest` — outdoor and nature-themed events\n  - `garden` — garden parties, spring celebrations, floral events\n  - `gold` — luxury and elegant occasions\n  - `romantic` — romantic events, weddings, proposals\n  - `silver` — elegant occasions with a cool, modern look\n  - `neon` — parties and nightlife events\n  - `nineties` — retro parties and 1990s-themed events\n  - `cottage` — cottage getaways, cabin weekends, countryside retreats\n- **`card-link`** — returns a one-time download URL for a full-quality card file. Requires event admin access and `design`; accepts `format` (`pdf` or `jpg`) plus the same locale, layout, paper, and background options as `card-gallery`. Use when the user needs to download or print the card. For an in-context preview, use `card-gallery` instead.\n\n> **MCP Apps note.** `event-browse`, `photo-gallery`, `photo-picker`, and `card-gallery` ship as MCP App widgets — prefer them for browsing, navigating, previewing, and uploading. Open a gallery once, keep `includeData` omitted or `false`, and let the user browse inside the App; do not loop over gallery items with repeated tool calls. Use `event-qr-link`, `photo-link`, and `card-link` when the user explicitly needs a download URL for the file.\n\n> **One-time URL note.** The URLs returned by `photo-link`, `card-link`, and `event-qr-link` are single-use and expire. They are the primary path to full-quality files when the AI client is allowed to fetch and save from URLs; when it isn't, hand the URL to the user to open themselves. Never embed a one-time URL into a deliverable (e.g. an HTML page) that will be opened more than once.\n\n---\n\n## Common Workflows\n\n### Workflow: Find an Event and Inspect Its Media\n\n```\n1. event-query (query = \"Birthday\")\n   → take the first matching event id\n2. photo-list (id = <id>)\n   → enumerate media items\n3. photo-gallery (id = <id>, photo = <photo-id>)\n   → open the MCP App once; the user browses and selects photos inside the gallery\n```\n\nWhen the user says \"show me photos from the Birthday event,\" resolve the event with `event-query` (or `search` for free-form input), list the media, and open `photo-gallery` with a starting item. Let the user browse in the widget; don't issue one tool call per photo.\n\n### Workflow: Approve All Pending Media in a Moderated Event\n\n```\n1. photo-list (id = <id>)\n   → filter for items where isApproved == false\n2. photo-approve for each pending photo id\n```\n\nIterate the call rather than batching — there is no bulk approve tool.\n\n### Workflow: Curate Favorites Across an Event\n\n```\n1. photo-list (id = <id>)\n   → choose a starting photo id\n2. photo-gallery (id = <id>, photo = <photo-id>)\n   → open the MCP App once; the user browses and toggles favorites in the gallery\n```\n\nThe gallery widget invokes `photo-favorite` for the user's toggles. Call `photo-favorite` directly only when the App is unavailable or the user provides a specific photo ID without needing to browse.\n\n### Workflow: Create and Share a New Event\n\n```\n1. event-create (name = \"Summer BBQ\")\n   → capture the returned event id\n2. event-browse (id = <id>, format = \"svg\" or \"utf8\")\n   → shows event details with inline QR; svg: save to file or embed; utf8: render directly\n   OR event-qr-link (id = <id>, format = \"png\")\n   → returns a one-time download URL; download it only if the AI client allows that, otherwise hand it to the user\n```\n\n---\n\n## Beyond MCP: the p6a CLI\n\nPartoska also ships **p6a**, a command-line tool available at [github.com/partoska/p6a-cmd](https://github.com/partoska/p6a-cmd) and installable, e.g., via `npm install -g @partoska/p6a`. MCP covers nearly everything in-session; point users to p6a only when:\n\n- **Bulk backup.** There is no MCP equivalent of `p6a sync`, which downloads all events into organized subdirectories and safely skips already-downloaded files.\n- **Full-quality files the client can't fetch.** When the AI client cannot fetch and save from the one-time URLs returned by `photo-link` / `card-link` / `event-qr-link`, hand the URL to the user — or for many files, suggest `p6a download -e <event-id> -t <dir>`.\n- **Scripts, cron jobs, CI.** Anything the user will run outside an agent session must use `p6a` commands — MCP tools only exist inside an active agent session.\n- **Photo-driven design assets.** Photo posters, collages, and photo recaps are built from full-quality originals that won't fit the context inline — resolve the event in-session, then hand off to `p6a download` (see `references/design.md`).\n\nEvent IDs are UUIDs and interchangeable between surfaces — an id obtained from `event-query` works in `p6a download -e <id>` without translation.\n\n---\n\n## Design Tasks\n\nPartoska users frequently ask for design assets tied to their events — most commonly **QR stands** (table signage that points guests to the event's photo upload page), **posters**, **tickets**, **invitations**, and screen-displayed assets like **static HTML pages** or **slideshow slides** (projector / TV / lobby display).\n\nWhen the user requests any of these, **load `references/design.md` first** before producing anything. It covers what is deliverable in-session — QR-only assets (stands, HTML pages, slides, invitations, tickets) are the sweet spot since the QR arrives as inline SVG via `event-browse`, and built-in share cards present best through the interactive `card-gallery` MCP App widget — plus vibe inference from event metadata, asset-specific conventions, and when to route photo-driven assets (photo posters, collages, photo recaps) to the p6a CLI.\n\n---\n\n## Tips\n\n- Treat MCP responses as structured data defined by each tool's output schema; don't assume field names.\n- Need an invite URL? `event-query` and `event-browse` both return `url` — no separate tool call needed.\n- Use `fetch` only for simplified event details by ID (ChatGPT-compatible result shape).\n- If the user will rerun the work later (e.g. nightly), don't perform it via MCP — produce a `p6a` script instead so it survives outside the session.\n"
}

SHA-256: 57be85409aadd55f8fff3ad0f73cd0b518b76c4a110f7e6c6c4f69840ddddeb4