Model or dataset
sunriseapps/imagesorcery-mcp avatar
sunriseapps/imagesorcery-mcp

ImageSorcery MCP: image editing and OCR tools for AI assistants, running locally

An MCP server providing tools for image processing operations

331 stars53 forksPythonMIT

At a glance

What is it?
ImageSorcery MCP is a Python MCP server that gives an AI client crop, detect, OCR and drawing tools backed by OpenCV, Ultralytics and EasyOCR. It keeps images on your machine, but the package pulls in a large dependency tree and the project labels itself alpha.
Who is it for?
Adopt ImageSorcery MCP if you want an AI assistant to run concrete image operations on local files and you accept installing OpenCV, Ultralytics and EasyOCR alongside it. Skip it if you need a stable API, a hosted service, or a tool that works without an MCP client.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 122 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 18, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What ImageSorcery MCP solves, and for whom

An AI assistant can describe an image edit but cannot perform one. ImageSorcery MCP closes that gap by exposing image operations as MCP tools, so a client such as Claude.app or Cline can call crop, resize, rotate, blur, fill, overlay, draw_texts, detect, find and ocr on real files. The README frames the intent plainly: the assistant "will combine multiple tools listed below to achieve your goal". A request like copying photos with pets from one folder to another becomes a chain of detect and file operations rather than a manual session in an image editor.

The target user is a developer or analyst who already runs an MCP client and wants local processing. The README states that all of this happens "locally, without sending your images to any servers", which matters when the images are internal documents, forms or screenshots. The repository's pyproject.toml lists the audience as developers and classifies the project as Development Status 3 - Alpha, so the expectation is a technical user who is comfortable reading tool-level documentation under src/imagesorcery_mcp/tools/README.md.

The mechanism: MCP tools wrapping OpenCV, Ultralytics and EasyOCR

ImageSorcery MCP is a FastMCP-based server. The dependency list in pyproject.toml names fastmcp for the server core, opencv-python for pixel work, imutils for rotation, Pillow for metadata, ultralytics for detection, easyocr for text recognition and huggingface_hub plus requests for model downloads. Each tool is a thin typed wrapper over one of those libraries: crop uses NumPy slicing, rotate calls imutils.rotate_bound, blur and fill operate on rectangular or polygonal areas, and draw_* tools render shapes and text through OpenCV.

Detection is the part with the most moving pieces. The detect and find tools use Ultralytics models and can return segmentation masks as PNG files or as polygons. Models are not bundled: the package declares console scripts including download-yolo-models, download-clip-models and create-model-descriptions, and the models://list resource reports what is available in the models directory. The find tool goes further than detect by taking a text description, which implies a CLIP-style model behind it. The config tool lets a client read and change settings at runtime, for example raising the default detection confidence. A remove-background prompt guides the model through a detection and masking workflow instead of leaving it to improvise. Telemetry is present through amplitude-analytics and posthog, and python-dotenv is used to load environment variables from a .env file, so the README's local-processing claim is about image data, not about zero network activity.

Installing ImageSorcery MCP and running a first crop and OCR

The README lists Python 3.10 or higher, pipx as the recommended installer, an MCP client, and the system libraries ffmpeg, libsm6, libxext6 and libgl1-mesa-glx that OpenCV needs. The README notes those libraries usually arrive with OpenCV but may be missing in slim environments such as Docker, which is worth checking before you debug anything else. The repository also ships setup.sh and LLM-INSTALL.md, and the package defines a post-install-imagesorcery script, so there is more than one installation path documented.

Install the server as a standalone tool so its dependencies do not mix with your project environment:

bash
pipx install imagesorcery-mcp

After installation, the imagesorcery-mcp console script declared in pyproject.toml is what your MCP client launches. Register that command in the client's MCP server configuration, restart the client, and confirm the tool list appears. The README's hint is to add "use imagesorcery" to a prompt so the client picks the right server when several are configured.

A first real task is cropping to a coordinate box. The README's example prompt is "Crop my image 'input.png' from coordinates (10,10) to (200,200) and save it as 'cropped.png'". The same hint applies to paths: the README tells users to use the full path to their files, which avoids ambiguity when the server and the client disagree about the working directory.

OCR is a separate tool backed by EasyOCR. The README's example is "Extract text from my image 'document.jpg' using OCR with English language", and the tool table describes it as performing OCR using EasyOCR. Language selection is passed through the tool call, and the first run downloads the recognition model, so expect a delay before any text comes back.

Where ImageSorcery MCP gets in the way

The dependency footprint is the first real cost. Installing this server pulls OpenCV, Ultralytics, EasyOCR and huggingface_hub into the same environment. Ultralytics and EasyOCR bring their own model weights, and the download scripts imply those weights are fetched separately from the package. On a machine without a GPU, detection and OCR will run on CPU, and the README does not document expected runtimes, so you cannot size the wait from the documentation alone.

