A Local Proxy Gives Text-Only LLMs Inside Claude Code the Ability to See Images
Developers using Claude Code with cheaper or self-hosted text-only models lose the ability to paste screenshots and design drafts—a core workflow in AI-assisted coding. A one-minute local proxy setup restores that workflow without switching models, and the auto-classification means the text descriptions are structured for the task at hand rather than generic captions.
Text-only models such as GLM and DeepSeek reject any request containing an image when used through Claude Code, returning a 400 error. The typical workaround—manually describing the image to a separate vision model first—breaks flow and wastes time. image-vision-mcp solves this with a local HTTP proxy that sits between Claude Code and the upstream LLM, intercepting images, running them through a configurable vision model (Doubao, Kimi, GLM-4V, Qwen-VL, or GPT-4o), and replacing the binary payload with a structured text description before forwarding the request.
The tool also ships a standalone MCP server that exposes a `vision_describe_image` tool supporting local file paths and URLs. An automatic classification mode detects whether an image is a design draft, wireframe, bug screenshot, or general picture, then applies a tailored prompt template so the resulting description is immediately useful for code generation or debugging. Token budgets are allocated per mode, and truncated outputs trigger an automatic retry with a higher limit.
Setup requires editing two JSON config files and restarting Claude Code. The proxy listens on localhost, denies private-network image URLs by default to prevent SSRF, and works with any vision model that exposes an OpenAI-compatible `/chat/completions` endpoint with base64 image support.
Bridging text-only models into a multimodal workflow through a proxy is cheaper and more flexible than waiting for every model provider to ship native vision support, and it decouples the coding model choice from the vision model choice.
The auto-classification design acknowledges that 'describing an image' is not one task but several—a design spec, a bug report, and a chart each demand different output structures to be actionable for a downstream coding agent.
Default-deny on private-network image URLs in a local proxy is a security detail that is easy to overlook but critical, since a tool that fetches arbitrary URLs from a developer's machine is a ready-made SSRF vector.