LeoSole423/images_mcp_server
If you are the rightful owner of images_mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A comprehensive MCP server for advanced image processing, providing powerful tools for AI to manipulate, process, and analyze complex images.
crop_image
Crops an image by specifying coordinates.
zoom_image
Applies zoom to an image with focal point control.
enhance_image
Enhances image quality by adjusting brightness, contrast, and sharpness.
detect_edges
Detects edges using the Canny algorithm.
segment_image
Segments the image into regions using SLIC.
extract_text_regions
Identifies regions that might contain text.
get_image_info
Provides detailed information about the image.
Servidor MCP de Análisis de Imágenes 🖼️🔍
Un servidor MCP (Model Context Protocol) completo para procesamiento avanzado de imágenes. Proporciona herramientas potentes que las IAs (ChatGPT, Claude, etc.) pueden usar para manipular, procesar y analizar imágenes complejas.
🚀 Características
Herramientas para IA
- Usado POR la IA: La IA usa estas herramientas para procesar imágenes, no necesitas API keys
- Procesamiento local: Todas las operaciones se realizan con PIL, OpenCV y scikit-image
- Flujo inteligente: La IA puede combinar herramientas para análisis complejos
Manipulación de Imágenes
- Zoom inteligente: Acercamiento/alejamiento con control de punto focal
- Recorte preciso: Extracción de regiones específicas
- Mejora automática: Ajuste de brillo, contraste y nitidez
Procesamiento Avanzado
- Detección de bordes: Algoritmo Canny para identificar contornos
- Segmentación: División en regiones usando algoritmo SLIC
- Extracción de texto: Identificación de áreas con texto potencial
- Análisis estadístico: Información detallada sobre propiedades de la imagen
📦 Instalación
Prerrequisitos
- Python 3.8 o superior
- NO necesitas API keys - El servidor es usado POR la IA, no llama a APIs externas
Instalación automática
# Clonar el repositorio
git clone <tu-repositorio>
cd image_mcp_server
# Opción 1: Instalar con pyproject.toml
pip install -e .
# Opción 2: Instalar con requirements.txt
pip install -r requirements.txt
⚙️ Configuración
Variables de Entorno (Opcional)
Crea un archivo .env
si quieres personalizar la configuración:
# Server Configuration
SERVER_PORT=8083
# Image Processing Configuration
MAX_IMAGE_SIZE=10485760 # 10MB en bytes
TEMP_DIR=./temp_images
OUTPUT_DIR=./processed_images
DEBUG=true
Configuración MCP
Actualiza tu archivo de configuración MCP (config.json
):
{
"mcpServers": {
"image-analysis": {
"command": "python",
"args": ["src/main.py"]
}
}
}
🛠️ Uso
🔄 Flujo de Trabajo
1. USUARIO → envía imagen a ChatGPT/Claude
2. CHATGPT/CLAUDE → usa herramientas MCP para procesar
3. SERVIDOR MCP → procesa con PIL/OpenCV/scikit-image
4. SERVIDOR MCP → devuelve imagen procesada
5. CHATGPT/CLAUDE → analiza resultado y responde al usuario
Iniciando el Servidor
🖥️ Para uso LOCAL (Claude Desktop, etc.)
python src/main.py
🌐 Para uso con OpenAI ChatGPT (URL)
python src/http_server.py
Esto iniciará un servidor HTTP en puerto 8083 compatible con URLs.
🤖 Configuración para OpenAI ChatGPT
- Ejecutar servidor HTTP:
python src/http_server.py
- Configurar URL en OpenAI:
https://imagemcp.aeye.com.ar/
- Endpoints disponibles:
GET /
- Información del servidorGET /tools
- Lista de herramientasPOST /execute/{tool_name}
- Ejecutar herramientasGET /health
- Estado del servidor
Ver archivo openai_setup.md
para instrucciones detalladas.
Herramientas Disponibles
1. crop_image
Recorta una imagen especificando coordenadas.
{
"tool": "crop_image",
"arguments": {
"image_data": "base64_encoded_image",
"x": 100,
"y": 100,
"width": 300,
"height": 200
}
}
2. zoom_image
Aplica zoom a una imagen con control de punto focal.
{
"tool": "zoom_image",
"arguments": {
"image_data": "base64_encoded_image",
"zoom_factor": 2.0,
"center_x": 250,
"center_y": 150
}
}
3. enhance_image
Mejora la calidad de la imagen.
{
"tool": "enhance_image",
"arguments": {
"image_data": "base64_encoded_image",
"brightness": 1.2,
"contrast": 1.3,
"sharpness": 1.1
}
}
4. detect_edges
Detecta bordes usando el algoritmo Canny.
{
"tool": "detect_edges",
"arguments": {
"image_data": "base64_encoded_image",
"threshold1": 100,
"threshold2": 200
}
}
5. segment_image
Segmenta la imagen en regiones usando SLIC.
{
"tool": "segment_image",
"arguments": {
"image_data": "base64_encoded_image",
"n_segments": 100
}
}
6. extract_text_regions
Identifica regiones que podrían contener texto.
{
"tool": "extract_text_regions",
"arguments": {
"image_data": "base64_encoded_image"
}
}
7. get_image_info
Obtiene información detallada sobre la imagen.
{
"tool": "get_image_info",
"arguments": {
"image_data": "base64_encoded_image"
}
}
🎯 Casos de Uso
Análisis Médico
# Flujo que una IA puede usar para análisis médico
Usuario: "Analiza esta radiografía"
IA usa herramientas MCP:
1. get_image_info() - IA verifica calidad de imagen
2. enhance_image() - IA mejora contraste/nitidez
3. detect_edges() - IA identifica estructuras
4. segment_image() - IA aísla regiones de interés
5. zoom_image() - IA enfoca áreas sospechosas
6. IA analiza todos los resultados con su capacidad visual
Análisis de Documentos
# Procesamiento de documentos complejos
Usuario: "Extrae el texto de este documento escaneado"
IA usa herramientas MCP:
1. get_image_info() - IA verifica resolución
2. enhance_image() - IA mejora legibilidad
3. extract_text_regions() - IA identifica áreas de texto
4. crop_image() - IA extrae secciones específicas
5. IA lee y transcribe el contenido usando su capacidad OCR
Análisis de Imágenes Satelitales
# Análisis geoespacial
Usuario: "Identifica características en esta imagen satelital"
IA usa herramientas MCP:
1. segment_image() - IA identifica diferentes terrenos
2. detect_edges() - IA encuentra características geográficas
3. zoom_image() - IA enfoca áreas de interés
4. IA clasifica y describe las características encontradas
📁 Estructura del Proyecto
image_mcp_server/
├── src/
│ ├── __init__.py
│ ├── main.py # Servidor MCP local (stdio)
│ └── http_server.py # Servidor HTTP para OpenAI ChatGPT ✨ NUEVO
├── pyproject.toml # Configuración del proyecto y dependencias
├── requirements.txt # Dependencias para pip install
├── config.json # Configuración MCP local (puerto 8083)
├── openai_setup.md # Instrucciones para OpenAI ChatGPT ✨ NUEVO
└── README.md # Documentación
🧪 Ejemplos de Uso
Ejemplo básico de herramienta:
{
"tool": "zoom_image",
"arguments": {
"image_data": "base64_encoded_image",
"zoom_factor": 2.0,
"center_x": 250,
"center_y": 150
}
}
🐛 Solución de Problemas
¿Necesito API keys?
- NO - Este servidor es usado POR la IA, no llama a APIs externas
- La IA (ChatGPT/Claude) usa estas herramientas para procesar imágenes localmente
Error: "Módulo no encontrado"
- Ejecuta
pip install -e .
opip install -r requirements.txt
para instalar dependencias - Verifica que estés usando Python 3.8 o superior
Imágenes muy grandes
- El servidor limita el tamaño de imagen a 10MB por defecto
- Ajusta
MAX_IMAGE_SIZE
en las variables de entorno si necesitas procesar imágenes más grandes
Problemas de rendimiento
- Las operaciones de segmentación y detección de bordes pueden ser lentas en imágenes grandes
- Considera redimensionar imágenes muy grandes antes del procesamiento
🤝 Contribución
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
📝 Licencia
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
🎖️ Características Técnicas
- Asíncrono: Diseñado para manejar múltiples solicitudes concurrentes
- Extensible: Fácil agregar nuevas herramientas de procesamiento
- Robusto: Manejo de errores completo y logging detallado
- Optimizado: Procesamiento eficiente de imágenes grandes
- Compatible: Funciona con cualquier cliente MCP estándar
📞 Soporte
Si encuentras problemas o tienes preguntas:
- Consulta la sección de solución de problemas
- Revisa la documentación en este README
- Abre un issue en el repositorio
- Contacta al equipo de desarrollo
¡Disfruta analizando imágenes con IA! 🚀✨