← Files KrumziARCHIVED FILE

plugin.json

11.2 KB · Nov 3, 2026 · 19:06 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "krumzi",
  "version": "0.1.2",
  "description": "Create and edit social media graphics, carousels, thumbnails, flyers and banners.",
  "homepage": "https://www.krumzi.com/mcp",
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Krumzi",
        "developerName": "ACT Software Solutions S.R.L",
        "category": "Creativity",
        "capabilities": [
          "Create editable social media graphics",
          "Turn content into carousels and documents",
          "Use saved brand colors, fonts and logos",
          "Find and edit saved designs",
          "Export still designs and individual pages",
          "Generate raster images"
        ],
        "shortDescription": "Create social media graphics",
        "longDescription": "Create editable social media graphics from a description. Make an Instagram post, turn supplied content into an Instagram or LinkedIn carousel, or design a YouTube thumbnail, flyer or banner.\n\nUse your Krumzi brand colors, fonts and logo. Find saved designs, refine their text and layout, generate images to use in a design, and open the result in Krumzi to edit individual layers.\n\nSave the displayed preview as a JPG, or export single-image designs as PNG, JPG, WebP or PDF. Carousels and multipage documents export through this connection as individual JPG pages. Their previews show the combined design. Standalone AI images are raster assets. Preview and export links are accessible to anyone who has the URL.\n\nConnect an existing Krumzi account with access to the design tools. Krumzi accounts require users to be 18 or older. AI generation and edits use your account's credits; previews and exports can use trial render allowances. This connection supports still images, carousels and documents; it does not create videos, publish or schedule social posts, or manage billing.",
        "websiteURL": "https://www.krumzi.com/mcp",
        "supportURL": "https://help.krumzi.com/articles/5365650-contact-support",
        "privacyPolicyURL": "https://www.krumzi.com/privacy",
        "termsOfServiceURL": "https://www.krumzi.com/terms",
        "defaultPrompt": [
          "Create an Instagram post announcing our new studio opening.",
          "Turn these five tips into an editable LinkedIn carousel.",
          "Design a YouTube thumbnail with the title Make Better Videos."
        ],
        "logo": "./assets/icon.png",
        "composerIcon": "./assets/icon.png"
      },
      "review": {
        "commerce": false,
        "commerce_description": "Users connect an existing Krumzi account and use its existing credits and entitlements. Subscriptions and credits are purchased separately on Krumzi's website. This integration does not sell products or services, display subscription plans, promote upgrades, initiate checkout, or manage billing.",
        "test_cases": {
          "positive": [
            {
              "description": "P1: Brand-aware square Instagram post. Use a dedicated, enabled reviewer account with sufficient design credits and export access. Sample data only. Create an active brand named Review Studio with purple #5A17DD, orange #F98F03, and Inter. No external fixture is needed.",
              "prompt": "Show me my Review Studio brand's saved colors and fonts, then use them to create an editable 1080 by 1080 Instagram post saying 'Our new studio is open' with 'Visit us this Saturday' underneath. Show me the design.",
              "tools_triggered": "list_brands, get_brand_kit, generate_design, get_design",
              "expected_behavior": "Resolve Review Studio with list_brands and get_brand_kit using its returned brand_id. Call generate_design with that brand_id, format=image, width=1080, height=1080 and the requested copy. Poll get_design with the returned design_id no faster than every 20-30 seconds. A pass needs nonzero element_count, the requested copy and brand styling visible in the preview, canvas 1080x1080, and returned preview_url/editor_url. Opening editor_url must show editable layers. A queued or ready status alone is not success; errors must be explained without claiming a completed design."
            },
            {
              "description": "P2: Turn supplied content into a LinkedIn carousel and export each slide. Use a dedicated, enabled reviewer account with sufficient design credits and export access. Sample data only. All source content is in the prompt; no web page or attachment is needed.",
              "prompt": "Turn these tips into a 5-slide LinkedIn carousel, 1080 by 1350 per slide: Start with one customer problem. Show one practical example. Use a clear headline. End with a next step. Give me a separate image for each slide.",
              "tools_triggered": "generate_design, get_design, export_design",
              "expected_behavior": "Call generate_design with format=carousel, slide_count=5, width=1080, height=1350 and the supplied tips. Poll get_design with its design_id at 20-30 second intervals; inspect nonempty content and five coherent slides. Call export_design with the same id and format=urls only after generation has stopped and content is verified. Return exactly five URLs from urls, in slide order. Verify they are accessible images; reported output dimensions must match the downloads and width be at most 1440 px with the slide aspect ratio preserved. Do not claim LinkedIn publication, a PDF, or full-resolution PNG exports."
            },
            {
              "description": "P3: Separate raster image generation plus editable YouTube thumbnail. Use a dedicated, enabled reviewer account with sufficient design credits and export access. Sample data only. The generated asset is the fixture; do not require an external upload.",
              "prompt": "Generate a 16:9 abstract purple-and-orange background image, then use it in an editable 1280 by 720 YouTube thumbnail titled 'Make Better Videos'. Give me the thumbnail as a PNG.",
              "tools_triggered": "generate_ai_image, generate_design, get_design, export_design",
              "expected_behavior": "Call generate_ai_image with aspect_ratio=16:9 and is_graphic=false. Pass the returned image_url in the generate_design prompt with format=image, width=1280 and height=720. Verify via get_design that the finished thumbnail has editable text, nonzero element_count and the requested dimensions; inspect the preview for the title and image use. Export that design_id with format=png and scale=1. Return the actual url and editor_url. The standalone generated background must not be described as an editable layered design. No guessed download URLs or claims of success following a tool error."
            },
            {
              "description": "P4: Minimum-size multipage document and page-image export. Use a dedicated, enabled reviewer account with sufficient design credits and export access. Sample data only. This fictional event uses only supplied text and no invented contact information.",
              "prompt": "Create a two-page A4 portrait flyer for a community sketching workshop. Page 1: 'Sketch Together', Saturday at 10 AM, Riverside Community Room. Page 2: Bring a sketchbook and pencil, all skill levels welcome. Send me an image of each page.",
              "tools_triggered": "generate_design, get_design, export_design",
              "expected_behavior": "Call generate_design with format=document and slide_count=2, using default document sizing or explicit width=1240, height=1754. Poll get_design with its design_id and verify two pages with supplied content and nonzero element_count. The stored wide canvas is 2480x1754. Export with format=urls and return exactly two accessible page-image URLs plus editor_url. Output is social-sized JPEG pages with width at most 1440 px and preserved A4 aspect ratio. Do not claim a print-ready multipage PDF or invent an address, price or booking link."
            },
            {
              "description": "P5: Find, inspect, directly edit and export an existing banner. Use a dedicated, enabled reviewer account with sufficient design credits and export access. Sample data only. Seed one owned image design named Review banner, canvas 1600x600, visible headline 'Opening Soon'. Keep it among the newest 20 designs and ensure its brand remains accessible. No active edit lock.",
              "prompt": "Find my design named Review banner. Change its headline from 'Opening Soon' to 'Now Open', keep the layout and size, and export the updated banner as a PNG.",
              "tools_triggered": "list_designs, get_design, edit_design, get_design, export_design",
              "expected_behavior": "Use list_designs with format=image to resolve the fixture id, then get_design to inspect it. Call edit_design with that design_id and the requested headline-only instruction; this directly commits changes. Poll get_design at 20-30 second intervals and compare against before_preview_url (or the initial get_design preview if the before preview is unavailable), verifying 'Now Open' and unchanged 1600x600 canvas/layout. Export with format=png, scale=1 and the same id. Return actual url/editor_url. An unchanged preview, preview error or mere lock release must not be reported as a successful edit; report uncertainty and do not silently repeat a charged edit."
            }
          ],
          "negative": [
            {
              "description": "N1: Social publishing is outside this MCP connection. Explain that this plugin cannot publish or schedule social posts. Invoke no Krumzi tool, including generate_design/edit_design as a workaround; do not queue a post or claim publication. Context: user already has a finished image and requests only distribution.",
              "prompt": "Publish my finished graphic to Instagram now and schedule the same post on Facebook for tomorrow. Do not create or change any designs."
            },
            {
              "description": "N2: MCP does not create, edit or export video. Explain that limitation and ask whether the user wants a still graphic instead; do not substitute a still image without permission. Invoke no Krumzi tool and do not claim an MP4 or animation was created.",
              "prompt": "Make a 15-second animated YouTube intro with music and moving text, and export it as an MP4."
            },
            {
              "description": "N3: Caption-only writing needs no visual artifact or account access. Answer the caption request directly. Invoke no Krumzi tool, generate no image or design, and consume no Krumzi credits.",
              "prompt": "Write three short Instagram captions for a bakery's opening day. Text only; I don't need a graphic or a saved design."
            }
          ]
        },
        "demo_recording_url": "https://drive.google.com/file/d/1pKSKQUNkBG7HC9a5FmIIenUi1flAQnC3/view?usp=sharing"
      },
      "publication": {
        "countries": [],
        "release_notes": "Initial public submission candidate 0.1.2: create, find, edit and export still designs using saved brand styling or standalone AI images. Includes embedded design and per-page export previews with download buttons, explicit tool output schemas, and strengthened OAuth connection safeguards. Adds the reviewer-accessible demo recording."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: d9fa28960a91122f44d304d40457e25cd3e3c16a5dfa437dc218cff054ad86b5