The README is blunt about the difference: "Describe this image" returns far less than "Identify all retail products visible in this store shelf image and estimate their price range". Because the model is a per-call parameter, routine images can go to the free default and only the ones that matter need a stronger model.
A Python server with a single tool, `image_analysis`, that sends an image and your question to a vision model on OpenRouter and returns the model's answer.
- `image_analysis` accepts the image three ways: base64 data, an http/https URL, or a path to a file on disk
- A `query` you write yourself, so the answer is scoped to what you need rather than a generic description
- An optional `system_prompt` to give the model a role, plus `temperature` and `max_tokens`
- A `model` parameter per call — any OpenRouter model with vision support, `openai/gpt-4o` and `anthropic/claude-3-5-sonnet` among them
- A `project_root` parameter so relative image paths resolve against a directory you name, not the server's working directory
`OPENROUTER_API_KEY` is required. `OPENROUTER_DEFAULT_MODEL` is optional and falls back to `qwen/qwen2.5-vl-32b-instruct:free`. Install with `pip install mcp-openvision` or `uv pip install mcp-openvision`, and launch with `uvx mcp-openvision`.
One command plus a key — pip install mcp-openvision, then supply credentials
