_ registry / mcp http-sse · checked 24m ago

picorn

https://picorn.com

Registry code: bd235a96da8560ce

api record

Picorn image design and existing-video publishing tools. FASTEST WAY TO GREAT POSTS: Picorn Blueprint Language (PBL). Read picorn_blueprint_spec and picorn_blueprint_examples once, write a PBL document yourself, run picorn_blueprint_compile (returns errors, scene report, ASCII wireframe and a rendered preview in seconds), fix it with short #id patch lines on the same blueprintId until errors=0 and the preview looks finished, then picorn_blueprint_create_file turns it into an editable editor file. For a series of related files (a campaign or brand project) start with picorn_projects_create,…

endpoint
https://picorn.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is picorn live?
Yes — it answered the hub's last check (checked 24m ago). It answered 98% of checks over the last 30 days.
Is picorn free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does picorn have?
44 tools: picorn_generate_image, picorn_editor_delete_layers, picorn_search_library, picorn_search_icons, picorn_campaigns_create, picorn_editor_reorder_layers, picorn_files_list, picorn_editor_ungroup_layers, ….
Is picorn safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
97.7%

90 days 97.7%· all time 97.7%

latency
330ms

last good check

priced tools
0

of 44 tools

_ answered our checks, 90 days 385 checks · signed record
  • down → live
  • degraded → down· HTTP 530
  • live → degraded· HTTP 530
  • degraded → live
  • live → degraded· HTTP 502
_ what it is for
used for
  • generate an image from a prompt
  • edit an image
  • create a marketing design project
  • render slideshows and designs
  • create a video project
