Skip to main content
Glama

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)

变量

说明

必填

BASE_URL

OpenAI 兼容接口地址,默认 https://api.deepseek.com

API_KEY

API 密钥

MODEL

视觉模型名,默认 deepseek-v4-flash-vision-exp

三种配置方式:

  1. 调用 configure 工具(推荐,在 MCP 客户端里调用即可):

    { "apiKey": "sk-..." }
  2. 编辑 .env 文件:首次启动会自动在包目录生成模板,填入后重启即可。

  3. 环境变量:直接设置 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

参数

类型

说明

image

string

本地绝对路径,或 http(s) URL

prompt

string(可选)

关于图片的提问/指令,默认 "What is in this image?"

configure

参数

类型

说明

baseUrl

string(可选)

接口地址

apiKey

string(可选)

API 密钥

model

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 tools
configureA

Save or update the vision-mcp configuration (baseUrl, apiKey, model) to the .env file.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoVision model name. Defaults to deepseek-v4-flash-vision-exp.
apiKeyNoAPI key for the configured endpoint.
baseUrlNoAPI base URL, Defaults to ${DEFAULT_BASE_URL}.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesLocal absolute file path or http(s) URL of the image.
promptNoOptional question or instruction about the image. Defaults to "What is in this image?".

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updatesv1.0.0
    • First observedconfigure
    • First observeddescribe_image

TDQS

A3.8/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness3/5

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

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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