Skip to main content
Glama

process_images

Process images in a directory with operations like enhancement, OCR text extraction, resizing, and deduplication to organize and extract information from visual content.

Instructions

Process images in a directory with various operations. Args: image_dir: Directory containing images to process operations: List of operations (enhance, ocr, resize, deduplicate) ocr_language: Language for OCR processing (default: eng) Returns: JSON string with processing results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
image_dirYes
operationsNo
ocr_languageNoeng

Implementation Reference

  • The primary handler for the 'process_images' MCP tool, decorated with @mcp.tool() for automatic registration and schema inference from type hints. Implements the tool logic by delegating to ImageProcessor.process_batch.
    @mcp.tool() async def process_images( image_dir: str, operations: List[str] = ["enhance"], ocr_language: str = "eng" ) -> str: """ Process images in a directory with various operations. Args: image_dir: Directory containing images to process operations: List of operations (enhance, ocr, resize, deduplicate) ocr_language: Language for OCR processing (default: eng) Returns: JSON string with processing results. """ try: ip = get_image_processor() results = ip.process_batch(image_dir, operations) # Add OCR language info to results if OCR was performed if "ocr" in operations: for ocr_result in results.get("ocr_results", []): ocr_result["language"] = ocr_language result = { "status": "success", "image_directory": image_dir, "operations": operations, "results": results } return json.dumps(result, indent=2) except Exception as e: logger.error(f"Failed to process images: {e}") return json.dumps({ "status": "error", "error": str(e), "image_directory": image_dir, "operations": operations })
  • Core implementation of batch image processing (enhance, OCR, resize, deduplicate) in ImageProcessor.process_batch, directly called by the tool handler to perform the specified operations on images in a directory.
    def process_batch(self, image_dir: str, operations: List[str] = None) -> Dict[str, List[str]]: """ Process a batch of images in a directory. Args: image_dir: Directory containing images operations: List of operations ('enhance', 'ocr', 'resize', 'deduplicate') Returns: Dictionary with results of operations """ if operations is None: operations = ['enhance'] image_paths = [] for ext in self.supported_formats: image_paths.extend(Path(image_dir).glob(f"*{ext}")) image_paths.extend(Path(image_dir).glob(f"*{ext.upper()}")) image_paths = [str(p) for p in image_paths] results = { 'processed_files': [], 'enhanced_files': [], 'ocr_results': [], 'resized_files': [], 'duplicates': {} } try: # Find duplicates first if 'deduplicate' in operations: results['duplicates'] = self.find_duplicates(image_paths) for image_path in image_paths: results['processed_files'].append(image_path) try: # Enhance image if 'enhance' in operations: enhanced_path = self.enhance_image(image_path) results['enhanced_files'].append(enhanced_path) # Extract text if 'ocr' in operations: text = self.extract_text(image_path) results['ocr_results'].append({ 'file': image_path, 'text': text }) # Resize image if 'resize' in operations: resized_path = self.resize_image(image_path) results['resized_files'].append(resized_path) except Exception as e: logger.error(f"Failed to process {image_path}: {e}") continue logger.info(f"Batch processed {len(results['processed_files'])} images") return results except Exception as e: logger.error(f"Failed to process batch in {image_dir}: {e}") raise

Latest Blog Posts

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/PovedaAqui/auto-snap-mcp'

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