vision-reader
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
vision-reader
给没有图像能力的 LLM 的"看图能力"工具:把图片的像素 + 坐标整理成模型可读的文本,让模型理解复杂图片(截图、文档、图表、UI 界面等)。
用法一句话:vision analyze 你的图片.png,其余全部自动。 内部自动完成 全图概览 → 自动挑选关注区域 → 编码细看 → OCR → 输出完整 Markdown 报告,不需要任何手动调度。
安装(约 2 分钟)
第 1 步:安装 uv(Python 包管理器,会自动带上 Python,无需手动装 Python)
Windows(任选其一):
winget install astral-sh.uv或
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh装完重开终端,输入 uv --version 能输出版本号即成功。
第 2 步:获取项目并安装依赖
git clone https://github.com/JoshuaLam21/vision-reader.git
cd vision-reader
uv sync --extra dev --extra mcp⏳ 首次安装需要下载 torch / easyocr 等依赖,约几百 MB,请耐心等几分钟,进度条走完即可。
第 3 步:验证安装成功
uv run vision demo看到终端输出一份 Markdown 报告、并在 demo/output/report.md 生成文件,说明安装成功。
Related MCP server: llm-vision-mcp
快速开始(30 秒上手)
看你自己的一张图
uv run vision analyze 你的图片.png --out report.md打开 report.md,就是完整的图片理解报告(整体概览 + 局部细节 + OCR 文字 + 坐标索引)。
首次运行会自动下载 OCR 模型权重(约 60 MB,一次性,存到
~/.EasyOCR),请耐心等待。
没有图片?跑个演示
uv run vision demo自动生成一张合成图并分析,输出到 demo/output/。
常用命令速查
想做什么 | 命令 |
一键分析图片(主用法) |
|
分析并保存报告 |
|
只看全图概览 |
|
裁剪某区域细看 |
|
提取某区域文字 |
|
跑完整演示 |
|
所有坐标都是归一化坐标 (0~1),0,0 是左上角,1,1 是右下角。
常见问题(FAQ)
Q:uv 命令找不到?
安装 uv 后需要重开终端(让 PATH 生效);Windows 用户也可以重启一下终端窗口。
Q:安装/下载很慢?
首次 uv sync 要下载 torch(几百 MB),首次 analyze 要下载 OCR 模型(约 60 MB)。都是一次性的,之后秒开。网络慢可考虑配置镜像源。
Q:vision analyze 报错?
先跑 uv run vision demo 确认环境正常;如果 demo 正常而你自己的图报错,可能是图片路径含中文/空格——用引号包起来:uv run vision analyze "我的 图片.png"。
Q:我想让 Claude / 我的 AI 直接"看图"?
见下方 MCP Server 章节,配置一次后,AI 就能调用 vision_analyze 工具看你的图。
CLI 用法
一键分析(推荐,主用法)
uv run vision analyze <图片> [--grid 8x8] [--top 3] [--out report.md] [--summary] [--no-ocr]参数 | 说明 |
| 全图概览网格,默认 8x8 |
| 自动细看的区域数,默认 3 |
| 报告保存路径(默认仅打印) |
| 输出 token 精简摘要(布局要点+区域要点+OCR 汇总,约省 80% token;适合大图/长上下文受限) |
| 跳过 OCR |
内部自动流程:全图概览 → 按边缘密度排序挑选候选区域、膨胀并合并重叠 → 每个区域自动选编码器(颜色丰富用 color_stats,否则 ascii_art)→ 疑似文字区域自动 OCR → 汇总 Markdown 报告。
报告开头自带"给模型的导读":说明坐标归一化、ASCII 字符含义、边缘密度解读、OCR 可能出错等,帮助模型正确解读像素统计,无需额外提示。
分步用法(高级)
uv run vision overview <图片> --grid 8x8 # 1. 全图 chunk 概览
uv run vision crop <图片> --region 0.1,0.1,0.5,0.5 --encode ascii_art --size 64 # 2. 裁剪+编码
uv run vision ocr <图片> --region 0.02,0.42,0.6,0.58 --engine easyocr --languages ch_sim,en # 3. OCR
uv run vision report obs1.json obs2.json --out report.md # 4. 汇总报告crop 参数:--scale 放大倍数(默认 2.0)、--encode 编码器(ascii_art / grayscale_grid / color_stats)、--color 保留彩色、--json 输出 JSON 供 report 汇总。
三种编码器(模型按需自选)
名称 | 输出 | 特点 |
| 灰度数字网格(量化级数可调) | 最接近原始像素读数,token 消耗大 |
| 字符明暗密度图 | token 最省、最易读 |
| 分块主色/亮度/边缘密度统计 | 适合颜色与结构判断 |
编码器可插拔:实现 vision_reader/encoders/base.py 的 Encoder 接口并加 @register 即可。
Python 库用法
from vision_reader import image_io
from vision_reader.analyzer import analyze
img = image_io.load_image("截图.png") # 支持路径 / base64 / bytes / ndarray
result = analyze(img, top_n=3, ocr=True) # 一键分析(无需调度)
print(result.to_report()) # 完整 Markdown 报告
# 需要精细控制时,可用分步 API:
from vision_reader import crop, overview
from vision_reader.encoders import encode
from vision_reader.ocr import recognize
chunks = overview.chunks(img, grid=(8, 8)) # 全图概览
cr = crop.region(img, 0.1, 0.1, 0.5, 0.5, scale=2.0) # 裁剪放大
print(encode(cr.image, name="grayscale_grid", grid_width=32)) # 编码细看
result = recognize(cr.image, engine="easyocr", languages=("ch_sim", "en")) # OCROCR 引擎
默认 EasyOCR(ch_sim + en):pip 可装、纯 Python 生态、无需外部服务;首次使用会自动下载模型权重到
~/.EasyOCR。PaddleOCR(可选占位):中文效果更优但依赖 PaddlePaddle(体积大)。当前为占位实现,接口已就绪:补全
vision_reader/ocr/paddleocr_engine.py后,一行切换--engine paddleocr。
MCP Server(让 AI 直接看图)
把 vision-reader 封装为 MCP 工具,配置一次后,Claude Code / Reasonix / Cursor 等支持 MCP 的客户端里的 AI 就能调用工具看图。
第 0 步(可选):全局安装,注册时不用写路径
uv tool install . --extra mcp # 全局安装 vision / vision-mcp 命令(含依赖,约几百 MB,一次性)
vision-mcp # 测试:启动后不退出、无报错即正常(Ctrl+C 停止)装完后 vision-mcp 是全局命令,注册配置只需一行(见第 3 步"方式一"),任何目录都能用。
第 1 步:确认已装 mcp 依赖
uv sync --extra mcp # 安装过(--extra dev --extra mcp)则跳过第 2 步:测试 server 能启动
uv run python -m vision_reader.mcp_server启动后不退出、无报错即为正常(按 Ctrl+C 停止)。
第 3 步:注册到客户端
方式一:全局命令(推荐,做了第 0 步后适用)——Claude Code 项目根目录 .mcp.json:
{
"mcpServers": {
"vision-reader": {
"command": "vision-mcp"
}
}
}方式二:项目路径(没做第 0 步;把 <项目路径> 换成你的实际路径):
{
"mcpServers": {
"vision-reader": {
"command": "uv",
"args": ["--directory", "<项目路径>", "run", "python", "-m", "vision_reader.mcp_server"]
}
}
}Reasonix / Cursor:同样以 stdio server 方式注册,指向上述 command/args。
工具清单
工具 | 说明 |
| 【一键】自动分析整图:概览+选区域+编码+OCR,返回完整 Markdown 报告( |
| 注册图片(路径或 base64),返回 |
| 全图 chunk 概览(默认 8x8,可调 grid) |
| 按归一化坐标裁剪 + 编码( |
| 区域 OCR(返回文本 + 置信度 + 归一化 bbox) |
| 查询可用的编码器 / OCR 引擎 |
给 AI 的使用建议:用户说"看这张图",直接调用 vision_analyze 一次即可,无需任何调度;需要精细控制时再用 vision_load_image + 分步工具(后续工具只传 image_id,避免重复传 base64 浪费 token)。OCR 引擎在 server 启动时预热,首次调用不卡顿。
验证接入成功
注册后在客户端里对 AI 说:"分析这张图:<图片路径>"。AI 应自动调用 vision_analyze 并返回一份 Markdown 报告(含整体概览、局部细节、OCR 文字、坐标索引)。如果 AI 说找不到工具,检查 .mcp.json 的 command/args 和路径是否正确,重启客户端生效。
接入你的 AI Agent(不用 MCP,bash 方式)
📖 给 agent 的完整知识卡见
AGENT-GUIDE.md(六层知识 + prompt 模板 + 调用示例)。 🎯 现成 skill 见skills/vision-reader/SKILL.md——直接复制到.claude/skills/或 Reasonix skills 目录即可用。
不想用 MCP 时,CLI 本身即工具形态,任何 agent 都可以通过 bash 直接调用。做法:把下面的说明写进你的 agent 的 skill / 命令配置:
# 看图的工具(vision-reader)
当需要理解一张图片时:
1. `uv run vision analyze <img> --out report.md` → 一键自动分析,读 report.md 理解图片
2. 需要更细看某区域时:`uv run vision crop <img> --region x1,y1,x2,y2 --encode ascii_art`
3. 需要读文字时:`uv run vision ocr <img> --region x1,y1,x2,y2`前提:agent 运行环境已安装 vision-reader(uv sync --extra dev --extra mcp,或全局 uv tool install . --extra mcp 后直接用 vision analyze)。要点:坐标一律用归一化 (0~1);token 预算有限时优先 ascii_art。
项目结构
vision_reader/
├── image_io.py # 图片加载(路径/base64/bytes/ndarray)
├── coordinates.py # 归一化坐标 ↔ 像素换算、越界处理
├── crop.py # 裁剪 + LANCZOS 放大 + 灰度化
├── overview.py # 全图 chunk 网格摘要
├── analyzer.py # 一键自动分析(概览→选区域→编码→OCR→报告)
├── report.py # 多次观察汇总为 Markdown
├── cli.py # CLI 入口(vision 命令)
├── mcp_server.py # MCP server(FastMCP + stdio)
├── demo_runner.py # demo 完整链路
├── encoders/ # 可插拔编码器(grayscale_grid/ascii_art/color_stats)
├── ocr/ # 可插拔 OCR(easyocr 默认 / paddleocr 占位)
└── synthetic.py # 合成测试图生成
tests/ # pytest 单测(全部基于合成图)
demo/ # demo 脚本与输出测试
uv run pytest -q全部测试基于合成图,可复现;EasyOCR 用例在模型下载失败时自动跳过。
This server cannot be deployed
Maintenance
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for Qwen Image 3 AI image generation
MCP server exposing the YourImageShare upload API (upload/list/delete) as tools for AI agents.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that gives LLMs full-resolution vision by tiling images and capturing web pages before details are lost.135 npm4MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables any LLM to describe images from file paths, URLs, or base64 data by forwarding them to a supported vision provider such as OpenAI, Anthropic, or local Ollama models.224 npm10MIT
- AlicenseAqualityDmaintenanceMCP server that converts file contents into compact, line-numbered PNG images for vision models to read, reducing token usage by roughly 7x for large files.3MIT
- AlicenseAqualityCmaintenanceMCP server that gives text-only AI agents the ability to understand images via vision tools, including multi-image analysis, OCR, comparison, and structured extraction. It uses providers like OpenAI, Anthropic, Gemini, and OpenRouter to return plain text descriptions.1016 npmMIT