vision-mcp
Allows converting images to text descriptions via an OpenAI-compatible vision model API, with configurable base URL, API key, and model.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vision-mcpDescribe this image: /Users/me/Pictures/screenshot.png"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vision-mcp
一个 MCP Server,把图片(JPEG / PNG / GIF / WebP)转换为文本描述。基于 OpenAI 兼容的视觉模型接口(默认 DeepSeek 的 deepseek-v4-flash-vision-exp)。
功能
describe_image— 输入图片(本地绝对路径或 http(s) URL),返回文本描述。configure— 保存 / 更新baseUrl/apiKey/model到.env文件。首次使用自动配置 — 首次启动时若
.env不存在,会自动生成模板并在日志中提示。
Related MCP server: image_mcp
安装与运行
npm install
npm run build
npx . # 在项目目录内运行(走 package.json 的 bin)
# 或
npm start # 等价于 node dist/index.js发布到 npm 后可直接:
npx vision-mcp配置
配置通过 .env 文件保存,读取优先级为:环境变量 > .env 文件 > 默认值(仅 model)。
变量 | 说明 | 必填 |
| OpenAI 兼容接口地址,默认 | 否 |
| API 密钥 | 是 |
| 视觉模型名,默认 | 否 |
三种配置方式:
调用
configure工具(推荐,在 MCP 客户端里调用即可):{ "apiKey": "sk-..." }编辑
.env文件:首次启动会自动在包目录生成模板,填入后重启即可。环境变量:直接设置
BASE_URL/API_KEY/MODEL(优先级最高)。
.env 的位置
默认保存在包自身目录下(由 import.meta.url 解析到包根目录)。注意:npx <pkg> 会把包装进 ~/.npm/_npx/<hash>/... 缓存,缓存清理后 .env 会丢失。
如需固定位置,设置环境变量 VISION_MCP_HOME,例如:
VISION_MCP_HOME="$HOME/.vision-mcp" npx vision-mcp此时 .env 会保存为 ~/.vision-mcp/.env,跨 npx 缓存清理依然保留。
工具说明
describe_image
参数 | 类型 | 说明 |
| string | 本地绝对路径,或 http(s) URL |
| string(可选) | 关于图片的提问/指令,默认 |
configure
参数 | 类型 | 说明 |
| string(可选) | 接口地址 |
| string(可选) | API 密钥 |
| string(可选) | 模型名 |
接入 Claude Desktop
在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"vision-mcp": {
"command": "npx",
"args": ["vision-mcp"],
"env": {
"VISION_MCP_HOME": "/Users/你的用户名/.vision-mcp"
}
}
}
}本地开发调试时也可直接指向编译产物:
{
"mcpServers": {
"vision-mcp": {
"command": "node",
"args": ["/绝对路径/vision_mcp/dist/index.js"]
}
}
}开发
npm run dev # 开发模式(tsx 直跑源码)
npm run build # tsc 编译到 dist/
npm test # 运行单元测试(node:test + tsx)支持的图片格式
JPEG(jpg/jpeg)、PNG(png)、GIF(gif)、WebP(webp)。本地文件按扩展名识别;URL 优先使用响应的 content-type,否则回退到 URL 扩展名。
Available Tools
2 toolsconfigureA
Save or update the vision-mcp configuration (baseUrl, apiKey, model) to the .env file.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Vision model name. Defaults to deepseek-v4-flash-vision-exp. | |
| apiKey | No | API key for the configured endpoint. | |
| baseUrl | No | API base URL, Defaults to ${DEFAULT_BASE_URL}. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the safety disclosure. It does state that the operation writes configuration values to the .env file, which signals a mutating file write, but it doesn't specify overwrite behavior for omitted parameters, file creation, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the verb, target, and parameters with no filler or redundancy. It is appropriately sized for the simple action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core function and parameters, but it leaves ambiguity about whether an invocation with only some parameters leaves others unchanged or resets them to schema defaults. Given no output schema or annotations, this is a notable gap for a config-writing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully described in the input schema (model, apiKey, baseUrl), and the description only repeats their names without adding constraints, defaults, or relationships. Schema coverage is 100%, so baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Save or update the vision-mcp configuration' and names the persistence target '.env file'. This clearly differentiates it from the sibling 'describe_image', which is an image-analysis tool, so an agent can select the correct tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided, and the sibling 'describe_image' is never referenced. Usage context is only implied by the description's purpose, so an agent must infer when configuration changes are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_imageA
Convert an image (JPEG, PNG, GIF or WebP) into a text description using a vision model. The image may be a local absolute file path or an http(s) URL.
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Local absolute file path or http(s) URL of the image. | |
| prompt | No | Optional question or instruction about the image. Defaults to "What is in this image?". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the core behavior, accepted formats, and input source types, but does not mention output specifics, error behavior, size limits, or network implications when fetching URLs. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. Essential information—purpose, model, formats, and input types—is front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage, the description provides enough context for an agent to invoke it correctly. The only minor gaps are unspecified constraints like file size limits or behavior on inaccessible URLs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The tool description adds minimal semantic value beyond the schema—it restates the image path/URL constraint but does not elaborate on the prompt parameter or its effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Convert an image... into a text description'), identifies the vision model as the mechanism, enumerates supported formats, and clarifies accepted source types. This makes the tool's purpose unambiguous and distinct from the sibling 'configure'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool is appropriate: whenever an image needs to be described as text. It also provides practical input constraints (JPEG/PNG/GIF/WebP, local path or http(s) URL), but does not explicitly discuss exclusions or compare against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
configure - First observed
describe_image
TDQS
The two tools are completely distinct: describe_image handles image-to-text conversion, while configure manages server settings. There is no overlap or ambiguity between them.
Both tool names are lowercase with underscores, and describe_image follows the verb_noun pattern. 'configure' is a simple verb without a noun, which is a minor deviation but still clear and predictable.
The server has only two tools, which feels slightly thin for a vision-oriented MCP. However, the narrow scope of 'describe an image' plus configuration is coherent, even if minimal.
The core operation (image description) is covered, and configuration is available, but obvious extensions like model listing or multiple vision capabilities (e.g., OCR) are missing. It works for basic use, but the surface is quite limited.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate images with your own ChatGPT subscription (Plus, Pro or Team), without spending API credits
Resize, convert, compress, crop, thumbnail and watermark images from your AI chat.
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables image analysis and understanding using Vision Language Models through OpenAI-compatible APIs. Supports analyzing images from URLs or local files with custom prompts.12MIT
- AlicenseNot gradedqualityDmaintenanceEnables text-only LLMs to analyze images by routing them to an OpenAI-compatible vision backend, supporting local files, URLs, and data URLs.26MIT
- AlicenseAqualityCmaintenanceEnables image analysis using any OpenAI-compatible vision API, supporting URLs, local files, or base64 input with custom prompts.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables image recognition using vision models via OpenAI-compatible APIs, supporting multiple platforms like OpenAI, DeepSeek, and Ollama.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HelenQ/vision_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server