Skip to content

Releases: Timorleiderman/OpticMCP

v0.6.0 - Image Analysis, Comparison & Detection

Choose a tag to compare

@Timorleiderman Timorleiderman released this 11 Dec 06:23

What's New in v0.6.0

Image Analysis Tools

  • image_get_metadata - Extract image metadata including EXIF data, dimensions, format
  • image_get_stats - Calculate brightness, contrast, and sharpness
  • image_get_histogram - Generate color histograms with optional visualization
  • image_get_dominant_colors - Extract dominant colors using K-means clustering

Image Comparison Tools

  • image_compare_ssim - Compare images using Structural Similarity Index
  • image_compare_mse - Compare images using Mean Squared Error
  • image_compare_hash - Compare using perceptual hashing (phash, dhash, ahash)
  • image_get_hash - Generate perceptual hash for a single image
  • image_diff - Create visual diff highlighting differences between images
  • image_compare_histograms - Compare images by color distribution

Detection Tools

  • detect_faces - Detect faces using Haar cascades or DNN
  • detect_faces_save - Detect faces and save annotated image with bounding boxes
  • detect_motion - Detect motion between two frames
  • detect_edges - Edge detection using Canny, Sobel, or Laplacian
  • detect_objects - Object detection using MobileNet SSD (20 COCO classes)

Improvements

  • Improved face detection accuracy with haarcascade_frontalface_alt2.xml
  • Added overlap filtering to reduce false positives in face detection
  • Comprehensive test coverage for all new modules

Full Changelog: v0.4.0...v0.6.0

v0.4.0 - Screen Capture, MJPEG, HTTP Images & QR/Barcode Decoding

Choose a tag to compare

@Timorleiderman Timorleiderman released this 11 Dec 05:50

What's New

New Features

Screen Capture

  • screen_list_monitors - List all available monitors/displays
  • screen_save_image - Capture full screenshot of a monitor
  • screen_save_region - Capture a specific region of the screen

MJPEG Streams

  • mjpeg_save_image - Capture frames from MJPEG streams (IP cameras, ESP32-CAM, Arduino)
  • mjpeg_check_stream - Validate MJPEG stream availability

HTTP Images

  • http_save_image - Download and save images from any URL
  • http_check_image - Check if a URL points to a valid image

QR/Barcode Decoding (requires libzbar)

  • decode_qr - Decode QR codes from images
  • decode_barcode - Decode barcodes (EAN, UPC, Code128, etc.)
  • decode_all - Decode all codes from an image
  • decode_and_annotate - Decode and save annotated image with bounding boxes

Improvements

  • Added input validation and sanitization across all modules
  • Added security headers to streaming endpoints
  • Credentials are now masked in error messages and logs
  • Better error handling with descriptive messages

New Dependencies

  • requests - HTTP client for MJPEG and HTTP image tools
  • mss - Cross-platform screen capture
  • Pillow - Image processing
  • pyzbar - QR/barcode decoding (requires libzbar system library)

Installation Note for QR/Barcode Features

The decode tools require the libzbar system library:

v0.3.0 - Multi-Camera Dashboard & Realtime Streaming

Choose a tag to compare

@Timorleiderman Timorleiderman released this 10 Dec 22:33

What's New

Realtime Camera Streaming

  • MJPEG streaming with low-latency optimizations
  • Reduced buffer size and grab/retrieve pattern for realtime performance
  • Stream any USB camera to http://localhost:{port}

Multi-Camera Dashboard

  • Dynamic dashboard at http://localhost:9000 that auto-detects all active streams
  • Responsive grid layout - automatically arranges N cameras
  • Control buttons - Stop individual cameras or stop all at once
  • Auto-refreshes every 3 seconds to detect new/removed streams

New MCP Tools

  • start_stream(camera_index, port) - Start streaming a camera
  • stop_stream(camera_index) - Stop a camera stream
  • list_streams() - List all active streams
  • start_dashboard(port) - Start the multi-camera dashboard
  • stop_dashboard() - Stop the dashboard

Other Changes

  • Added bump2version for version management
  • Removed capture_image functions (base64) - use save_image instead
  • Consolidated and reduced test code by ~50%

Usage

# Install
pip install optic-mcp

# Or run directly
uvx optic-mcp

Full Changelog: v0.2.0...v0.3.0

v0.2.0 - CI & Tests

Choose a tag to compare

@Timorleiderman Timorleiderman released this 10 Dec 06:25

What's New

CI/CD

  • Added GitHub Actions CI workflow
    • Automated testing on Python 3.10, 3.11, 3.12, and 3.13
    • Linting with ruff (check and format)
    • Package build verification with twine

Testing

  • Added comprehensive unit test suite (15 tests)
    • Module structure and import tests
    • list_cameras() functionality tests
    • capture_image() functionality tests
    • save_image() functionality tests
    • Camera release verification tests

Code Quality

  • Fixed unused import
  • Formatted code with ruff
  • Added proper noqa comments for intentional E402 violations (cv2 import order)

Installation

```bash
pip install optic-mcp

or

uv pip install optic-mcp
```

v0.1.0 - Initial Release

Choose a tag to compare

@Timorleiderman Timorleiderman released this 10 Dec 06:09

OpticMCP v0.1.0 - Initial Release

First release of OpticMCP - MCP server for camera/vision tools.

Features

  • list_cameras - Scan and list all available USB cameras
  • capture_image - Capture a frame and return as base64-encoded JPEG
  • save_image - Capture a frame and save directly to a file

Installation

pip install optic-mcp

Or with uvx (no installation required):

uvx optic-mcp

MCP Configuration

{
  "mcpServers": {
    "optic-mcp": {
      "command": "uvx",
      "args": ["optic-mcp"]
    }
  }
}

Requirements

  • Python 3.10+
  • USB camera connected to your system