mcpField
I
imageport

imageport

Local
github.com/CloudCorpRecordsMedia & Design0Updated 2w ago

About imageport

imageport is a local image-processing CLI and stdio MCP server built around ImageMagick. It handles metadata, resizing, format conversion, cropping, and rotation without image generation or network calls; ImageMagick must be installed on the host.

Key features

  1. 01Read image metadata
  2. 02Resize while preserving aspect ratio
  3. 03Convert common image formats
  4. 04Crop a rectangular region
  5. 05Rotate by an angle

Use cases

  1. 01Check an image's format and dimensions
  2. 02Create a resized image file
  3. 03Convert images between supported formats
  4. 04Crop or rotate a local image

MCP support

The stdio MCP server exposes five local image tools for metadata, resizing, conversion, cropping, and rotation. Operations invoke ImageMagick, which must be installed on the host.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-imageport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/imageport"
]
}
}
}
Run commandnpx -y @reneturcios/imageport

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/imageport0.1.0
ocighcr.io/cloudcorprecords/imageport:0.1.0

Tools

5

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
inputstringYesPath to the image file to read metadata from.

Details

From the project README

imageport

imageport does local image work with ImageMagick. It reads an image file's metadata — format, dimensions, color space, file size — resizes an image while preserving its aspect ratio, converts between the common web and print formats (png, jpg, webp, gif, avif, bmp, tiff), crops a rectangle out of an image, and rotates by an angle in degrees. Every operation is plain local file processing: there is no image generation, no hosted AI, and no network call anywhere in this package.

All five tools build ImageMagick argument arrays and run them through one injectable executor. The default executor spawns convert and identify with node:child_process execFile — argument arrays, never a shell string — so a host needs ImageMagick installed. When the binaries are absent, the spawn error (for example ENOENT) is surfaced as the tool error, honestly; nothing is faked. The unit tests exercise the same core through a fake executor that records the argument arrays, so they need no ImageMagick at all.

One behaviour worth knowing up front: ImageMagick decides the output format from the output file's extension, so convert_image replaces the requested output path's extension with the target format whenever the two differ (converting photo.png to webp writes photo.webp), and the result reports that effective path.

Install

npx -y @reneturcios/imageport mcp

Or run the container image (note: the container bundles no ImageMagick, so it passes MCP initialize / CLI usage smoke only — run on a host with ImageMagick installed for real work):

docker run -i ghcr.io/cloudcorprecords/imageport

CLI

imageport metadata <input>
imageport resize <input> <output> [--width n] [--height n]
imageport convert <input> <output> <format>
imageport crop <input> <output> <width> <height> <x> <y>
imageport rotate <input> <output> <angle>
imageport mcp
imageport --version

Examples:

imageport metadata photo.png
imageport resize photo.png photo-small.png --width 800
imageport convert photo.png photo-out.png webp   # writes photo-out.webp
imageport crop photo.png tile.png 200 200 40 60
imageport rotate photo.png photo-upright.png 90

Each command prints its result as JSON. Exit codes: 0 on success, 1 when ImageMagick fails (including when it is not installed), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/imageport mcp

MCP client configuration:

{
  "mcpServers": {
    "imageport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/imageport", "mcp"]
    }
  }
}
Tools
ToolInputWhat it does
get_image_metadatainput (required)Reads format, width, height, color space, and file size via identify.
resize_imageinput, output (required); width, height (at least one)Resizes preserving aspect ratio via convert -resize.
convert_imageinput, output, format (required)Converts to png, jpg, webp, gif, avif, bmp, or tiff; the output extension is replaced with the format when it differs.
crop_imageinput, output, width, height, x, y (required)Crops a width x height region at offset x, y via convert -crop ... +repage.
rotate_imageinput, output, angle (required)Rotates by angle degrees via convert -rotate.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, fake executor, no ImageMagick needed
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.