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
Magia de herramientas de reconocimiento y edición de imágenes basadas en ComputerVision para asistentes de IA
❌ Sin ImageSorcery MCP
Los asistentes de IA están limitados cuando trabajan con imágenes:
- ❌ No se pueden modificar ni analizar imágenes directamente
- ❌ No es posible recortar, redimensionar ni procesar imágenes
- ❌ Algunos LLM no pueden detectar objetos ni extraer texto de las imágenes
- ❌ Limitado a descripciones verbales sin manipulación visual.
✅ Con ImageSorcery MCP
🪄 ImageSorcery
proporciona a los asistentes de IA potentes capacidades de procesamiento de imágenes:
- ✅ Recortar, redimensionar y rotar imágenes con precisión
- ✅ Dibujar texto y formas en imágenes
- ✅ Detectar objetos utilizando modelos de última generación
- ✅ Extraer texto de imágenes con OCR
- ✅ Obtenga metadatos detallados de la imagen
- ✅ Utilice una amplia gama de modelos previamente entrenados para detección de objetos, OCR y más
Simplemente pídale a su IA que le ayude con las tareas de imágenes:
Copiar fotos con mascotas de la carpeta "
photos
a la carpetapets
".
"Busca un gato en la foto.jpg y recorta la imagen a la mitad, tanto en altura como en ancho, para que el gato quede centrado". 😉Sugerencia : utilice la ruta completa a sus archivos.
Numere los campos del formulario en este
form.jpg
con el modelofoduucom/web-form-ui-field-detection
y complete elform.md
con la lista de campos descritos. 😉Sugerencia : especifique el modelo y la confianza".
😉 Sugerencia: agregue "use imagesorcery" para asegurarse de que use la herramienta adecuada.
Su herramienta combinará varias herramientas enumeradas a continuación para lograr su objetivo.
🛠️ Herramientas disponibles
Herramienta | Descripción | Ejemplo de mensaje |
---|---|---|
crop | Recorta una imagen utilizando el método de corte NumPy de OpenCV | Recortar mi imagen 'input.png' de las coordenadas (10,10) a (200,200) y guardarla como 'cropped.png' |
resize | Cambia el tamaño de una imagen usando OpenCV | Redimensiona mi imagen 'photo.jpg' a 800x600 píxeles y guárdala como 'resized_photo.jpg' |
rotate | Gira una imagen usando la función imutils.rotate_bound | Girar mi imagen 'foto.jpg' 45 grados y guardarla como 'foto_rotada.jpg' |
draw_texts | Dibuja texto en una imagen usando OpenCV | Añade el texto "Hola Mundo" en la posición (50,50) y "Copyright 2023" en la esquina inferior derecha de mi imagen "photo.jpg". |
draw_rectangles | Dibuja rectángulos en una imagen usando OpenCV | Dibuja un rectángulo rojo de (50,50) a (150,100) y un rectángulo azul relleno de (200,150) a (300,250) en mi imagen 'photo.jpg'. |
get_metainfo | Obtiene información de metadatos sobre un archivo de imagen | Obtener información de metadatos sobre mi imagen 'photo.jpg' |
detect | Detecta objetos en una imagen utilizando modelos de Ultralytics | Detectar objetos en mi imagen 'photo.jpg' con un umbral de confianza de 0,4. |
find | Encuentra objetos en una imagen basándose en una descripción de texto. | "Buscar todos los perros en mi imagen 'photo.jpg' con un umbral de confianza de 0,4" |
get_models | Enumera todos los modelos disponibles en el directorio de modelos | "Enumerar todos los modelos disponibles en el directorio de modelos" |
ocr | Realiza reconocimiento óptico de caracteres (OCR) en una imagen utilizando EasyOCR | Extraer texto de mi imagen 'document.jpg' mediante OCR en inglés |
😉 Sugerencia: puede encontrar información detallada e instrucciones de uso para cada herramienta en el /src/imagesorcery_mcp/tools/README.md
de la herramienta.
🚀 Primeros pasos
Requisitos
Python 3.10
o superiorClaude.app
,Cline
u otro cliente MCP
Instalación
- Crear y activar un entorno virtual (muy recomendado): para una instalación confiable de todos los componentes, especialmente el paquete
clip
(instalado a través del script posterior a la instalación), se recomienda encarecidamente utilizar el módulovenv
integrado de Python en lugar deuv venv
. - Instale el paquete en el entorno virtual activado: puede utilizar
pip
ouv pip
. - Ejecutar el script posterior a la instalación: Este paso es crucial. Descarga los modelos necesarios e intenta instalar el paquete de Python
clip
desde GitHub en el entorno virtual activo.
- Crea un directorio
models
(generalmente dentro del directorio de paquetes del sitio de su entorno virtual, o una ubicación específica del usuario si se instala globalmente) para almacenar modelos previamente entrenados. - Genera allí un archivo
models/model_descriptions.json
inicial. - Descarga los modelos YOLO predeterminados (
yoloe-11l-seg-pf.pt
,yoloe-11s-seg-pf.pt
,yoloe-11l-seg.pt
,yoloe-11s-seg.pt
) requeridos por la herramientadetect
en este directoriomodels
. - Intenta instalar el paquete de Python
clip
desde el repositorio de GitHub de Ultralytics directamente en el entorno de Python activo. Esto es necesario para la función de solicitud de texto en la herramientafind
. - Descarga el archivo del modelo CLIP requerido por la herramienta
find
en el directoriomodels
.
Puede ejecutar este proceso en cualquier momento para restaurar los modelos predeterminados e intentar la instalación clip
.
- Uso de
uv venv
para crear entornos virtuales: Según las pruebas, es posible que los entornos virtuales creados conuv venv
no incluyanpip
de forma que el scriptimagesorcery-mcp --post-install
instale automáticamente el paqueteclip
desde GitHub (esto podría generar el error "No module named pip" durante la instalaciónclip
). Si decide usaruv venv
:- Crea y activa tu
uv venv
. - Instalar
imagesorcery-mcp
:uv pip install imagesorcery-mcp
. - Instale manualmente el paquete
clip
en suuv venv
activo: - Ejecute
imagesorcery-mcp --post-install
. Esto descargará los modelos, pero podría fallar al instalar el paquete de Pythonclip
. Para una instalación automatizada y más fluidaclip
mediante el script posterior a la instalación, se recomienda usarpython -m venv
(como se describe en el paso 1 anterior) para crear el entorno virtual.
- Crea y activa tu
- Uso de
uvx imagesorcery-mcp --post-install
: Ejecutar el script posterior a la instalación directamente conuvx
(p. ej.,uvx imagesorcery-mcp --post-install
) probablemente no instale el paquete de Python "clip
". Esto se debe a que el entorno temporal creado poruvx
no suele tenerpip
disponible para el script. Se descargarán los modelos, pero este comando no instalará el paqueteclip
. Si pretende usaruvx
para ejecutar el servidor principalimagesorcery-mcp
y necesita la funcionalidadclip
", deberá asegurarse de que el paqueteclip
esté instalado en un entorno de Python accesible queuvx
pueda encontrar, o bien, considere instalarimagesorcery-mcp
en un entorno persistente creado conpython -m venv
.
⚙️ Configuración del cliente MCP
Agregue esta configuración a su cliente MCP. Si imagesorcery-mcp
está en la ruta de su sistema después de la instalación, puede usar imagesorcery-mcp
directamente como comando. De lo contrario, deberá proporcionar la ruta completa del ejecutable.
📦 Modelos adicionales
Algunas herramientas requieren que modelos específicos estén disponibles en el directorio models
:
Al descargar modelos, el script actualiza automáticamente el archivo models/model_descriptions.json
:
- Para los modelos Ultralytics: las descripciones están predefinidas en
src/imagesorcery_mcp/scripts/create_model_descriptions.py
e incluyen información detallada sobre el propósito, el tamaño y las características de cada modelo. - Para los modelos Hugging Face: Las descripciones se extraen automáticamente de la tarjeta del modelo en Hugging Face Hub. El script intenta usar el nombre del modelo del índice o la primera línea de la descripción.
Después de descargar los modelos, se recomienda verificar las descripciones en models/model_descriptions.json
y ajustarlas si es necesario para proporcionar información más precisa o detallada sobre las capacidades y los casos de uso de los modelos.
🤝 Contribuyendo
Estructura del directorio
Este repositorio está organizado de la siguiente manera:
Configuración de desarrollo
- Clonar el repositorio:
- (Recomendado) Crear y activar un entorno virtual:
- Instale el paquete en modo editable junto con las dependencias de desarrollo:
Esto instalará imagesorcery-mcp
y todas las dependencias de [project.dependencies]
y [project.optional-dependencies].dev
(incluidos build
y twine
).
Normas
Estas reglas se aplican a todos los contribuyentes: humanos e IA.
- Lea todos los archivos
README.md
del proyecto. Comprenda la estructura y el propósito del proyecto. Entienda las pautas para contribuir. Analice cómo se relaciona con su tarea y cómo realizar los cambios correspondientes. - Lea
pyproject.toml
. Preste atención a las secciones:[tool.ruff]
,[tool.ruff.lint]
,[project.optional-dependencies]
y[project]dependencies
. Siga estrictamente el estilo de código definido enpyproject.toml
. Respete la pila definida en las dependenciaspyproject.toml
y no agregue nuevas dependencias sin una buena razón. - Escriba su código en archivos nuevos y existentes. Si necesita nuevas dependencias, actualice
pyproject.toml
e instálelas mediantepip install -e .
opip install -e ".[dev]"
. No las instale directamente mediantepip install
. Consulte los códigos fuente existentes para obtener ejemplos (p. ej.src/imagesorcery_mcp/server.py
osrc/imagesorcery_mcp/tools/crop.py
). Respete el estilo del código, las convenciones de nomenclatura, los formatos de datos de entrada y salida, la estructura del código, la arquitectura, etc. del código existente. - Actualice los archivos
README.md
relacionados con los cambios. Respete el formato y la estructura de los archivosREADME.md
existentes. - Escribe pruebas para tu código. Consulta ejemplos de pruebas existentes (p. ej.,
tests/test_server.py
otests/tools/test_crop.py
). Respeta el estilo del código, las convenciones de nomenclatura, los formatos de datos de entrada y salida, la estructura del código, la arquitectura, etc., de las pruebas existentes. - Ejecute pruebas y linter para asegurarse de que todo funciona:
En caso de fallos, corrija el código y las pruebas. Es estrictamente necesario que todo el código nuevo cumpla con las reglas del linter y supere todas las pruebas.
Consejos de codificación
- Utilice sugerencias de tipo cuando sea apropiado
- Utilice Pydantic para la validación y serialización de datos
¿Preguntas?
Si tiene alguna pregunta, problema o sugerencia con respecto a este proyecto, no dude en comunicarse con:
- Autor del proyecto: titulus vía LinkedIn
- Vlad Karm , director ejecutivo de Sunrise Apps, a través de LinkedIn
También puedes abrir un problema en el repositorio para informes de errores o solicitudes de funciones.
📜 Licencia
Este proyecto está licenciado bajo la Licencia MIT. Esto significa que usted tiene libertad de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT.
This server cannot be installed
ImageSorcery MCP
Related MCP Servers
- Rust
- GoMIT License
- TypeScript
- -securityAlicense-qualitymcp-victoriametricsLast updated -25GoApache 2.0