takes → gives
text, images, video, code → images, video, data
tools
4 reads18 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 44 tools
3 open3 auth-required 38 never probed 6 of 44 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • picorn_capabilities reads open 45d ago

    List live canvas formats, fonts, layouts, image models, GPU reachability and fair-use limits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • picorn_blueprint_examples open 23d ago

    Return reviewed PBL showcase posts (photo-led post, tips carousel with master, type-led story, typographic event) that compile with 0 errors. Use them to learn proven structure, spacing and effect choices; write new copy, colours and fonts from the brief instead of reusing theirs.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • picorn_blueprint_spec open 23d ago

    Return the complete Picorn Blueprint Language (PBL) spec: syntax, design rules, a full example and the repair patch rules. Read it once before writing PBL. PBL is a compact line language: regions + stacks, library asset search, components, every editor effect. The engine measures text with real fonts and does all geometry.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • picorn_campaigns_list auth-required 23d ago

    List the user's campaigns with their ideas and the files linked to each idea. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • picorn_account_status auth-required 23d ago

    Show which Picorn account the MCP is connected to and its connected social media accounts. Requires a personal Picorn access token; without one it explains how to connect.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • picorn_media_list auth-required 23d ago

    List the photos the user already uploaded to Picorn (newest first), so a post can be built from them without uploading again. Returns mediaId, imageUrl, thumbnailUrl and pixel size per photo. Pass a mediaId to picorn_editor_import_image, or use the imageUrl directly in an image layer. includeGenerated: true also lists images Picorn generated for the user. Page with nextCursor. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Default 30."
        },
        "cursor": {
          "type": "string",
          "description": "nextCursor from the previous page."
        },
        "includeGenerated": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • picorn_generate_image changes data unknown never probed

    Generate a new picture on fal. kind photo (default) = Krea 2 Turbo: photos, people, places, moods and other emotional images. kind text = GPT Image 2.5 Flare: only for mockups with a lot of legible lettering. Library first: browse with picorn_search_library (or use search lines in picorn_blueprint_compile), and generate only when the design would benefit massively from a new picture (no fitting hero photo exists). Generation needs a connected Picorn account with credits; it is charged at 1.2 × the fal price (a Krea 2 Turbo picture of about 1 MP costs about 1 ct). Returns an inline preview, the public imageUrl and chargedCents.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "prompt"
      ],
      "properties": {
        "kind": {
          "enum": [
            "photo",
            "text"
          ],
          "type": "string",
          "description": "photo (default, Krea 2 Turbo) or text (GPT Image 2.5, lettering-heavy mockups)."
        },
        "width": {
          "type": "integer",
          "maximum": 2048,
          "minimum": 256
        },
        "height": {
          "type": "integer",
          "maximum": 2048,
          "minimum": 256
        },
        "prompt": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "description": "Detailed English description of the picture."
        },
        "preview": {
          "type": "boolean"
        },
        "aspectRatio": {
          "enum": [
            "1:1",
            "4:3",
            "3:4",
            "16:9",
            "9:16",
            "4:5",
            "5:4",
            "2:3",
            "3:2"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 51 lines
  • picorn_editor_delete_layers changes data unknown never probed

    Delete one or more layers and clean their group references.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "objectIds"
      ],
      "properties": {
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "objectIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • picorn_search_library unknown never probed

    LIBRARY FIRST. Browse Picorn's own libraries (photos, wallpapers, vector illustrations, ~300k icons, stickers, textures, shapes, badges) and SEE the hits as one numbered contact sheet. Free, also without an account. This is the same search the Blueprint engine runs: once a hit fits, write `search q1 <kind> "<words>"` with the same kind and words in picorn_blueprint_compile and the compile gets these pictures in this order (wallpaper → background, vector → illustration). Words may be German or English; short concrete English nouns match best. Generating a picture costs credits and is the exception: only when nothing here fits and the design would benefit massively.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "kind",
        "q"
      ],
      "properties": {
        "q": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "kind": {
          "enum": [
            "photo",
            "background",
            "wallpaper",
            "illustration",
            "vector",
            "icon",
            "sticker",
            "texture",
            "shape",
            "badge"
          ],
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "maximum": 12,
          "minimum": 1
        },
        "orientation": {
          "enum": [
            "portrait",
            "landscape",
            "square"
          ],
          "type": "string"
        },
        "transparent": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
    arguments 47 lines
  • picorn_search_icons unknown never probed

    Search Picorn's vector icon library before composing a design.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 25,
          "minimum": 1
        },
        "query": {
          "type": "string",
          "minLength": 1
        },
        "style": {
          "enum": [
            "mono",
            "color"
          ],
          "type": "string"
        },
        "visualStyle": {
          "enum": [
            "lineart",
            "monoline",
            "rounded",
            "bulky",
            "sketch",
            "artistic",
            "geometric",
            "stamp"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 39 lines
  • picorn_campaigns_create unknown never probed

    Create a campaign in the user's Picorn account from agent-authored post ideas (no model is called). The campaign lives in a marketing project: pass workspaceProjectId + workspaceProjectKey from picorn_projects_create, or omit both to create a new project named after the topic. Returns campaignId and one ideaId per idea. Create each post file with the same workspace plus campaignId + ideaId, then schedule it with picorn_posts_schedule. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "topic"
      ],
      "properties": {
        "ideas": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "hook"
            ],
            "properties": {
              "cta": {
                "type": "string",
                "maxLength": 300
              },
              "hook": {
                "type": "string",
                "maxLength": 500,
                "minLength": 1
              },
              "angle": {
                "type": "string",
                "maxLength": 300
              },
              "title": {
                "type": "string",
                "maxLength": 200
              },
              "caption": {
                "type": "string",
                "maxLength": 2200,
                "description": "Post caption for this idea."
              }
            },
            "additionalProperties": false
          },
          "maxItems": 50
        },
        "topic": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1
        },
        "description": {
          "type": "string",
          "maxLength": 1000,
          "description": "Campaign goal, audience or promise."
        },
        "workspaceProjectId": {
          "type": "string"
        },
        "workspaceProjectKey": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 61 lines
  • picorn_editor_reorder_layers changes data unknown never probed

    Set layer order. objectIds are bottom-to-top; omitted existing IDs retain their relative order on top.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "objectIds"
      ],
      "properties": {
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "objectIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • picorn_files_list unknown never probed

    List the user's own Picorn files (posts and slideshows, newest first) with fileId, title, project, aspect ratio, thumbnail and editorUrl. No workspace key is needed. Any fileId can be scheduled with picorn_posts_schedule; files made in the web editor post the slides Picorn last rendered for them. Files with mcpEditable: true can also be changed with the picorn_editor_* tools. Page with nextCursor. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 50,
          "minimum": 1,
          "description": "Default 20."
        },
        "cursor": {
          "type": "string",
          "description": "nextCursor from the previous page."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • picorn_editor_ungroup_layers changes data unknown never probed

    Remove a group while preserving all child layers.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "groupId"
      ],
      "properties": {
        "groupId": {
          "type": "string",
          "minLength": 1
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • picorn_projects_inspect reads unknown never probed

    List every editor file, imported asset, and the project brand profile with named colors and saved logos or visual references. File entries include their current thumbnail, status, creation URL and canonical /studio/editor?runId=... editorUrl. Always give the user that editorUrl.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "workspaceProjectId",
        "workspaceProjectKey"
      ],
      "properties": {
        "workspaceProjectId": {
          "type": "string",
          "minLength": 1
        },
        "workspaceProjectKey": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • picorn_editor_add_layer changes data unknown never probed

    Add a native editor layer. Use text, image, shape, group and qr layers for static designs. SVG uses an image layer with isSvg:true. Position is the layer CENTER in canvas pixels. The layer accepts the same persisted fields as /editor: transforms, opacity, blendMode, text styles/effects/rich text, image filters/customFilters/crop/masks/local effects/perspective, shape gradients/strokes/shadows, QR styling and persisted editor fields. Returns the changed slide as an inline preview automatically. Does not create or render video.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "layer"
      ],
      "properties": {
        "layer": {
          "type": "object",
          "description": "Native layer object. At minimum provide type and its content field.",
          "additionalProperties": {}
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • picorn_editor_duplicate_layer changes data unknown never probed

    Duplicate a non-group layer, including all style, filter, effect, mask, and animation properties.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "objectId"
      ],
      "properties": {
        "offsetX": {
          "type": "number"
        },
        "offsetY": {
          "type": "number"
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "objectId": {
          "type": "string",
          "minLength": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • picorn_campaigns_inspect unknown 23d ago

    Read one campaign with its ideas and linked file IDs. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaignId"
      ],
      "properties": {
        "campaignId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • picorn_editor_align_layers changes data unknown never probed

    Align positioned layers to their shared left, center, right, top, middle, or bottom bound.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "objectIds",
        "mode"
      ],
      "properties": {
        "mode": {
          "enum": [
            "left",
            "center",
            "right",
            "top",
            "middle",
            "bottom"
          ],
          "type": "string"
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "objectIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 2
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 39 lines
  • picorn_social_accounts_connect unknown never probed

    Create an OAuth link that connects a social media account to the user's Picorn account. Give the authUrl to the user to open in a browser, then check picorn_account_status. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "platform"
      ],
      "properties": {
        "platform": {
          "enum": [
            "instagram",
            "tiktok",
            "facebook",
            "x",
            "linkedin",
            "youtube",
            "pinterest",
            "threads"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • picorn_projects_update changes data unknown never probed

    Update the name, description, or named color scheme of a marketing project, then return its complete file, asset, and brand index.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "workspaceProjectId",
        "workspaceProjectKey"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1
        },
        "brandColors": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "name",
              "hex"
            ],
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              "hex": {
                "type": "string",
                "pattern": "^#[0-9a-f]{3}([0-9a-f]{3})?$"
              },
              "name": {
                "type": "string",
                "maxLength": 40,
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "maxItems": 12
        },
        "description": {
          "type": "string",
          "maxLength": 1000
        },
        "workspaceProjectId": {
          "type": "string",
          "minLength": 1
        },
        "workspaceProjectKey": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 57 lines
  • picorn_design_image changes data unknown never probed

    CODEX-ONLY. The calling Codex supplies the complete SVG, including copy and layout. Picorn resolves declared placeholders and renders it through Fabric/SVG. No internal language or design model is called.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "svg"
      ],
      "properties": {
        "svg": {
          "type": "string",
          "minLength": 1,
          "description": "Complete Codex-authored SVG with a viewBox."
        },
        "width": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64
        },
        "height": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64
        },
        "preview": {
          "type": "boolean",
          "description": "Return an inline preview. Default true."
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • picorn_generate_vector_assets changes data unknown never probed

    Use Picorn's native editor engine: first generate raster artwork with self-hosted Z-Image Turbo on ComfyUI, remove its background, then convert it through the bundled multi-colour SVG converter. Generates five variants, selects the strongest result and returns the top three. Signets also return one layered editor file that displays the three shortlisted SVGs inside the same native project. Use this tool for every newly generated signet and custom icon.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "prompt",
        "kind"
      ],
      "properties": {
        "kind": {
          "enum": [
            "signet",
            "icon"
          ],
          "type": "string"
        },
        "prompt": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1
        },
        "palette": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^#[0-9a-f]{6}$"
          },
          "maxItems": 7,
          "minItems": 2
        },
        "numColors": {
          "type": "integer",
          "maximum": 7,
          "minimum": 2
        },
        "projectName": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1
        },
        "workspaceProjectId": {
          "type": "string"
        },
        "workspaceProjectKey": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 48 lines
  • picorn_edit_image changes data unknown never probed

    Edit an existing picture with GPT Image 2.5 Flare on fal: retouch, change background, add or remove objects, restyle. Pass imageUrl (Picorn storage, Dropbox/Drive share link) or imageBase64. Needs a connected Picorn account with credits; charged at 1.2 × the fal price. Returns an inline preview, the public imageUrl and chargedCents.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "prompt"
      ],
      "properties": {
        "prompt": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "description": "The edit instruction."
        },
        "preview": {
          "type": "boolean"
        },
        "imageUrl": {
          "type": "string"
        },
        "imageBase64": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • picorn_render_svg changes data unknown never probed

    Render your SVG through Picorn with real typography and declarative image workers. Put placeholder <rect> elements inside the SVG and choose their backend with data-clipart-engine="svg-converter" (fresh ComfyUI image, background removal, then Picorn PNG→SVG vectorisation), data-clipart-engine="z-image-turbo" (raster photo/cutout), or data-clipart-engine="library" (existing vector only). Include data-clipart-prompt; use data-clipart-num-colors="1..7" for svg-converter, and data-clipart-keep-bg="true" for a full scene. Picorn resolves all placeholders internally; never call the admin converter or return generated base64 yourself. Returns an inline preview and public creationUrl.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "svg"
      ],
      "properties": {
        "svg": {
          "type": "string",
          "minLength": 1
        },
        "width": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64
        },
        "height": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64
        },
        "preview": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • picorn_editor_import_image unknown never probed

    Import a photo into Picorn storage, then use the returned imageUrl in one or more native image layers. Three sources: mediaId (a photo the user already uploaded to Picorn, from picorn_media_list; needs the access token), imageUrl (Dropbox or Google Drive share links work as-is when shared with "anyone with the link", as do Picorn, Google Cloud Storage, fal and Wikimedia URLs; up to 50 MB), or imageBase64 (up to 15 MB). Camera originals are rotated by EXIF and downscaled to 4096 px on the long side; opaque photos are stored as JPEG, transparent images as PNG. Prefer mediaId or a share link over base64 for full-size photos. With an access token the asset lands in a workspace owned by the user.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 160,
          "description": "Asset name shown in the marketing project."
        },
        "mediaId": {
          "type": "string",
          "description": "A mediaId from picorn_media_list (the user's own Picorn uploads)."
        },
        "preview": {
          "type": "boolean",
          "description": "Return an inline preview. Default true."
        },
        "imageUrl": {
          "type": "string",
          "description": "An image URL or a Dropbox / Google Drive share link."
        },
        "imageBase64": {
          "type": "string",
          "description": "Image bytes as base64, with or without a data:image/... prefix."
        },
        "workspaceProjectId": {
          "type": "string"
        },
        "workspaceProjectKey": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • picorn_editor_create_project changes data unknown never probed

    Create a persistent native Picorn editor project. For a finished static layout, pass svg: a complete SVG containing text/shapes plus declarative data-clipart placeholders. Picorn runs the selected engines in the background, stores the generated assets, converts the SVG into editable native layers, and returns a populated project in one call. Omit svg only when you intentionally want an empty slide for incremental layer operations. Returns projectId, slideId, exact canvas dimensions, and the canonical /studio/editor?runId=... editorUrl that must be included in the final answer.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "svg": {
          "type": "string",
          "maxLength": 400000,
          "minLength": 1,
          "description": "Complete SVG layout. Generated visuals are <rect data-clipart=\"true\" data-clipart-engine=\"svg-converter|z-image-turbo|library\" data-clipart-prompt=\"...\" ... /> placeholders resolved internally."
        },
        "title": {
          "type": "string",
          "maxLength": 160
        },
        "width": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64,
          "description": "Required only for custom canvases."
        },
        "height": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64,
          "description": "Required only for custom canvases."
        },
        "ideaId": {
          "type": "string",
          "description": "Campaign idea this file realises."
        },
        "background": {
          "type": "object",
          "description": "CanvasBackground: color, gradient, texture, or transparent.",
          "additionalProperties": {}
        },
        "campaignId": {
          "type": "string",
          "description": "Campaign from picorn_campaigns_create (needs a Picorn access token). Pass together with ideaId."
        },
        "aspectRatio": {
          "enum": [
            "1:1",
            "2:3",
            "3:4",
            "4:3",
            "4:5",
            "5:4",
            "9:16",
            "16:9",
            "21:9",
            "1:2",
            "custom"
          ],
          "type": "string"
        },
        "workspaceProjectId": {
          "type": "string",
          "description": "Marketing project that will contain this editor file."
        },
        "workspaceProjectKey": {
          "type": "string",
          "description": "Access key returned by picorn_projects_create."
        }
      },
      "additionalProperties": false
    }
    arguments 66 lines
  • picorn_editor_create_slideshow changes data unknown never probed

    Create, persist and render a complete 1–20 slide Picorn file in one deterministic call from finished agent-authored SVG and/or native editable layers. The calling agent is the only design model: this path does not call /api/generate-svg, Gemini, OpenRouter, or another LLM. Work is bounded before persistence to 50,000,000 total canvas pixels and 1,000 total layers. Fair-use cost is one unit per four slides, rounded up. Returns every persistent render URL, an inline contact-sheet preview, and the canonical editorUrl. Response provenance is modelProvider="calling-agent" and externalLlmCalls=0.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "slides"
      ],
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 80,
            "minLength": 1
          },
          "maxItems": 30
        },
        "title": {
          "type": "string",
          "maxLength": 160
        },
        "width": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64
        },
        "format": {
          "enum": [
            "png",
            "jpeg"
          ],
          "type": "string"
        },
        "height": {
          "type": "integer",
          "maximum": 4096,
          "minimum": 64
        },
        "ideaId": {
          "type": "string",
          "description": "Campaign idea this slideshow realises."
        },
        "slides": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "svg": {
                "type": "string",
                "maxLength": 120000,
                "minLength": 1,
                "description": "Complete self-contained agent-authored SVG with a positive viewBox; no scripts, events, external assets, or placeholders."
              },
              "role": {
                "enum": [
                  "hook",
                  "empathy",
                  "insight",
                  "cta",
                  "other",
                  "single",
                  "problem",
                  "agitation",
                  "solution",
                  "proof",
                  "benefit",
                  "story"
                ],
                "type": "string"
              },
              "layers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": {}
                },
                "maxItems": 150,
                "description": "Native editable Picorn layers in deterministic bottom-to-top order. SVG, when present, is the bottom layer."
              },
              "background": {
                "type": "object",
                "additionalProperties": {}
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "minItems": 1
        },
        "caption": {
          "type": "string",
          "maxLength": 2200
        },
        "quality": {
          "type": "number",
          "maximum": 1,
          "minimum": 0.1
        },
        "background": {
          "type": "object",
          "description": "Default background for slides that omit their own background.",
          "additionalProperties": {}
        },
        "campaignId": {
          "type": "string",
          "description": "Campaign from picorn_campaigns_create (needs a Picorn access token). Pass together with ideaId."
        },
        "aspectRatio": {
          "enum": [
            "1:1",
            "2:3",
            "3:4",
            "4:3",
            "4:5",
            "5:4",
            "9:16",
            "16:9",
            "21:9",
            "1:2",
            "custom"
          ],
          "type": "string"
        },
        "workspaceProjectId": {
          "type": "string"
        },
        "workspaceProjectKey": {
          "type": "string"
        },
        "transparentBackground": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
    arguments 134 lines
  • picorn_editor_inspect_project reads unknown never probed

    Read the complete project, including every slide, layer, property, z-index, and latest rendered image URL.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId"
      ],
      "properties": {
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • picorn_editor_add_slide unknown never probed

    Add another slide to an editor project. Projects support up to 20 slides. Returns the new slide as an inline preview.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId"
      ],
      "properties": {
        "role": {
          "enum": [
            "hook",
            "empathy",
            "insight",
            "cta",
            "other",
            "single",
            "problem",
            "agitation",
            "solution",
            "proof",
            "benefit",
            "story"
          ],
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        },
        "background": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • picorn_editor_update_slide changes data unknown never probed

    Change a slide background, semantic role, or image prompt. Returns the changed slide as an inline preview.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId"
      ],
      "properties": {
        "role": {
          "type": "string"
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        },
        "background": {
          "type": "object",
          "additionalProperties": {}
        },
        "imagePrompt": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • picorn_editor_delete_slide unknown never probed

    Delete a slide and its layers. A project always keeps at least one slide.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId"
      ],
      "properties": {
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 19 lines
  • picorn_editor_update_layer unknown never probed

    Patch any editable property on a layer: content, position, size, transform, style, filters, masks, effects, blend mode, visibility, lock state, SVG overrides, timing, audio, or keyframes. Returns the changed slide as an inline preview automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "objectId",
        "patch"
      ],
      "properties": {
        "patch": {
          "type": "object",
          "additionalProperties": {}
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "objectId": {
          "type": "string",
          "minLength": 1
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        },
        "commitType": {
          "enum": [
            "move",
            "scale",
            "rotate",
            "transform",
            "style",
            "content",
            "lock",
            "visibility",
            "bulk-style"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 43 lines
  • picorn_editor_group_layers changes data unknown never probed

    Create the same metadata group used by the visual editor. Grouping preserves world positions and render output.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "objectIds"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "objectIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 2
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • picorn_editor_distribute_layers changes data unknown never probed

    Evenly distribute three or more positioned layers horizontally or vertically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId",
        "slideId",
        "objectIds",
        "axis"
      ],
      "properties": {
        "axis": {
          "enum": [
            "horizontal",
            "vertical"
          ],
          "type": "string"
        },
        "slideId": {
          "type": "string",
          "minLength": 1
        },
        "objectIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 3
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • picorn_editor_render_project changes data unknown never probed

    Render selected or all slides through Picorn's real Fabric editor pipeline. Returns persistent public image URLs, a multi-page PDF, or a page-faithful DOCX download, creationUrl, and the canonical editorUrl that must be given to the user. DOCX preserves the visual layout as page images; edit text and layers in SEEZ Editor. Static renders include text, image/SVG, shape, group and QR layers; video/audio timing remains editable project data for the video editor.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "projectId"
      ],
      "properties": {
        "format": {
          "enum": [
            "png",
            "jpeg",
            "pdf",
            "docx"
          ],
          "type": "string"
        },
        "quality": {
          "type": "number",
          "maximum": 1,
          "minimum": 0.1
        },
        "slideIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "projectId": {
          "type": "string",
          "minLength": 1
        },
        "pageWidthMm": {
          "type": "number",
          "maximum": 2000,
          "minimum": 10
        },
        "pageHeightMm": {
          "type": "number",
          "maximum": 2000,
          "minimum": 10
        },
        "transparentBackground": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
    arguments 47 lines
  • picorn_search_areas reads unknown never probed

    Find approved torn, wavy, blob, banner and other decorative shapes for a design.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 50,
          "minimum": 1
        },
        "style": {
          "type": "string"
        },
        "aspect": {
          "enum": [
            "square",
            "tall",
            "wide"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • picorn_blueprint_compile unknown 23d ago

    Compile a PBL document you wrote (pbl) or apply #id patch lines to an earlier compile (blueprintId + patch). No model is called: Picorn searches the curated asset libraries, measures text with the real fonts, lays out, reviews and renders. Returns blueprintId, errors/warnings with codes and fixes, the scene report + ASCII wireframe (exact boxes, colours, effects, search hits), the canonical source and an inline preview of every slide. Patches reuse the cached asset searches, so iterate with small patches until errors=0 and the preview is visually finished. blueprintId alone re-sends the current revision (preview and report) without compiling. Set preview:false for an even faster text-only check. A line `search q2 generate photo "…"` (or `generate text` for lettering-heavy mockups) creates a NEW picture as ref when the library has nothing fitting; Library first: browse with picorn_search_library (or use search lines in picorn_blueprint_compile), and generate only when the design would benefit massively from a new picture (no fitting hero photo exists). Generation needs a connected Picorn account with credits; it is charged at 1.2 × the fal price (a Krea 2 Turbo picture of about 1 MP costs about 1 ct). Generated pictures are cached in the blueprint, so patches never pay twice.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "pbl": {
          "type": "string",
          "maxLength": 60000,
          "description": "Full PBL document starting with \"pbl v1\". Creates a new blueprintId."
        },
        "patch": {
          "type": "string",
          "maxLength": 20000,
          "description": "Repair lines, e.g. \"#title size=96 color=primary\" or \"#n12 delete\"."
        },
        "preview": {
          "type": "boolean",
          "description": "Render the inline preview. Default true."
        },
        "blueprintId": {
          "type": "string",
          "description": "From an earlier compile, together with patch (or alone to see the current revision again)."
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • picorn_blueprint_create_file unknown never probed

    Turn a compiled blueprintId into a persistent, fully editable Picorn editor file (native text, shape and image layers through the editor importer), render every slide and return the editorUrl, render URLs and a contact sheet. With a Picorn access token the file lands in your account and can be linked to a campaign idea (campaignId + ideaId) and scheduled with picorn_posts_schedule.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "blueprintId"
      ],
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 80,
            "minLength": 1
          },
          "maxItems": 30
        },
        "title": {
          "type": "string",
          "maxLength": 160
        },
        "ideaId": {
          "type": "string"
        },
        "caption": {
          "type": "string",
          "maxLength": 2200,
          "description": "Post caption stored on the file and used when scheduling."
        },
        "campaignId": {
          "type": "string"
        },
        "allowErrors": {
          "type": "boolean",
          "description": "Create the file although the last compile still reports errors. Default false."
        },
        "blueprintId": {
          "type": "string",
          "minLength": 1
        },
        "workspaceProjectId": {
          "type": "string"
        },
        "workspaceProjectKey": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 48 lines
  • picorn_posts_upload_video unknown never probed

    Upload an existing MP4, WebM or MOV clip to your own Picorn account. No video generation, editing or rendering. Pass raw mediaBase64 and contentType; maximum 15 MB decoded. Download a licensed source clip in your client first; a webpage URL is not video bytes. Returns fileId, mediaUrl and published:false. Inspect the clip, then publish with picorn_posts_schedule using that fileId, exact accountIds and publishNow:true or scheduledAt. Upload alone does not publish or incur a social posting charge. Requires account access.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "mediaBase64",
        "contentType"
      ],
      "properties": {
        "caption": {
          "type": "string",
          "maxLength": 2200
        },
        "contentType": {
          "enum": [
            "video/mp4",
            "video/webm",
            "video/quicktime"
          ],
          "type": "string"
        },
        "mediaBase64": {
          "type": "string",
          "maxLength": 20971520,
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • picorn_posts_schedule unknown never probed

    Schedule a finished static Picorn file (one image, or several slides as one carousel), or an existing video from picorn_posts_upload_video, on the user's connected social accounts for the given platforms. Static MCP files are re-rendered; uploaded videos publish the original bytes without rendering. scheduledAt is ISO-8601 with timezone (e.g. 2026-11-02T09:00:00+01:00); publishNow: true posts immediately. Calling it again for the same file reschedules the existing post. Each post costs $0.02 from the Picorn balance. With several accounts on one platform pass accountIds (from picorn_account_status); otherwise the first connected account per platform posts. The file must belong to the user: created while connected with the token, or listed by picorn_files_list. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "fileId",
        "platforms"
      ],
      "properties": {
        "fileId": {
          "type": "string",
          "minLength": 1
        },
        "render": {
          "type": "boolean",
          "description": "Re-render before scheduling. Default true."
        },
        "caption": {
          "type": "string",
          "maxLength": 2200,
          "description": "Overrides the file caption."
        },
        "platforms": {
          "type": "array",
          "items": {
            "enum": [
              "instagram",
              "tiktok",
              "facebook",
              "x",
              "linkedin",
              "youtube",
              "pinterest",
              "threads",
              "bluesky"
            ],
            "type": "string"
          },
          "maxItems": 9,
          "minItems": 1
        },
        "accountIds": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "maxItems": 20,
          "description": "Exact accountIds from picorn_account_status. Each must be on one of the platforms."
        },
        "publishNow": {
          "type": "boolean"
        },
        "scheduledAt": {
          "type": "string"
        },
        "platformConfigurations": {
          "type": "object",
          "description": "Post for Me platform_configurations keyed by platform, e.g. { \"instagram\": { \"placement\": \"timeline\" } }.",
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
    arguments 63 lines
  • picorn_posts_list unknown never probed

    List the user's scheduled and published posts in a time window (ISO dates). Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "to": {
          "type": "string"
        },
        "from": {
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "maximum": 200,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • picorn_posts_cancel unknown never probed

    Cancel the scheduled post of a file before it is published; it is removed from the social media scheduler. Requires a Picorn access token.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "fileId"
      ],
      "properties": {
        "fileId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • picorn_projects_create unknown never probed

    Create a marketing project that can hold many editor files and imported image assets. Keep the returned workspaceProjectId and workspaceProjectKey together; use them when adding every related file.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1
        },
        "brandColors": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "name",
              "hex"
            ],
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              "hex": {
                "type": "string",
                "pattern": "^#[0-9a-f]{3}([0-9a-f]{3})?$"
              },
              "name": {
                "type": "string",
                "maxLength": 40,
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "maxItems": 12
        },
        "description": {
          "type": "string",
          "maxLength": 1000
        }
      },
      "additionalProperties": false
    }
    arguments 48 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id bd235a96da8560ce.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/bd235a96da8560ce/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/bd235a96da8560ce/badge.svg)](https://brick.blue/agent/bd235a96da8560ce?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.