🪄 ImageSorcery MCP

by sunriseapps
MIT License
8
  • Linux
  • Apple
Integrations
  • Supports downloading and using models from Hugging Face Hub for various computer vision tasks like object detection.

  • Uses Imgur for image hosting and sharing in the demonstration examples, displaying the results of image processing operations.

  • Utilizes NumPy for image manipulation operations, particularly for the cropping functionality through OpenCV's NumPy slicing approach.

🪄 ImageSorcery MCP

Волшебство распознавания и редактирования изображений на основе ComputerVision для помощников с искусственным интеллектом

❌ Без ImageSorcery MCP

Возможности ИИ-помощников при работе с изображениями ограничены:

  • ❌ Невозможно изменять или анализировать изображения напрямую
  • ❌ Нет в��зможности обрезать, изменять размер или обрабатывать изображения
  • ❌ Некоторые LLM не могут обнаруживать объекты или извлекать текст из изображений
  • ❌ Ограничено словесными описаниями без визуальной манипуляции

✅ С ImageSorcery MCP

🪄 ImageSorcery предоставляет помощникам на базе искусственного интеллекта мощные возможности обработки изображений:

  • ✅ Обрезайте, изменяйте размер и вращайте изображения с точностью
  • ✅ Рисуйте текст и фигуры на изображениях
  • ✅ Обнаружение объектов с использованием современных моделей
  • ✅ Извлечение текста из изображений с помощью OCR
  • ✅ Получите подробные метаданные изображения
  • ✅ Используйте широкий спектр предварительно обученных моделей для обнаружения объектов, OCR и многого другого

Просто попросите свой ИИ помочь вам с задачами по обработке изображений:

"скопировать фотографии с домашними животными из папки photos в папку pets "

«Найдите кошку на фото.jpg и обрежьте изображение пополам по высоте и ширине, чтобы кошка оказалась по центру» 😉 Подсказка: используйте полный путь к файлам.

"Пронумеруйте поля формы в этом form.jpg с помощью модели foduucom/web-form-ui-field-detection и заполните form.md списком описанных полей" 😉 Подсказка: укажите модель и степень уверенности.

😉 Подсказка: добавьте «use imagesorcery», чтобы убедиться, что будет использоваться правильный инструмент».

Ваш инструмент будет объединять в себе несколько перечисленных ниже инструментов для достижения вашей цели.

🛠️ Доступные инструменты

ИнструментОписаниеПример подсказки
cropОбрезает изображение, используя подход нарезки NumPy OpenCV.«Обрезать мое изображение 'input.png' от координат (10,10) до (200,200) и сохранить его как 'cropped.png'»
resizeИзменение размера изображения с помощью OpenCV«Изменить размер моего изображения «photo.jpg» до 800x600 пикселей и сохранить его как «resized_photo.jpg»»
rotateПоворачивает изображение с помощью функции imutils.rotate_bound«Повернуть мое изображение «photo.jpg» на 45 градусов и сохранить его как «rotated_photo.jpg»»
draw_textsРисует текст на изображении с помощью OpenCV«Добавьте текст «Hello World» в позицию (50,50) и «Copyright 2023» в правый нижний угол моего изображения «photo.jpg»»
draw_rectanglesРисует прямоугольники на изображении с помощью OpenCV«Нарисуйте красный прямоугольник от (50,50) до (150,100) и закрашенный синий прямоугольник от (200,150) до (300,250) на моем изображении 'photo.jpg'»
get_metainfoПолучает метаданные о файле изображения«Получить метаданные о моем изображении 'photo.jpg'»
detectОбнаруживает объекты на изображении с использованием моделей Ultralytics«Определить объекты на моем изображении «photo.jpg» с порогом достоверности 0,4»
findНаходит объекты на изображении по текстовому описанию«Найти всех собак на моем изображении 'photo.jpg' с порогом достоверности 0,4»
get_modelsПеречисляет все доступные модели в каталоге моделей«Перечислить все доступные модели в каталоге моделей»
ocrВыполняет оптическое распознавание символов (OCR) на изображении с помощью EasyOCR«Извлеките текст из моего изображения «document.jpg» с помощью OCR на английском языке»

