Skip to main content
Glama

Process local images with direct QuokkaPix settings

process_with_settings

Process local images with direct QuokkaPix settings for custom resize, crop, conversion, compression, watermarking, and multi-step workflows. Downloads outputs and returns QA results.

Instructions

Process local image files with a direct window.QuokkaPixAgent.applySettings payload instead of an official recipe. Use this for custom resize/crop/convert/compress/background/watermark/effects/rename/PDF/favicon/scenario workflows. For multi-step scenarios, prefer settings.steps as [{ tool, settings }]. The adapter downloads the output, writes quokkapix-result.json and returns QA results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appUrlNoOptional QuokkaPix app URL. Defaults to https://quokkapix.com/#agent=1. For safety, only quokkapix.com, localhost and 127.0.0.1 are accepted unless QUOKKAPIX_ALLOW_CUSTOM_APP_URL=1 is set.
headlessNoRun Chromium headless. Defaults to true unless debugging.
maxFilesNoMaximum allowed input files for this direct settings run. Defaults to the selected files count.
settingsYesPayload accepted by window.QuokkaPixAgent.applySettings. Extra editor-specific keys are allowed.
outputDirYesLocal directory where the adapter writes the downloaded output and quokkapix-result.json.
timeoutMsNoMaximum processing timeout in milliseconds.
inputFilesYesLocal source image files to upload through the browser file input.
settingsIdNoOptional id/name for this generated settings workflow, used in returned metadata and QA profile.
unlockTokenNoOptional product-specific x402 unlock token. Omit it to receive the exact local quote first.
expectedResultQaNoOptional QA contract used to validate quokkapix-result.json after processing.
watermarkLogoFileNoOptional local logo/image file for logo watermark settings.
backgroundImageFileNoOptional local image file for background replacement settings.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.1
    • changedInput schema / properties / unlockToken / description
      Previous value: -"Optional x402 unlock token for paid agent batch/scenario runs above 5 files."New value: +"Optional product-specific x402 unlock token. Omit it to receive the exact local quote first."
  2. Changed1 schema field changedv0.3.2
    • changedInput schema / properties / unlockToken / description
      Previous value: -"Optional x402 unlock token for paid agent batch/scenario runs."New value: +"Optional x402 unlock token for paid agent batch/scenario runs above 5 files."
  3. Changed17 schema fields changedv0.3.1
    • addedInput schema / properties / appUrl / description
      Added value: +"Optional QuokkaPix app URL. Defaults to https://quokkapix.com/#agent=1. For safety, only quokkapix.com, localhost and 127.0.0.1 are accepted unless QUOKKAPIX_ALLOW_CUSTOM_APP_URL=1 is set."
    • addedInput schema / properties / backgroundImageFile / description
      Added value: +"Optional local image file for background replacement settings."
    • addedInput schema / properties / expectedResultQa / description
      Added value: +"Optional QA contract used to validate quokkapix-result.json after processing."
    • addedInput schema / properties / expectedResultQa / properties
      Added value: +{
      +  "allowedFormats": {
      +    "description": "Allowed output formats for every manifest output entry.",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "expectedFormat": {
      +    "description": "Required output format, for example webp, jpg, png, pdf or zip.",
      +    "type": "string"
      +  },
      +  "expectedHeight": {
      +    "description": "Exact expected output height in pixels.",
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  "expectedMinOutputs": {
      +    "description": "Minimum number of output entries expected.",
      +    "maximum": 9007199254740991,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  "expectedOutputKind": {
      +    "description": "Expected high-level output kind for QA checks.",
      +    "enum": [
      +      "single",
      +      "batch",
      +      "zip",
      +      "pdf",
      +      "metadata-report",
      +      "icon-pack"
      +    ],
      +    "type": "string"
      +  },
      +  "expectedWidth": {
      +    "description": "Exact expected output width in pixels.",
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  "marketplace": {
      +    "description": "Marketplace profile name used for human-readable QA context.",
      +    "enum": [
      +      "shopify",
      +      "amazon",
      +      "google-merchant"
      +    ],
      +    "type": "string"
      +  },
      +  "maxHeight": {
      +    "description": "Maximum allowed output height in pixels.",
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  "maxOutputKB": {
      +    "description": "Recommended maximum output size per non-archive file.",
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  "maxWidth": {
      +    "description": "Maximum allowed output width in pixels.",
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  "minHeight": {
      +    "description": "Minimum recommended output height in pixels.",
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  "minWidth": {
      +    "description": "Minimum recommended output width in pixels.",
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  "requireSquare": {
      +    "description": "Require square output dimensions when true.",
      +    "type": "boolean"
      +  },
      +  "visualChecks": {
      +    "description": "Visual checks requested by a recipe. Current validator reports these as metadata-only limitations.",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +}
    • removedInput schema / properties / expectedResultQa / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / headless / description
      Added value: +"Run Chromium headless. Defaults to true unless debugging."
    • addedInput schema / properties / inputFiles / description
      Added value: +"Local source image files to upload through the browser file input."
    • addedInput schema / properties / inputFiles / items / description
      Added value: +"Absolute or client-relative local file path readable by the MCP process. Do not pass remote URLs here."
    • addedInput schema / properties / maxFiles / description
      Added value: +"Maximum allowed input files for this direct settings run. Defaults to the selected files count."
    • addedInput schema / properties / outputDir / description
      Added value: +"Local directory where the adapter writes the downloaded output and quokkapix-result.json."
    • addedInput schema / properties / settings / description
      Added value: +"Payload accepted by window.QuokkaPixAgent.applySettings. Extra editor-specific keys are allowed."
    • addedInput schema / properties / settings / properties
      Added value: +{
      +  "mode": {
      +    "description": "Use single for one image or batch for multiple images.",
      +    "enum": [
      +      "single",
      +      "batch"
      +    ],
      +    "type": "string"
      +  },
      +  "steps": {
      +    "description": "Optional ordered scenario steps. Prefer [{ tool, settings }] for custom multi-step workflows.",
      +    "items": {
      +      "anyOf": [
      +        {
      +          "description": "Simple QuokkaPix tool id step, for example resize, background, compress or watermark.",
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        {
      +          "description": "Structured scenario step with a tool id and per-step settings.",
      +          "properties": {
      +            "settings": {
      +              "additionalProperties": {},
      +              "description": "Settings for this step using the same keys accepted by window.QuokkaPixAgent.applySettings.",
      +              "propertyNames": {
      +                "type": "string"
      +              },
      +              "type": "object"
      +            },
      +            "tool": {
      +              "description": "QuokkaPix tool id for this scenario step, for example resize, background, compress or watermark.",
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "tool"
      +          ],
      +          "type": "object"
      +        }
      +      ],
      +      "description": "One step in a QuokkaPix scenario workflow."
      +    },
      +    "type": "array"
      +  },
      +  "tool": {
      +    "description": "QuokkaPix editor tool id, such as resize, crop, rotate, convert, compress, metadata, background, watermark, effects, rename, pdf, favicon or constructor.",
      +    "minLength": 1,
      +    "type": "string"
      +  }
      +}
    • removedInput schema / properties / settings / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / settingsId / description
      Added value: +"Optional id/name for this generated settings workflow, used in returned metadata and QA profile."
    • addedInput schema / properties / timeoutMs / description
      Added value: +"Maximum processing timeout in milliseconds."
    • addedInput schema / properties / unlockToken / description
      Added value: +"Optional x402 unlock token for paid agent batch/scenario runs."
    • addedInput schema / properties / watermarkLogoFile / description
      Added value: +"Optional local logo/image file for logo watermark settings."
  4. First observedv0.3.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does disclose the core side-effect chain: 'The adapter downloads the output, writes quokkapix-result.json and returns QA results.' It also reveals the direct-payload execution mechanism. However, it does not surface the headless-Chromium/upload context or the payment-flow implications, which are left to parameter descriptions rather than the tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place: purpose/mechanism, usage scope, multi-step guidance, and side-effect disclosure. The purpose is front-loaded before any alternatives or details, with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a high-complexity tool (12 parameters, nested settings.steps and expectedResultQa objects, browser automation, x402 unlock-token flow) with no output schema and no annotations. The 100%-covered schema carries the parameter burden, and the description covers selection, mechanism, and output flow well. It is complete enough to select and invoke safely, though it defers browser/upload and payment context to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by prescribing the preferred shape of the most complex parameter ('prefer settings.steps as [{ tool, settings }]') and enumerating typical tool ids, without repeating schema content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb, resource, and mechanism: 'Process local image files with a direct window.QuokkaPixAgent.applySettings payload instead of an official recipe.' The 'instead of an official recipe' contrast clearly differentiates it from the recipe-based process_images sibling, and the workflow enumeration (resize/crop/convert/compress/background/watermark/effects/rename/PDF/favicon/scenario) further scopes what it handles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance ('Use this for custom ... workflows') and a structural prescription ('For multi-step scenarios, prefer settings.steps as [{ tool, settings }]'). The 'instead of an official recipe' phrase implies the when-not condition, but it does not name the recipe-based sibling explicitly, so the exclusion is implied rather than fully stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.