MCP server for classic image feature extraction - gives LLMs mathematical eyes for image analysis
Server has 9 tools with complete input schemas and descriptions. Naming follows verb_noun convention (analyze_image, compare_images, etc.). Descriptions are substantive (100-200 chars) and explain the mathematical nature of analysis. However, output schemas are not documented in the source code, LLMs cannot see what fields to expect from responses. Parameters lack enums where appropriate (e.g., 'preset' and 'feature' accept free-form strings despite having known valid values). Error handling is absent, no guidance on recovery or invalid input handling. Security: tools accept file paths as strings with no validation, risking path traversal attacks.
Analyze an image's visual composition using mathematical features. This extracts statistical properties (color distribution, texture patterns, edge orientations) that describe HOW an image looks, not WHAT it contains.
Assess image quality metrics. Analyzes sharpness, contrast, brightness, and other quality indicators to help identify well-composed vs. problematic images.
Compare two images mathematically to get a similarity score. This measures visual similarity based on mathematical features, NOT semantic content. Different subjects can be "similar" if they share color palettes, textures, or compositions.
Extract raw feature vectors from an image. Returns the mathematical feature vectors as JSON for advanced use cases where you need the raw numerical data for custom analysis.
Filter images by visual "vibe" or aesthetic category. Categorizes images by overall visual mood/style (e.g., warm, cool, minimalist, busy) based on mathematical feature analysis.
Output schemas not documented. LLMs cannot see what fields responses contain, forcing them to guess downstream field names and breaking tool chaining.
Parameters 'preset', 'feature', 'metric', 'sort_by', 'vibe' accept free-form strings but have known valid values. Should be enums to prevent hallucinated invalid values.
No input validation or error handling. File paths accepted as raw strings with no existence checks, risking path traversal attacks. No error messages guide LLM recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Find visually similar images in a folder. Scans all images and ranks them by visual similarity to the query. Similarity is based on mathematical features, not semantic content.
Extract the dominant colors from an image. Returns the most visually prominent colors as RGB values, useful for understanding color composition and palette.
List all available image features and their descriptions. Shows what features are available, their dimensionality, and what they measure.
Sort images in a folder by color characteristics. Organizes images by dominant color, saturation, brightness, or hue to help understand color distribution across a collection.
Parameter descriptions lack format/constraint details. E.g., 'image_path' does not specify supported formats (jpg, png, webp) or path requirements. 'num_colors' lacks min/max bounds.
filter_by_vibe parameter 'vibe' has no enum and description lists examples ('warm, cool, minimalist, busy, blue_water, sunset') as free-form strings, inviting hallucinated values.