😉 Совет: подробную информацию и инструкции по использованию каждого инструмента можно найти в файле /src/imagesorcery_mcp/tools/README.md .

🚀 Начало работы

Требования

  • Python 3.10 или выше
  • Claude.app , Cline или другой клиент MCP

Установка

1. Load MCP documentation if you have the tool for it. It will give you path to *MCP-configuration file* and other needed instructions. 2. Run command `python -m venv imagesorcery-mcp` 3. Run command `source imagesorcery-mcp/bin/activate` For windows bash run command `source imagesorcery-mcp/Scripts/activate` For windows cmd run command `imagesorcery-mcp\Scripts\activate` 4. Run command `pip install imagesorcery-mcp` 5. Run command `imagesorcery-mcp --post-install` 6. Create or modify *MCP-configuration file*. 7. Add the `imagesorcery-mcp` server configuration to the `mcpServers` object in the *MCP-configuration file* `"imagesorcery-mcp": {"command": "/full/path/to/venv/bin/imagesorcery-mcp","timeout": 100}` 8. Get available models using `get_models` tool from `imagesorcery-mcp` 9. Attempt completion, indicating that the installation and configuration are complete.
  1. Создайте и активируйте виртуальную среду (настоятельно рекомендуется): для надежной установки всех компонентов, особенно пакета clip (устанавливается с помощью скрипта после установки), настоятельно рекомендуется использовать встроенный в Python модуль venv вместо uv venv .
    python -m venv imagesorcery-mcp source imagesorcery-mcp/bin/activate # For Linux/macOS # source imagesorcery-mcp\Scripts\activate # For Windows
  2. Установите пакет в активированную виртуальную среду: можно использовать pip или uv pip .
    pip install imagesorcery-mcp # OR, if you prefer using uv for installation into the venv: # uv pip install imagesorcery-mcp
  3. Запустите скрипт после установки: Этот шаг имеет решающее значение. Он загружает требуемые модели и пытается установить пакет Python clip из GitHub в активную виртуальную среду.
    imagesorcery-mcp --post-install
  • Создает каталог models (обычно в каталоге site-packages вашей виртуальной среды или в определенном пользователем месте, если установлена глобально) для хранения предварительно обученных моделей.
  • Генерирует там начальный файл models/model_descriptions.json .
  • Загружает стандартные модели YOLO ( yoloe-11l-seg-pf.pt , yoloe-11s-seg-pf.pt , yoloe-11l-seg.pt , yoloe-11s-seg.pt ), необходимые для инструмента detect , в этот каталог models .
  • Попытки установить пакет Python clip из репозитория Ultralytics' GitHub напрямую в активную среду Python. Это необходимо для функциональности текстовых подсказок в инструменте find .
  • Загружает файл модели CLIP, необходимый инструменту find , в каталог models .

Вы можете запустить этот процесс в любое время, чтобы восстановить модели по умолчанию и попытаться установить clip .

  • Использование uv venv для создания виртуальных сред: на основе тестирования виртуальные среды, созданные с помощью uv venv могут не включать pip таким образом, чтобы скрипт imagesorcery-mcp --post-install автоматически устанавливал пакет clip из GitHub (это может привести к ошибке «No module named pip» на этапе установки clip ). Если вы решите использовать uv venv :
    1. Создайте и активируйте свой uv venv .
    2. Установите imagesorcery-mcp : uv pip install imagesorcery-mcp .
    3. Вручную установите пакет clip в ваш активный uv venv :
      uv pip install git+https://github.com/ultralytics/CLIP.git
    4. Запустите imagesorcery-mcp --post-install . Это загрузит модели, но может не установить пакет Python clip . Для более плавной автоматической установки clip через скрипт post-install рекомендуется использовать python -m venv (как описано в шаге 1 выше) для создания виртуальной среды.
  • Использование uvx imagesorcery-mcp --post-install : запуск скрипта после установки напрямую с помощью uvx (например, uvx imagesorcery-mcp --post-install ) скорее всего не установит пакет Python clip . Это связано с тем, что временная среда, созданная uvx , обычно не имеет pip , доступного для использования скриптом. Модели будут загружены, но пакет clip не будет установлен этой командой. Если вы собираетесь использовать uvx для запуска основного сервера imagesorcery-mcp и вам требуется функциональность clip , вам нужно будет убедиться, что пакет clip установлен в доступной среде Python, которую может найти uvx , или рассмотреть возможность установки imagesorcery-mcp в постоянную среду, созданную с помощью python -m venv .

