Skip to main content
Glama
readme.md5.86 kB
# macOS 原生 OCR MCP 服务 利用 macOS 内置的强大 Vision 框架,为 Claude 及其他 MCP 客户端提供离线、高精度的 OCR 识别能力。 ## 功能特性 - **多语言支持**:原生支持中文(简/繁)、英文及中英混排,精准识别率高。 - **PDF 全面支持**:内置 PDF 渲染引擎,可自动处理多页 PDF 文档。 - **智能区块聚合 (Block Aggregation)**: - 针对复杂表格和段落进行优化,不再简单按行切分。 - 自动识别并保留单元格内容的完整性,避免跨列内容混杂。 - 支持智能纠错,自动合并被排版截断的中文长句。 - **LLM 友好输出**:提供结构化的 JSON 数据(包含语义块 Block、坐标 BBox、原始行 Lines),完美适配 LLM 文档重建场景。 - **隐私安全**:所有数据均在 macOS 本地处理,无需上传云端,无需 API Key。 - **零配置**:通过 `uv` 安装运行,轻量且快速。 ## 环境要求 - macOS 10.15+ (Catalina) 或更高版本。 - Python 3.10+。 - 已安装 [uv](https://github.com/astral-sh/uv) (`brew install uv`)。 ## 安装与使用 你可以直接通过 `uvx` 使用此 MCP 服务,无需克隆代码仓库。 ### Claude Desktop 配置 请将以下内容添加到你的 `~/Library/Application Support/Claude/claude_desktop_config.json` 文件中: ```json { "mcpServers": { "macos-ocr": { "command": "uvx", "args": [ "--from", "git+https://github.com/wenjiazhu/macos-ocr-mcp.git", "macos-ocr" ] } } } ``` *注意:请确保使用正确的 Git 仓库地址。* 如果需要强制更新到最新版本,可以在 `args` 列表中添加 `"--refresh"` 参数。 ## 本地开发 1. 克隆仓库: ```bash git clone https://github.com/wenjiazhu/macos-ocr-mcp.git cd macos-ocr-mcp ``` 2. 使用 `uv` 运行: ```bash # 运行测试脚本 (输出纯文本) uv run src/ocr.py path/to/image.png # 运行 MCP 服务器 uv run src/server.py ``` ## 工具列表 (Tools) ### `read_image_text` 识别并提取图片或 PDF 中的纯文本。会自动进行段落合并和表格优化。 - **输入**: `image_path` (图片或 PDF 的绝对路径) - **输出**: 文本字符串 ### `read_image_layout` 提取结构化的版面信息,专为 LLM 重建文档设计。 - **输入**: `image_path` (图片或 PDF 的绝对路径) - **输出**: JSON 字符串,包含多个 "Block" 对象。每个 Block 包含: - `text`: 合并纠错后的语义文本。 - `bbox`: 文本块的归一化坐标 (x, y, w, h),用于还原排版。 - `lines`: 构成该块的原始行信息(可选,用于精细分析)。 ## 提示词示例(不同识别/转换场景) 小建议: - 只想拿到可复制文本:优先用 `read_image_text`。 - 需要“按版面重建”(表格/多栏/段落/坐标):优先用 `read_image_layout`。 ### 1) 快速提取纯文本(不重排、不总结) ```text 请调用 macos-ocr 的 read_image_text 读取以下文件并输出识别结果: image_path=/绝对路径/xxx.png 要求: 1. 只输出 OCR 文本本身,不要添加解释、标题或多余前后缀。 2. 尽量保留原有换行与段落;不要翻译,不要总结。 ``` ### 2) 图片/PDF → Markdown(尽量还原排版) ```text 请调用 macos-ocr 的 read_image_layout 读取以下文件: image_path=/绝对路径/xxx.pdf 然后将返回的 blocks 按 bbox 近似还原为 Markdown: - 标题/小标题、段落、列表分别用合适的 Markdown 语法表示 - 识别出表格时输出为 Markdown 表格(必要时补齐空单元格) - 多页内容用清晰的分页分隔(例如:--- Page 1 ---) 只输出最终 Markdown,不要输出中间 JSON。 ``` ### 3) 扫描表格 → CSV(可直接导入表格软件) ```text 请调用 macos-ocr 的 read_image_layout 读取以下文件: image_path=/绝对路径/table.png 目标:把图片中的“表格”转换成 CSV。 要求: 1. 只输出 CSV(逗号分隔),不要额外解释。 2. 保留表头;不要丢列或丢行;空单元格也要保留为空。 3. 如果存在合并单元格:优先用空值或重复值保证列数一致,并在 CSV 末尾另起一行用 NOTE: 简要说明处理方式。 ``` ### 4) 发票/收据 → 结构化 JSON(字段缺失用 null) ```text 请调用 macos-ocr 的 read_image_text 读取以下文件: image_path=/绝对路径/receipt.jpg 请将识别内容抽取为严格 JSON(只输出 JSON): { "merchant": string|null, "date": "YYYY-MM-DD"|null, "currency": string|null, "total": number|null, "tax": number|null, "items": [{"name": string, "qty": number|null, "unit_price": number|null, "amount": number|null}], "payment_method": string|null, "invoice_no": string|null } 规则:金额统一用数字;无法确认就填 null;不要编造。 ``` ### 5) 代码/终端截图 → 可复制代码块(自动纠错) ```text 请调用 macos-ocr 的 read_image_text 读取以下文件: image_path=/绝对路径/code.png 把结果整理成一个 Markdown 代码块输出: 1. 去掉行号、提示符(如 $、>>>)等无关字符 2. 修正常见 OCR 错误(如 0/O、1/l/I、:;、引号、括号配对) 3. 保持原有缩进 只输出代码块(例如 ```python ... ```),不要额外解释。 ``` ### 6) 论文/合同扫描件 → 结构化提纲 + 关键点(可用于二次加工) ```text 请调用 macos-ocr 的 read_image_text 读取以下文件: image_path=/绝对路径/doc.png 基于 OCR 文本输出: 1) 结构化提纲(H1/H2/H3) 2) “关键点”列表(最多 10 条) 3) “需要人工确认的疑点/缺失”列表(例如数字不清、条款编号断裂) 要求:不要杜撰;引用原文时用原句;输出用中文。 ```

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/wenjiazhu/macos-ocr-mcp'

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