LabscoMCP early access ↗
IA-ProgrammingMCP SERVER

Image

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

by IA-Programming ↗Image Analysis, OCR & VisionCommunity

LABSCO 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. Clone the repository and point your client at uv --directory <YOUR_PATH_TO_MCP_IMAGES> run mcp_image.py; uv installs the dependencies declared in pyproject.toml on first launch. The README's uv pip install -r requirements.txt step does not apply, because the repository has no requirements.txt. 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.

Setup effort

Build from source