Analyze Image with a Vision Model (Vision Helper)
vision_helper_analyze_imageAnalyze images with a vision model: extract descriptions, transcribe text, or compare multiple images. Accepts URLs, file paths, or base64 data and returns text analysis.
Instructions
Analyze one or more images using a vision-capable model from OpenRouter. Use this whenever you need to know what is in an image but you cannot see images yourself.
This is the Vision Helper MCP server's own analysis tool (distinct from any other vision server you may have configured). It loads the image(s) — from a URL, a local file path, a file:// URI, a data: URI, or raw base64 — and sends them to a vision model, then returns that model's analysis as text.
Security notes: local files are read and sent to OpenRouter only when explicitly requested; only image content is uploaded and only if it is a supported format (PNG, JPEG, WebP, or GIF, per OpenRouter). Remote URLs are validated against private/internal hosts and redirects before fetching.
Args:
image (string | string[]): Image source(s). Accepted forms: http(s) URL, local file path, file:// URI, data: URI (data:image/png;base64,...), or raw base64. Pass an array to analyze several images together (e.g. to compare them). Relative file paths resolve against the MCP client's working directory — prefer absolute paths or URLs.
prompt (string, optional): What the vision model should look for, e.g. 'Transcribe all text in this screenshot' or 'Describe the objects and colors'. Defaults to a general detailed description.
model (string, optional): OpenRouter model ID, e.g. 'google/gemini-3.6-flash'. Defaults to the OPENROUTER_MODEL environment variable, then to 'google/gemini-3.6-flash'. Use vision_helper_list_models to see current options.
max_tokens (number, optional): Max tokens for the answer (64-16000).
temperature (number, optional): Sampling temperature (0-2).
Returns: Text containing the vision model's analysis, prefixed with the model and image sources used. Long analyses are truncated at 25000 characters with a marker.
Examples:
"What is in this image? https://example.com/photo.jpg" -> image="https://example.com/photo.jpg"
"Read the text in this screenshot: C:\Users\me\Pictures\shot.png" -> image="C:\Users\me\Pictures\shot.png"
"Compare these two images: img1.png and img2.png" -> image=["img1.png", "img2.png"]
Error Handling:
"Error: No OpenRouter API key found..." -> run vision_helper_check_config to see how keys are resolved.
"Error: Model not found..." -> run vision_helper_list_models and pass a valid model id.
"Error: Image is N bytes, which exceeds MAX_IMAGE_SIZE..." -> shrink the image or raise MAX_IMAGE_SIZE.
"Error: ... only accept PNG, JPEG, WebP, or GIF ..." -> convert the image to a supported format.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Image to analyze: a URL, local file path, data URI, raw base64, or an array of these. | |
| model | No | OpenRouter model ID to use for vision analysis, e.g. 'google/gemini-3.6-flash'. Defaults to the OPENROUTER_MODEL environment variable, then to a built-in default. Use vision_helper_list_models to discover current vision-capable models. | |
| prompt | No | Optional instruction for the vision model describing what to look for. Example: 'Transcribe all text in this screenshot'. When omitted, a general detailed description is used. | |
| max_tokens | No | Maximum number of tokens for the vision model's answer. | |
| temperature | No | Sampling temperature (0-2). Lower is more deterministic. |