vision-memory-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | log levels (debug, info, warn, error) | info |
| CLIP_MODEL | No | Embedding model name | Xenova/clip-vit-base-patch32 |
| STRIP_EXIF | No | Strip EXIF metadata from stored screenshots | true |
| STRICT_MODE | No | Refuse external L4 calls & enforce projectRoot paths | false |
| LANCEDB_PATH | No | Storage path for LanceDB | .vision-memory-mcp |
| OFFLINE_MODE | No | Restrict CLIP loading to local files only | false |
| OPENAI_API_KEY | No | Required if using OpenAI endpoints for L4 fallback | |
| TTL_DEFAULT_MS | No | Eviction TTL (default: 7 days) | 604800000 |
| CLIP_MODEL_PATH | No | Optional local path to pre-downloaded CLIP model | |
| VISION_MODEL_NAME | No | Vision model identifier | gpt-4o |
| LANCEDB_CACHE_SIZE | No | Maximum hot items in LRU Cache | 100 |
| LIMIT_INPUT_PIXELS | No | Sharp decompression bomb pixel limit | 16777216 |
| MAX_LANCEDB_SIZE_MB | No | Eviction threshold (MB) | 1000 |
| EMBEDDING_DIMENSIONS | No | CLIP embedding output dimension | 512 |
| HASH_EXACT_THRESHOLD | No | Hamming distance <= this = exact hit | 5 |
| VISION_MODEL_ENABLED | No | Enable L4 vision fallback | false |
| VISION_MODEL_ENDPOINT | No | Vision model server URL | http://localhost:1234/v1 |
| HASH_SIMILAR_THRESHOLD | No | Hamming distance <= this = similar hit | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| analyze_screenshotA | Ingest a screenshot or file path, check visual state cache, and return details of the state (generating a new memory entry if not matched). |
| recall_memoryA | Search visual state memory using screenshot image, text query, or accessibility tree. |
| record_outcomeA | Log an action transition between two visual states and update transition statistics. |
| get_navigation_pathsA | Trace historical pathways from current state to a target state or state matching description. |
| compare_statesA | Compare two states visually and structurally with key-level JSON diffs. |
| get_session_contextA | Fetch aggregated visual context, listing recent/frequent states and active transitions. |
| save_visual_snapshotA | Saves current visual memory states as a named checkpoint snapshot. |
| diff_visual_snapshotsA | Diff two snapshots to locate additions, deletions, or visual drift regressions. |
| undo_last_visual_mutationB | Undo the last visual state ingestion or transition edge addition. |
| create_visual_blockerA | Generates a structured visual blocker payload. The calling agent should use the output to call state-memory-mcp:add_node to log a blocker. |
| predict_next_actionA | Predict the best next UI action from current visual state based on transition success rates and goal alignment. |
| batch_analyze_screenshotsC | Process multiple screenshots or file paths in a single batch call. |
| set_visual_specA | Set a screenshot or mockup design as a Visual Spec baseline for UI compliance testing. |
| verify_visual_specA | Verify a live captured UI screenshot against a registered Visual Spec baseline. |
| list_visual_specsA | List all registered Visual Spec baselines across the project and their perceptual hash details. |
| get_visual_diffA | Calculate perceptual dHash diff and region deltas between two visual states. |
| export_visual_trajectoriesA | Export multimodal visual state transition trajectories for local model fine-tuning. |
| export_joint_trajectoriesB | Export unified interleaved visual state transitions and workflow graph events correlated by session/trace ID. |
| get_metricsA | Query cache-hit ratio, average visual similarity scores, and token-savings estimates. |
| export_snapshotA | Export a named visual snapshot as a full standalone JSON archive containing states, transitions, and metadata. |
| restore_snapshotB | Restore a visual memory snapshot from an exported archive JSON object. |
| forget_stateA | Purge a specific visual state, its vector embeddings, and perceptual hashes from storage for privacy or memory reset. |
| wait_for_visual_stateA | Poll for a target visual state ID until it exists in memory or timeout occurs, avoiding spinning agent loops. |
| app_versionA | Get version, package name, MCP identifier, and server information of vision-memory-mcp. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze-ui-state | Prompt for analyzing screen layout, key components, and actionable elements from a visual state record. |
| diagnose-visual-regression | Prompt for diagnosing visual differences between two snapshot checkpoints or visual states. |
| navigate-to-goal | Prompt for finding and executing the optimal sequence of actions to reach a target visual state or goal. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Several tools have overlapping purposes: compare_states and get_visual_diff both return visual differences between two states; analyze_screenshot and recall_memory both accept screenshots and return state information; export_visual_trajectories and export_joint_trajectories both export trajectory data; save_visual_snapshot and export_snapshot both create snapshot archives. This creates ambiguity in tool selection.
Most tools follow a consistent verb_noun pattern (e.g., list_visual_specs, analyze_screenshot, recall_memory). The only outlier is 'app_version', which is a noun phrase rather than an action. Minor inconsistency.
At 24 tools, the set feels bloated. Several tools could be consolidated (compare_states/get_visual_diff, export_visual_trajectories/export_joint_trajectories, save_visual_snapshot/export_snapshot), and batch_analyze_screenshots is just a convenience wrapper. The count exceeds the recommended range and doesn't justify itself.
The tool set covers core visual memory operations (ingest, search, compare, snapshot, export, forget, navigate), but has gaps: no direct way to list all visual states, no update/delete for visual specs, and create_visual_blocker depends on an external server (state-memory-mcp) for the actual logging, creating a dead end. Overall coverage is decent but not comprehensive.