Labsco
MCP SERVER

Pull images into a conversation from URLs or local paths — returned as base64 with the right MIME type.

Image Analysis, OCR & Vision
Summary
The step between "here is a link" and the model seeing the picture.

It handles the parts that otherwise break: several images at once, local files and remote URLs in the same request, and oversized files compressed before they arrive rather than after they fail.

What it is

A fetch-and-prepare step for images. It takes a mixed list of web URLs and local file paths, retrieves them in parallel, compresses the large ones, and hands each back as a base64 string with its MIME type, so the model receives something it can actually look at.

What you get
  • `fetch_images` — takes `image_sources`, a list of URLs or file paths, and returns each processed image as base64 with its MIME type
  • Both sources in one call: http and https URLs alongside local paths, mixed freely in the same list
  • Automatic compression for images larger than 1MB, and specialised handling for large local files
  • Parallel processing across the list, and MIME types mapped from the file extension
Requirements

Python 3.10+ and the uv package manager. Create a virtual environment, `uv pip install -r requirements.txt`, and point your client at `uv --directory /path/to/mcp-image run mcp_image.py`. When a fetch fails, the README's checklist is the right order: confirm the dependencies installed, then that local paths are correct and readable, then whether the content type is one the server maps.