Skip to main content

A simple MCP server that reads local images and returns them as ImageContent for LLM vision analysis

Project description

MCP Local Image Reader

PyPI version License: MIT

A simple Model Context Protocol (MCP) server that reads local images and returns them as ImageContent for LLM vision analysis.

Install in VS Code

Features

  • 📷 Read local images and return as base64-encoded ImageContent
  • 🔧 Single tool: read_image - simple and focused
  • 🚀 One-click installation for VS Code
  • 📦 Install via PyPI with uvx - no environment setup needed

Supported Formats

PNG, JPEG, GIF, WebP, BMP, SVG

Installation

VS Code (Recommended)

Click the button above, or manually add to your VS Code settings:

For a specific version (recommended for security):

{
  "mcp": {
    "servers": {
      "local-image-reader": {
        "command": "uvx",
        "args": ["mcp-local-image-reader==0.1.1"],
        "env": {
          "UV_LINK_MODE": "copy"
        }
      }
    }
  }
}

For the latest version:

{
  "mcp": {
    "servers": {
      "local-image-reader": {
        "command": "uvx",
        "args": ["mcp-local-image-reader"],
        "env": {
          "UV_LINK_MODE": "copy"
        }
      }
    }
  }
}

Note: The UV_LINK_MODE=copy environment variable is required on Windows when using OneDrive or other cloud-synced folders.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "local-image-reader": {
      "command": "uvx",
      "args": ["mcp-local-image-reader==0.1.1"],
      "env": {
        "UV_LINK_MODE": "copy"
      }
    }
  }
}

Usage

In your AI assistant, ask it to read an image:

Please read the image at C:\Users\me\Pictures\screenshot.png and describe what you see.

The assistant will use the read_image tool to load the image and analyze it.

Security

Version Pinning

For production use, always pin to a specific version:

"args": ["mcp-local-image-reader==0.1.1"]

This ensures you won't automatically pull potentially malicious updates.

Source Code

This project is intentionally minimal (~100 lines) for easy auditing. The entire implementation is in server.py.

Known Issues

⚠️ Gemini Does Not Recognize Images from MCP

When using VS Code Copilot with Gemini models, images returned via MCP ImageContent are not visually recognized. The tool execution succeeds, but Gemini cannot "see" the image content.

Model MCP Image Recognition
Claude ✅ Works
GPT ✅ Works
Gemini ❌ Not working

Root Cause: This is a known issue with how Gemini handles non-text content types in MCP responses.

Related Issue: gemini-cli #15851 - Only text content type supported

Workaround: Use Claude or GPT models for image analysis tasks until this issue is resolved.

Tool Reference

read_image

Reads an image from the filesystem and returns it as base64-encoded ImageContent.

Parameters:

  • file_path (string, required): Absolute path to the image file

Returns:

  • ImageContent with base64-encoded image data and appropriate MIME type

Example:

{
  "name": "read_image",
  "arguments": {
    "file_path": "/path/to/image.png"
  }
}

Development

# Clone the repository
git clone https://github.com/masachika-kamada/mcp-local-image-reader.git
cd mcp-local-image-reader

# Install dependencies
uv sync

# Run locally
uv run python server.py

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run python server.py

License

MIT License - see LICENSE for details.

Contributing

Issues and pull requests are welcome! Please feel free to contribute.

Related Projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_local_image_reader-0.1.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_local_image_reader-0.1.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file mcp_local_image_reader-0.1.1.tar.gz.

File metadata

File hashes

Hashes for mcp_local_image_reader-0.1.1.tar.gz
Algorithm Hash digest
SHA256 af824b0545950fa35ecf1410fa88926f4db03ca3cccf90cedcbc2ab05ecbb0ba
MD5 d2daae3536460d07bf48b6542d94378f
BLAKE2b-256 d049e3bde389a5b685ad759fb659cb6266621bff1b29bef3c1567073fba6cbdf

See more details on using hashes here.

File details

Details for the file mcp_local_image_reader-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_local_image_reader-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5b6484404978c0b45b45c444fa55d3f793c4508f3c10fb3a10932bba37bb1ed4
MD5 fed1d2939170a33a31256ae5961e68c0
BLAKE2b-256 7057d5028b904048e817068e5c7201a59130727dbc50eb1b66cea379400655c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page