imagefeatures-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@imagefeatures-mcpcheck blurriness in photo.jpg"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
imagefeatures-mcp 🖼️
Give LLMs "mathematical eyes" for image analysis.
An MCP (Model Context Protocol) server that wraps the imagefeatures library, exposing classic computer vision features as tools that Claude and other LLMs can use.
Why This Exists
LLM Vision | imagefeatures MCP |
"A sunset photo with warm colors" |
|
"Looks sharp to me" (often wrong) | Texture entropy: 1.2 → blur score: 0.78 |
Slow on 10,000 images | Extract once, query instantly |
LLMs see semantics ("a dog on a beach"). imagefeatures sees statistics (color histograms, texture patterns, edge orientations). Combine them for agents that reason about both content AND composition.
What You Can Build
1. Visual Similarity Search
Find images similar by color, texture, or combined features:

Same query image returns different results based on which feature you prioritize — CEDD finds structural matches, Color Histogram finds palette matches, LBP finds texture matches.
2. Color-Based Organization
Sort images by dominant hue for color-organized galleries:

Images automatically sorted: grayscale → warm tones → greens → blues → reds
3. Vibe-Based Filtering
Filter by visual "mood" categories derived from mathematical features:

"Blue/Water" and "Green/Nature" tags computed from color + texture analysis, not AI labeling
Installation
# Install the MCP server
pip install imagefeatures-mcp
# Or install from source
pip install git+https://github.com/kelkalot/imagefeatures-mcp.gitDependencies:
imagefeatures — the underlying feature extraction library
mcp — Model Context Protocol SDK
numpy, pillow
Quick Start
Claude Desktop
Add to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"imagefeatures": {
"command": "python",
"args": ["-m", "imagefeatures_mcp"]
}
}
}Restart Claude Desktop. You can now ask:
"What are the dominant colors in this photo?"
"Find similar images in my ~/Photos folder"
"Sort these images by color"
"Which of these photos are blurry?"
Programmatic Usage
# Run the server directly
python -m imagefeatures_mcp
# Test with MCP Inspector
npx @modelcontextprotocol/inspector python -m imagefeatures_mcpAvailable Tools
analyze_image
Analyze an image's visual composition using mathematical features.
analyze_image(image_path, preset="quick")Presets:
Preset | Features | Dimensions | Use Case |
| ColorHistogram, EdgeHistogram | 144 | Fast overview |
| ColorHistogram, ColorMoments, DominantColors, OpponentHistogram | 605 | Color analysis |
| LBP, Tamura, Haralick, Gabor | 328 | Texture analysis |
| EdgeHistogram, HOG, HuMoments | 231 | Shape/edge analysis |
| CEDD, FCTH, JCD | 504 | Best for similarity |
| All 22 features | 3,058 | Comprehensive |
compare_images
Compare two images mathematically.
compare_images(image_a, image_b, feature="CEDD", metric="cosine")Features: Any of the 22 available (CEDD, JCD, ColorHistogram, PHOG, etc.)
Metrics: cosine, euclidean, l1, jsd, tanimoto
find_similar_in_folder
Find visually similar images in a folder.
find_similar_in_folder(query_image, folder_path, top_k=5, feature="JCD")get_dominant_colors
Extract dominant colors with exact hex codes.
get_dominant_colors(image_path, num_colors=5)check_image_quality
Detect blur and quality issues using texture analysis.
check_image_quality(image_path)sort_by_color
Sort all images in a folder by dominant hue.
sort_by_color(folder_path)filter_by_vibe
Filter images by visual category.
filter_by_vibe(folder_path, vibe="blue_water")Vibes: blue_water, green_nature, warm_sunset, cool_moody, high_contrast, soft_minimal, grayscale, vibrant
extract_features
Get raw feature vectors for ML pipelines.
extract_features(image_path, features="CEDD,PHOG,DominantColors")list_features
List all 22 available features with descriptions.
Available Features
The imagefeatures library provides 22 classic computer vision descriptors totaling 3,058 dimensions:
Color Features (741 dims)
Feature | Dims | Description |
| 64 | RGB/HSV/Luminance histogram |
| 9 | Mean, std, skewness per channel |
| 512 | Opponent color space histogram |
| 72 | Fuzzy HSV quantization |
| 20 | K-means extracted dominant colors |
| 64 | MPEG-7 Haar-based color descriptor |
Texture Features (620 dims)
Feature | Dims | Description |
| 256 | Classic LBP histogram |
| 36 | Rotation-invariant LBP |
| 48 | Multi-scale Gabor wavelets |
| 18 | Coarseness, contrast, directionality |
| 6 | GLCM texture features |
| 256 | Census transform histogram |
Shape Features (861 dims)
Feature | Dims | Description |
| 80 | MPEG-7 edge directions |
| 630 | Pyramid histogram of oriented gradients |
| 144 | Histogram of oriented gradients |
| 7 | Shape-invariant Hu moments |
Layout Features (76 dims)
Feature | Dims | Description |
| 12 | MPEG-7 DCT color layout |
| 64 | DCT luminance descriptor |
Combined Features (760 dims)
Feature | Dims | Description |
| 144 | Color + edge directivity |
| 192 | Fuzzy color + texture |
| 168 | Joint CEDD + FCTH |
| 256 | Spatial color correlation |
Recommended for Common Tasks
Task | Recommended Feature |
General similarity search |
|
Color matching |
|
Texture analysis |
|
Shape matching |
|
Duplicate detection |
|
Example Workflows
"Vibe-Based" Asset Search
User: "Find marketing images that feel calm and professional"
Claude's strategy:
1. filter_by_vibe(folder, "blue_water") → narrows to ~200 images
2. get_dominant_colors() → filters for brand palette match
3. check_image_quality() → removes blurry images
4. Uses native vision on finalists to confirm contentBrand Compliance Checker
User: "Do these product photos match our brand colors?"
Claude's strategy:
1. get_dominant_colors() on each image
2. Compare hex codes to brand palette (#1a73e8, #ffffff)
3. Report images that deviate > 10%Photo Library Deduplication
User: "Find duplicate or near-duplicate photos"
Claude's strategy:
1. extract_features() with JCD for all images
2. compare_images() pairwise
3. Group images with > 90% similarityLLM Vision vs imagefeatures
Task | LLM Vision | imagefeatures | Winner |
"What's in this image?" | ✅ Excellent | ❌ Can't do | LLM |
Exact color hex codes | ❌ Guesses | ✅ Precise | imagefeatures |
Blur detection | ❌ Often wrong | ✅ ~90% accurate | imagefeatures |
Search 10,000 images | Slow, expensive | Fast, free | imagefeatures |
"What emotion does this convey?" | ✅ Excellent | ❌ Can't do | LLM |
Consistent, reproducible | ❌ Variable | ✅ Deterministic | imagefeatures |
Best approach: Use both. imagefeatures for precision/scale, LLM vision for understanding.
Development
# Clone the repo
git clone https://github.com/kelkalot/imagefeatures-mcp.git
cd imagefeatures-mcp
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run the server locally
python -m imagefeatures_mcpRelated Projects
imagefeatures — The underlying feature extraction library
MCP — Model Context Protocol specification
LIRE — Java library that inspired imagefeatures
License
MIT
Citation
If you use this in research, please cite:
@software{imagefeatures_mcp,
title = {imagefeatures-mcp: MCP Server for Classic Image Features},
author = {Michael A. Riegler},
url = {https://github.com/kelkalot/imagefeatures-mcp},
year = {2025}
}Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/kelkalot/imagefeatures-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server