Model availability is a second constraint. The tools that matter most for non-trivial work, detect and find, depend on models being present in the models directory. The README points to the models://list resource but does not state which models ship by default or how large they are. If a model is missing, the failure surfaces at call time inside the client conversation rather than at installation.

The third limitation is project maturity. pyproject.toml declares Development Status 3 - Alpha at version 0.12.0. The README does not document rollback, version pinning for models, or what happens to in-flight tool calls when the server restarts. Coordinate-based tools assume the client passes pixel coordinates correctly; a wrong box produces a wrong crop, not an error. If you need a stable, versioned API with a support policy, this is not that tool yet.

ImageSorcery MCP compared with a plain OpenCV script or a hosted API

The obvious alternative is a short Python script using the same libraries. OpenCV, Pillow and EasyOCR are all installable on their own, and a script gives you deterministic behaviour, version pinning and no MCP client in the loop. The difference is who decides the sequence: a script encodes the steps in advance, while ImageSorcery MCP lets the assistant choose which tools to chain for a request it has not seen before. That flexibility is the whole point, and it is also the reason results are less reproducible.

A hosted image API is the other direction. A service removes the local install, the model downloads and the system libraries, and it usually offers higher accuracy on tasks like background removal. It also sends your images off the machine, which is exactly what the README's local-processing claim avoids. For form scans, internal screenshots or anything under a data-handling policy, the trade is not close. For one-off edits on public images, a hosted API is less work.

Within the MCP ecosystem, the related searches people run include OpenCV MCP, YOLO MCP server and Ffmpeg MCP. ImageSorcery MCP sits between them: it wraps OpenCV operations and Ultralytics detection in one server, but it does not handle video. If your task is transcoding or frame extraction, an ffmpeg-oriented server is the right shape and this one is not.

Maintenance, licence and upgrade cost

The repository is not archived, and the last push was on 2026-05-19. That is roughly four months before today, so the project is within the six-month window, but the gap is long enough that you should read the commit history before depending on a fix landing quickly. There are no releases retrieved, which means versioning is visible mainly through pyproject.toml, currently 0.12.0, and through the PyPI package. Upgrades are therefore a matter of tracking the package version rather than a changelog.

The licence is MIT, declared in both the LICENSE file at the repository root and the license field in pyproject.toml. MIT is permissive: you can use, modify and redistribute the code, including in commercial settings, provided the copyright notice and permission notice are kept. That covers the server code. It does not automatically cover the model weights downloaded by the scripts, and the README does not spell out the licence of each model in the models directory. If you plan to redistribute a product built on detection or OCR output, check the individual model licences yourself. This is a description of the licence terms, not legal advice.

Upgrade cost is dominated by the dependency set rather than the server code. FastMCP is pinned to >=2.10.0,<3.0.0, but opencv-python, ultralytics and easyocr are unpinned, so a fresh install can pull newer versions than the ones the author developed against. Pinning those in your own environment is the cheap insurance here.

Editorial conclusion

Adopt ImageSorcery MCP if you want an AI assistant to run concrete image operations on local files and you accept installing OpenCV, Ultralytics and EasyOCR alongside it. Skip it if you need a stable API, a hosted service, or a tool that works without an MCP client. Before committing, install it from the repository with pipx, confirm the imagesorcery-mcp entry point appears, and check that your client lists the crop, detect and ocr tools.

Frequently asked questions

Which software is best for image processing?

There is no single answer, and ImageSorcery MCP does not claim to be one. It is an MCP server that wraps OpenCV, Ultralytics and EasyOCR so an AI assistant can run crop, resize, blur, fill, detect and OCR operations on local files. Choose it when the assistant should pick the operations; choose a script or a dedicated editor when you want a fixed, repeatable pipeline.

What are the different methods used in image processing?

The tools listed in the README cover geometric operations (crop, resize, rotate), pixel operations (blur, fill, change_color), drawing (text, lines, circles, rectangles, arrows), compositing (overlay), detection with Ultralytics models, and OCR with EasyOCR. Each tool maps to one library rather than a custom algorithm.

Does ImageSorcery MCP send my images to a server?

The README states that the image work happens locally, without sending images to any servers. Note that the package depends on amplitude-analytics and posthog for telemetry, so network activity exists even though image data is not uploaded.

Which Python version does ImageSorcery MCP require?

The README lists Python 3.10 or higher, and pyproject.toml sets requires-python to >=3.10. pipx is the recommended way to install it.

Is ImageSorcery MCP stable enough for production?

pyproject.toml classifies it as Development Status 3 - Alpha at version 0.12.0. The README does not document rollback behaviour or model version pinning, so treat it as a tool for local, supervised image tasks rather than a hardened service.

Official sources

  1. Issues
  2. License: MIT
  3. Project website
  4. README
  5. sunriseapps/imagesorcery-mcp on GitHub
Community notes

Community notes