Skip to main content
Glama

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: VisionPower

快速开始(30 秒上手)

看你自己的一张图

uv run vision analyze 你的图片.png --out report.md

打开 report.md,就是完整的图片理解报告(整体概览 + 局部细节 + OCR 文字 + 坐标索引)。

首次运行会自动下载 OCR 模型权重(约 60 MB,一次性,存到 ~/.EasyOCR),请耐心等待。

没有图片?跑个演示

uv run vision demo

自动生成一张合成图并分析,输出到 demo/output/

常用命令速查

想做什么

命令

一键分析图片(主用法)

uv run vision analyze <图片>

分析并保存报告

uv run vision analyze <图片> --out report.md

只看全图概览

uv run vision overview <图片>

裁剪某区域细看

uv run vision crop <图片> --region 0.1,0.1,0.5,0.5

提取某区域文字

uv run vision ocr <图片> --region 0.1,0.1,0.5,0.5

跑完整演示

uv run vision demo

所有坐标都是归一化坐标 (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]

参数

说明

--grid NxM

全图概览网格,默认 8x8

--top N

自动细看的区域数,默认 3

--out 路径

报告保存路径(默认仅打印)

--summary

输出 token 精简摘要(布局要点+区域要点+OCR 汇总,约省 80% token;适合大图/长上下文受限)

--no-ocr

跳过 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 汇总。


三种编码器(模型按需自选)

名称

输出

特点

grayscale_grid

灰度数字网格(量化级数可调)

最接近原始像素读数,token 消耗大

ascii_art

字符明暗密度图

token 最省、最易读

color_stats

分块主色/亮度/边缘密度统计

适合颜色与结构判断

编码器可插拔:实现 vision_reader/encoders/base.pyEncoder 接口并加 @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"))  # OCR

OCR 引擎

  • 默认 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。

工具清单

工具

说明

vision_analyze

【一键】自动分析整图:概览+选区域+编码+OCR,返回完整 Markdown 报告(summary=True 返回精简摘要)

vision_load_image

注册图片(路径或 base64),返回 image_id + 宽高

vision_overview

全图 chunk 概览(默认 8x8,可调 grid)

vision_crop

按归一化坐标裁剪 + 编码(region="x1,y1,x2,y2",编码器可换)

vision_ocr

区域 OCR(返回文本 + 置信度 + 归一化 bbox)

vision_list_encoders / vision_list_ocr_engines

查询可用的编码器 / 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 用例在模型下载失败时自动跳过。

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • MCP server for Flux AI image generation

  • MCP server for Wan AI video generation

View all MCP Connectors

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/JoshuaLam21/vision-reader'

If you have feedback or need assistance with the MCP directory API, please join our Discord server