# Image Tools (remote · byondr.co)

Resize, compress, convert, crop, rotate and watermark images, one at a time or in a zip.

- Trust score: 68/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `byondr.co`: 68/100 (this document), [markdown](https://verifymcp.io/servers/co-byondr-image-tools/image-tools-mcp.md), [page](https://verifymcp.io/servers/co-byondr-image-tools/image-tools-mcp)

## Channel facts

- Endpoint: `https://byondr.co/image-tools/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 53/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1632 tokens (~816/item across 2 items; 2 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 2 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 3 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Image Tools MCP server?

Image Tools is a hosted endpoint at https://byondr.co/image-tools/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http co-byondr-image-tools 'https://byondr.co/image-tools/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "co-byondr-image-tools": {
      "url": "https://byondr.co/image-tools/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "co-byondr-image-tools": {
      "type": "http",
      "url": "https://byondr.co/image-tools/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.co-byondr-image-tools]
url = "https://byondr.co/image-tools/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "co-byondr-image-tools": {
      "type": "remote",
      "url": "https://byondr.co/image-tools/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add co-byondr-image-tools --url 'https://byondr.co/image-tools/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  co-byondr-image-tools:
    url: "https://byondr.co/image-tools/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "co-byondr-image-tools": {
      "Transport": "http",
      "Url": "https://byondr.co/image-tools/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add co-byondr-image-tools -t streamable-http -u 'https://byondr.co/image-tools/mcp'
```

### Other

```json
{
  "mcpServers": {
    "co-byondr-image-tools": {
      "type": "http",
      "url": "https://byondr.co/image-tools/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 64, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-27 (score 64)

First indexed and scored.

## MCP tools (2)

### `process_images` (~1397 tokens)

Resize, crop, rotate, flip, compress (to a file size with target_bytes), convert (jpeg, png, webp, avif), strip EXIF and GPS metadata from, and watermark (text, logo or both) one image or a zip of up to 50 images (up to 500 files per zip; files that are not supported images are skipped and listed). Crops are in pixels by default; for a zip of different sizes use crop_unit "percent" or crop_aspect, which are worked out per image. Give exactly one source: file_id (from create_upload), url (public https) or data_base64 (up to 3 MB inline; use create_upload, up to 100 MB, or url above that). One image in returns one image; a zip returns a zip. AVIF output is scaled down to fit 1,200 px on the longest side and WebP output to 36 megapixels. Returns a 24-hour download_url with the size and format of every output, and for each output the kinds of metadata found in the input and left in the output (location, date, camera, serial number, ...) and whether the colour profile was kept; kinds only, never the values. keep_date and keep_copyright write back the EXIF date taken and copyright after stripping. Large zips can take up to a minute; use a client timeout of at least 120 s. Free. Daily quotas are counted per caller in output megapixels; see start.md.

Input parameters:

- `background` (string): JPEG only: colour under transparent areas, #rrggbb
- `crop_aspect` (string): Instead of the four crop fields: the largest centered crop of this width:height ratio, per image
- `crop_height` (number): Crop: height (px, or % of the height with crop_unit percent)
- `crop_left` (number): Crop: left edge (px, or % of the width with crop_unit percent)
- `crop_top` (number): Crop: top edge (px, or % of the height with crop_unit percent)
- `crop_unit` (string): Unit of the four crop fields: px (whole pixels) or percent (0-100 of each image, so a zip of different sizes gets the same part of every image)
- `crop_width` (number): Crop: width (px, or % of the width with crop_unit percent)
- `data_base64` (string): Base64 bytes of an image or zip, up to 3 MB decoded; use create_upload (up to 100 MB) or url above that
- `file_id` (string): Image or zip file (up to 25 MB on this page)
- `filename` (string): Name for the output when the source has none
- `fit` (string): How to fit into width x height: scale-down never enlarges; cover fills and crops; pad adds borders
- `flip` (string): Flip: h = horizontal, v = vertical, hv = both
- `format` (string): Output format (keep turns HEIC into JPEG and GIF into PNG)
- `height` (integer): Height in pixels
- `keep_copyright` (boolean): With strip_metadata: keep the EXIF Copyright tag. XMP and IPTC rights are not kept
- `keep_date` (boolean): With strip_metadata: keep the EXIF date taken (DateTimeOriginal and DateTimeDigitized, with their time zone and fraction of a second) so photos still sort by date. A date and time taken found only in…
- `max_side` (integer): Instead of width and height: the longest side in pixels, per image, so portrait and landscape images both get it on their long edge. Never enlarges unless fit is contain
- `quality` (integer): Quality 1-100 for JPEG, WebP and AVIF; lower is smaller. Ignored with target_bytes
- `resize_unit` (string): Unit of width and height: px, or percent (1-1000) of each image's own size, so a zip of different sizes is scaled alike. Over 100 enlarges only with fit contain
- `rotate` (number): Rotate clockwise (degrees)
- `strip_metadata` (boolean): Remove EXIF, GPS location and camera data
- `target_bytes` (integer): Instead of quality: the most bytes each output may have (10,000-50,000,000; 1 MB = 1,000,000), for upload forms with a size limit. Uses the highest quality from 45 to 92 that fits; if even 45 is too…
- `url` (string): Or a public https URL of an image or zip
- `watermark_color` (string): Watermark color, #rrggbb
- `watermark_image` (string): Logo for the watermark, with or instead of watermark_text: a file_id from create_upload, a public https url, or data:image/png;base64,... (up to 1 MB inline; an inline image and logo share the 3 MB i…
- `watermark_image_size` (number): Logo width, % of each image's width (2-50). Default 15
- `watermark_opacity` (number): Watermark opacity, 0.05 to 1
- `watermark_position` (string): Watermark position; custom places the centre of the text at watermark_x, watermark_y
- `watermark_size` (number): Watermark font size: px (8-400, whole numbers) or, with watermark_size_unit percent, % of each image's width (0.5-20, giving 12-1000 px). Default 4% of the width
- `watermark_size_unit` (string): Unit of watermark_size: px, or percent of each image's width (so a zip of different sizes gets the same relative size)
- `watermark_text` (string): Watermark text
- `watermark_x` (number): With watermark_position custom: the centre of the text, % of each image's width from the left (0-100)
- `watermark_y` (number): With watermark_position custom: the centre of the text, % of each image's height from the top (0-100)
- `width` (integer): Width in pixels

Output parameters:

- `bytes` (integer)
- `content_type` (string)
- `download_url` (string)
- `expires_at` (string)
- `items` (array)
- `kind` (string)
- `megapixels` (number)
- `skipped` (array)

### `create_upload` (~111 tokens)

Get a one-hour signed upload URL for an image or a zip that is too large to send inline (over 3 MB; up to 100 MB here) or that already sits on disk. PUT the raw bytes to upload_url with a Content-Length header, then pass file_id to process_images. Free.

Input parameters:

- `bytes` (integer, required): Exact size of the file you will upload, in bytes (at most 100 MB)
- `filename` (string): Original file name, used to name the output

Output parameters:

- `expires_at` (string)
- `file_id` (string)
- `max_bytes` (integer)
- `method` (string)
- `upload_url` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/co-byondr-image-tools/image-tools-mcp#diagnostics

## Score history

- 2026-11-05: 68
- 2026-11-04: 68
- 2026-11-03: 67
- 2026-11-02: 67
- 2026-11-01: 66
- 2026-10-31: 66
- 2026-10-30: 65
- 2026-10-29: 65
- 2026-10-28: 64
- 2026-10-27: 64

## Common questions

### What is the Image Tools MCP server?

Image Tools is an MCP server listed in the public MCP registry as co.byondr/image-tools. Resize, compress, convert, crop, rotate and watermark images, one at a time or in a zip. This page covers its hosted endpoint (https://byondr.co/image-tools/mcp).

### Is the Image Tools MCP server safe to use?

Image Tools scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Image Tools MCP server expose?

Image Tools exposes 2 tools: process_images, create_upload. Their descriptions and schemas cost roughly 1,508 tokens of context every time the server is loaded.

### Does the Image Tools MCP server require authentication?

No. We connected to Image Tools without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Image Tools MCP server still maintained?

Image Tools is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Image Tools MCP server?

VerifyMCP ran 12 checks on Image Tools, covering TLS certificate, Authorization, HSTS header, DNSSEC and 8 more. One item could not be completed, a gap on our side rather than a finding about Image Tools: HTTPS. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://byondr.co/image-tools/mcp
- Website: https://byondr.co/image-tools
- Changelog RSS feed: https://verifymcp.io/servers/co-byondr-image-tools/image-tools-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/co-byondr-image-tools/image-tools-mcp/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/co-byondr-image-tools/image-tools-mcp.json
- HTML version of this page: https://verifymcp.io/servers/co-byondr-image-tools/image-tools-mcp