⚙️ Конфигурация MCP клиента

Добавьте эти настройки в ваш клиент MCP. Если imagesorcery-mcp находится в PATH вашей системы после установки, вы можете использовать imagesorcery-mcp напрямую как команду. В противном случае вам нужно будет указать полный путь к исполняемому файлу.

"mcpServers": { "imagesorcery-mcp": { "command": "imagesorcery-mcp", // Or /full/path/to/venv/bin/imagesorcery-mcp if installed in a venv "transportType": "stdio", "autoApprove": ["detect", "crop", "get_models", "draw_texts", "get_metainfo", "rotate", "resize", "classify", "draw_rectangles", "find", "ocr"], "timeout": 100 } }
"mcpServers": { "imagesorcery-mcp": { "command": "imagesorcery-mcp.exe", // Or C:\\full\\path\\to\\venv\\Scripts\\imagesorcery-mcp.exe if installed in a venv "transportType": "stdio", "autoApprove": ["detect", "crop", "get_models", "draw_texts", "get_metainfo", "rotate", "resize", "classify", "draw_rectangles", "find", "ocr"], "timeout": 100 } }

📦 Дополнительные модели

Для некоторых инструментов требуется наличие определенных моделей в каталоге models :

# Download models for the detect tool download-yolo-models --ultralytics yoloe-11l-seg download-yolo-models --huggingface ultralytics/yolov8:yolov8m.pt

При загрузке моделей скрипт автоматически обновляет файл models/model_descriptions.json :

  • Для моделей Ultralytics: описания предопределены в src/imagesorcery_mcp/scripts/create_model_descriptions.py и включают подробную информацию о назначении, размере и характеристиках каждой модели.
  • Для моделей Hugging Face: Описания автоматически извлекаются из карточки модели на Hugging Face Hub. Скрипт пытается использовать имя модели из индекса модели или первой строки описания.

После загрузки моделей рекомендуется проверить описания в models/model_descriptions.json и при необходимости скорректировать их, чтобы предоставить более точную или подробную информацию о возможностях моделей и вариантах использования.

🤝 Вклад

Структура каталога

Этот репозиторий организован следующим образом:

. ├── .gitignore # Specifies intentionally untracked files that Git should ignore. ├── pyproject.toml # Configuration file for Python projects, including build system, dependencies, and tool settings. ├── pytest.ini # Configuration file for the pytest testing framework. ├── README.md # The main documentation file for the project. ├── setup.sh # A shell script for quick setup (legacy, for reference or local use). ├── models/ # This directory stores pre-trained models used by tools like `detect` and `find`. It is typically ignored by Git due to the large file sizes. │ ├── model_descriptions.json # Contains descriptions of the available models. │ ├── settings.json # Contains settings related to model management and training runs. │ └── *.pt # Pre-trained model. ├── src/ # Contains the source code for the 🪄 ImageSorcery MCP server. │ └── imagesorcery_mcp/ # The main package directory for the server. │ ├── __init__.py # Makes `imagesorcery_mcp` a Python package. │ ├── __main__.py # Entry point for running the package as a script. │ ├── logging_config.py # Configures the logging for the server. │ ├── server.py # The main server file, responsible for initializing FastMCP and registering tools. │ ├── logs/ # Directory for storing server logs. │ ├── scripts/ # Contains utility scripts for model management. │ │ ├── README.md # Documentation for the scripts. │ │ ├── __init__.py # Makes `scripts` a Python package. │ │ ├── create_model_descriptions.py # Script to generate model descriptions. │ │ ├── download_clip.py # Script to download CLIP models. │ │ ├── post_install.py # Script to run post-installation tasks. │ │ └── download_models.py # Script to download other models (e.g., YOLO). │ └── tools/ # Contains the implementation of individual MCP tools. │ ├── README.md # Documentation for the tools. │ ├── __init__.py # Import the central logger │ └── *.py # Implements the tool. └── tests/ # Contains test files for the project. ├── test_server.py # Tests for the main server functionality. ├── data/ # Contains test data, likely image files used in tests. └── tools/ # Contains tests for individual tools.

Настройка разработки

  1. Клонируйте репозиторий:
git clone https://github.com/sunriseapps/imagesorcery-mcp.git # Or your fork cd imagesorcery-mcp
  1. (Рекомендуется) Создайте и активируйте виртуальную среду:
python -m venv venv source venv/bin/activate # For Linux/macOS # venv\Scripts\activate # For Windows
  1. Установите пакет в режиме редактирования вместе с зависимостями разработки:
pip install -e ".[dev]"

Это установит imagesorcery-mcp и все зависимости из [project.dependencies] и [project.optional-dependencies].dev (включая build и twine ).

Правила

Эти правила применяются ко всем участникам: людям и ИИ.

  1. Прочитайте все файлы README.md в проекте. Поймите структуру и цель проекта. Поймите правила для внесения вклада. Подумайте, как это связано с вашей задачей, и как внести соответствующие изменения.
  2. Прочитайте pyproject.toml . Обратите внимание на разделы: [tool.ruff] , [tool.ruff.lint] , [project.optional-dependencies] и [project]dependencies . Строго следуйте стилю кода, определенному в pyproject.toml . Придерживайтесь стека, определенного в зависимостях pyproject.toml и не добавляйте новые зависимости без веской причины.
  3. Напишите свой код в новых и существующих файлах. Если нужны новые зависимости, обновите pyproject.toml и установите их через pip install -e . или pip install -e ".[dev]" . Не устанавливайте их напрямую через pip install . Проверьте существующие исходные коды для примеров (например, src/imagesorcery_mcp/server.py , src/imagesorcery_mcp/tools/crop.py ). Придерживайтесь стиля кода, соглашений об именовании, форматов входных и выходных данных, структуры кододеса, архитектуры и т. д. существующего кода.
  4. Обновите связанные файлы README.md с вашими изменениями. Придерживайтесь формата и структуры существующих файлов README.md .
  5. Напишите тесты для своего кода. Проверьте существующие тесты на наличие примеров (например, tests/test_server.py , tests/tools/test_crop.py ). Придерживайтесь стиля кода, соглашений об именовании, форматов входных и выходных данных, структуры кода, архитектуры и т. д. существующих тестов.
  6. Запустите тесты и линтер, чтобы убедиться, что все работает:
pytest ruff check .

В случае сбоев - исправить код и тесты. Строго необходимо, чтобы весь новый код соответствовал правилам линтера и проходил все тесты.

Советы по кодированию

  • Используйте подсказки по типу, где это уместно
  • Используйте pydantic для проверки и сериализации данных

📝 Вопросы?

Если у вас есть вопросы, проблемы или предложения относительно этого проекта, обращайтесь:

  • Автор проекта: titulus через LinkedIn
  • Генеральный директор Sunrise Apps: Влад Карм через LinkedIn

Вы также можете открыть сообщение об ошибке в репозитории для отправки отчетов об ошибках или запросов на новые функции.

📜 Лицензия

Этот проект лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT.

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sunriseapps/imagesorcery-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server