Is the Pictomancer Image Processing MCP server down?

mcp-registry/ai.pictomancer/image-processing · vAgent-to-agent image processing: resize, convert, compress, crop, pipeline, and

healthy
Last checked 2026-10-21 23:21 UTC · handshake 523ms

As of 2026-10-21 23:21 UTC, the Pictomancer Image Processing MCP server is up with a Glimind reliability score of 72/100 (grade C). Over the last 30 days it answered 99% of Glimind's liveness checks. It had 44 outages in 90 days, with a median recovery of 7 minutes.

uptime (30d checks)
99%
checks observed
4,213
outages (90d)
44
tools
10

Image processing for AI agents: resize, convert, compress, crop, and web-ready AI-generated images.

Install Pictomancer Image Processing MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http pictomancer-image-processing-mcp-server https://api.pictomancer.ai/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "pictomancer-image-processing-mcp-server": {
      "type": "http",
      "url": "https://api.pictomancer.ai/mcp"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: D (63/100)

D (63/100): 0 error(s), 5 warning(s) across 10 tool(s); ~10,213 tokens of tool definitions.
Scores higher than 0% of 15,499 MCP servers Glimind has audited.
Its tool list costs an agent ~10,213 tokens per session — more than 80% of servers.
63 → 63 since 2026-10-17
no tool-poisoning patterns
Schemas100
Descriptions41
Safety hints30
Token cost60
Client compatibility70
Protocol100
Reliability60
Stability100

What to fix (6)

6 tool definition(s) exceed ~1,200 tokens each (largest: crop_image, ~1,550).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~4,691 tokens every session. How to fix →

Tools: crop_image, resize_image, convert_image, compress_image, optimize_generated_image and 1 more · saves ~4,691 tokens/session

10 of 10 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: analyze_image, compress_image, convert_image, crop_image, estimate_cost and 5 more

7 parameter(s) across 7 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: compress_image, convert_image, crop_image, image_pipeline, optimize_for_vision and 2 more

Reachable 99.0% of the time over the last 30 days; median recovery 7 min.

Agents fail over to an alternative the first time a call fails. Add health checks and restart-on-failure, and avoid cold starts on serverless hosts.

Handshake + tools/list takes ~1,696 ms.

Serve tools/list from memory, keep the process warm, and host close to your users. Every new agent session pays this before its first call.

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →

Auto-fix: 4 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 7 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fai.pictomancer%2Fimage-processing/fixes

analyze_image 1 change
{
  "name": "analyze_image",
  "description": "Analyze an image\n\nFetch an image from a URL or base64 and return its metadata: size in bytes, pixel dimensions, source format, and what it costs every supported vision model in tokens. Always free. Dimensions are omitted if the image header cannot be read. Also reports whether the input carries a C2PA (Content Credentials) manifest and in which container; the manifest is not validated.\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json\n\n**Example Resp",
  "inputSchema": {
    "type": "object",
    "title": "analyze_imageArguments",
    "required": [
      "source"
    ],
    "properties": {
      "source": {
        "type": "string",
        "title": "source",
        "description": "Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...)."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true
  }
}
convert_image 1 change
{
  "name": "convert_image",
  "description": "Convert image format\n\nConvert an image to a different format (jpeg, png, webp, tiff, gif, avif). Optionally set quality, strip metadata, enable lossless mode (webp, avif), or tune encoder effort (avif). Instead of a q number you can set quality_target (0-1]: the smallest file with SSIM at or above the target, searched on the worker (jpeg, webp, avif; flat surcharge; outcome reported in X-Pictomancer-Quality-* headers). Optional enhancement modifiers: denoise (1-3), equalize, sharpen (applied den",
  "inputSchema": {
    "type": "object",
    "title": "convert_imageArguments",
    "required": [
      "source",
      "format"
    ],
    "properties": {
      "q": {
        "type": "integer",
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "title": "q",
        "description": "Quality (1-100). Maps to libvips Q parameter."
      },
      "strip": {
        "type": "boolean",
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "strip",
        "description": "Strip metadata (EXIF, ICC profile, etc.) from the output."
      },
      "effort": {
        "type": "integer",
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "title": "effort",
        "description": "AV1 encoder CPU effort (0-9). Higher = smaller file, slower. Only applies to avif."
      },
      "format": {
        "type": "string",
        "title": "format",
        "description": "Target format: jpeg, png, webp, tiff, gif, or avif."
      },
      "source": {
        "type": "string",
        "title": "source",
        "description": "Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...)."
      },
      "autorot": {
        "type": "boolean",
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "autorot",
        "description": "Apply EXIF orientation before converting. Opt-in; default false, which preserves current byte-for-byte behavior."
      },
      "denoise": {
        "type": "integer",
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "title": "denoise",
        "description": "Median denoise before converting: radius 1-3 (window 3x3 to 7x7). Opt-in; no surcharge."
      },
      "sharpen": {
        "type": "boolean",
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "sharpen",
        "description": "Unsharp-mask sharpen after converting (libvips defaults). Opt-in."
      },
      "delivery": {
        "type": "string",
        "oneOf": [
          {
            "type": "object",
            "title": "InlineDelivery",
            "properties": {
              "mode": {
                "type": "string",
                "const": "inline",
                "title": "Mode",
                "default": "inline"
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "title": "PutUrlDelivery",
            "required": [
              "mode",
              "put_url"
            ],
            "properties": {
              "mode": {
                "type": "string",
                "const": "put_url",
                "title": "Mode"
              },
              "headers": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Headers",
                "description": "Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer."
              },
              "put_url": {
                "type": "string",
                "title": "Put Url",
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "description": "Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request."
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "title": "CallbackDelivery",
            "required": [
              "mode",
              "callback_url"
            ],
            "properties": {
              "mode": {
                "type": "string",
                "const": "callback_url",
                "title": "Mode"
              },
              "secret": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Secret",
                "description": "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."
              },
              "headers": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Headers",
                "description": "Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer."
              },
              "callback_url": {
                "type": "string",
                "title": "Callback Url",
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "description": "Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself."
              }
            },
            "additionalProperties": false
          }
        ],
        "title": "delivery",
        "discriminator": {
          "mapping": {
            "inline": "#/components/schemas/InlineDelivery",
            "put_url": "#/components/schemas/PutUrlDelivery",
            "callback_url": "#/components/schemas/CallbackDelivery"
          },
          "propertyName": "mode"
        }
      },
      "equalize": {
        "type": "boolean",
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "equalize",
        "description": "Auto-contrast (histogram equalisation of the value channel; hue and saturation preserved) before converting. Opt-in."
      },
      "lossless": {
        "type": "boolean",
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "lossless",
        "description": "Enable lossless encoding. Only applies to webp and avif."
      },
      "quality_target": {
        "type": "number",
        "anyOf": [
          {
            "type": "number"
          },
          {
            "type": "null"
          }
        ],
        "title": "quality_target",
        "description": "Target SSIM (0-1]: the worker searches for the smallest file that still scores at least this. Alternative to q; mutually exclusive with it and with lossless. Only for jpeg, webp, avif. Carries a flat surcharge for the extra encodes."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true
  }
}
estimate_cost 1 change
{
  "name": "estimate_cost",
  "description": "Estimate the price of an operation\n\nReturns the exact USD price this API would charge for an operation on an input of the given size, without fetching or processing anything. Free. Use it before paying: send X-Max-Cost-USD on the real request to have the API refuse (412) instead of charging more than you allowed. The list price is returned even when the request could end up free (free tier, or a compress that does not shrink the file).\n\n### Responses:\n\n**200**: Successful Response (Success Respo",
  "inputSchema": {
    "type": "object",
    "title": "estimate_costArguments",
    "required": [
      "operation",
      "input_bytes"
    ],
    "properties": {
      "format": {
        "type": "string",
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "format",
        "description": "Requested output format; only avif changes the price."
      },
      "operation": {
        "type": "string",
        "title": "operation",
        "description": "Operation to price. One of resize, compress, convert, crop, optimize_for_vision, optimize_generated, pipeline. analyze is always free."
      },
      "operations": {
        "type": "array",
        "anyOf": [
          {
            "type": "array",
            "items": {
              "type": "object",
              "title": "EstimateOperation",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "title": "Type",
                  "description": "Operation type: resize, compress, convert, or crop."
                },
                "format": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Format",
                  "description": "Requested output format for this operation; only avif changes the price."
                }
              }
            }
          },
          {
            "type": "null"
          }
        ],
        "title": "operations",
        "description": "For pipeline only: the ordered operations, each {type, format?}. Volume discount applies at 3+ operations."
      },
      "input_bytes": {
        "type": "integer",
        "title": "input_bytes",
        "minimum": 1,
        "description": "Size of the input image in bytes. Get it from analyze_image (free) if you do not know it."
      },
      "quality_target": {
        "type": "boolean",
        "title": "quality_target",
        "default": false,
        "description": "Whether the request will use quality_target (SSIM search surcharge)."
      }
    }
  },
  "annotations": {
    "readOnlyHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/ai.pictomancer/image-processing"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/ai.pictomancer/image-processing"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.pictomancer%2Fimage-processing.svg)](https://glimind.com/server/mcp-registry%2Fai.pictomancer%2Fimage-processing?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fai.pictomancer%2Fimage-processing?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.pictomancer%2Fimage-processing.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.pictomancer%2Fimage-processing.svg
   :target: https://glimind.com/server/mcp-registry%2Fai.pictomancer%2Fimage-processing?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:eb1eccf66e2df491…, first seen 2026-10-17, included at leaf 2134 of 42,193. Version history · verify what your client received.

Tools (10)

Compare: most reliable media servers · most reliable other servers · most reliable knowledge servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Pictomancer Image Processing MCP server down right now?

As of 2026-10-21 23:21 UTC, the Pictomancer Image Processing MCP server is up with a Glimind reliability score of 72/100 (grade C). Over the last 30 days it answered 99% of Glimind's liveness checks. It had 44 outages in 90 days, with a median recovery of 7 minutes.

How many tools does Pictomancer Image Processing MCP server provide?

Pictomancer Image Processing MCP server advertises 10 tools, including analyze_image, compress_image, convert_image, crop_image, estimate_cost.

How do I install Pictomancer Image Processing MCP server?

Point your MCP client at this streamable-http endpoint: https://api.pictomancer.ai/mcp

Is the Pictomancer Image Processing MCP server safe to connect to an AI agent?

Glimind scanned all 10 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Pictomancer Image Processing MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve