3m read
MCP 协议入门 + 自建 Apple OCR 图片识别工具
mcpclaude-codeocrmacos
MCP 是什么
MCP(Model Context Protocol)简单说就是 AI 工具连接外部世界的接口标准。有了它,Claude Code 就能操作数据库、文件系统、各种第三方服务。
怎么配置
在 .mcp.json(用户级或项目级)里注册服务器:
hljs json{
"mcpServers": {
"服务器名": {
"command": "python3",
"args": ["/path/to/server.py"]
}
}
}
三个作用范围:
| scope | 作用范围 | 能共享给团队吗 | 存哪儿 |
|---|---|---|---|
local | 当前项目 | 否 | ~/.claude.json |
project | 当前项目 | 是 (Git) | 项目根 .mcp.json |
user | 所有项目 | 否 | ~/.claude.json |
它是怎么跑起来的
- Claude Code 启动时读
.mcp.json,用子进程拉起command + args。 - 双方通过 stdio(标准输入输出)通信。
- 协议是 JSON-RPC 2.0,每行一个 JSON。
握手大概长这样
textClaude Code → 服务器: { "method": "initialize", "id": 1 } 服务器 → Claude Code: { "result": { "protocolVersion": "2024-11-05", "capabilities": { "tools": {} }, "serverInfo": { "name": "my-server", "version": "1.0.0" } } }
之后 Claude Code 发 tools/list 拿到工具列表,再用 tools/call 调用具体工具。
传输方式
| 类型 | 说明 | 什么时候用 |
|---|---|---|
| stdio | 本地子进程,最常用 | 本地脚本、系统工具 |
| HTTP | 远程 HTTP 服务 | 云端服务 |
| SSE | 远程 SSE 推送(已弃用) | 遗留服务 |
Scope 优先级
同名服务器只在优先级最高的地方连一次:local > project > user > 插件提供 > claude.ai 连接器。
Apple OCR MCP
基于 macOS 原生 Apple Vision 的离线 OCR 工具,不用 API Key,不用联网。
GitHub:kains2866/apple-ocr-mcp
架构
MCP 客户端 → JSON-RPC → server.py → ocr (Swift) → Apple Vision → 文字
| 文件 | 作用 |
|---|---|
server.py | Python MCP 服务器,只用标准库 |
ocr.swift | OCR 源码,封装 VNRecognizeTextRequest |
ocr | swiftc 编译出来的 Mach-O 二进制,大概 70KB |
install.sh | 一键安装脚本 |
安装
推荐直接用预编译二进制,不用装 Xcode:
hljs bashgit clone https://github.com/kains2866/apple-ocr-mcp.git
cd apple-ocr-mcp
./install.sh --download
使用
在 Claude Code 里直接说:
"读取 ~/Desktop/photo.jpg 里的文字"
Claude Code 会自动调用 read_image_text 工具。
server.py 的核心逻辑
hljs python# 从 stdin 逐行读取 JSON-RPC 请求
for line in sys.stdin:
req = json.loads(line)
if method == "initialize":
return { "result": { "capabilities": {"tools": {}} } }
if method == "tools/list":
return { "result": { "tools": [...] } }
if method == "tools/call":
text = subprocess.run([OCR_BIN, path, lang])
return { "result": { "content": [{"type": "text", "text": text}] } }
整个过程就是:stdin 读 JSON → 处理 → stdout 写 JSON。
兼容性
| 项目 | 要求 |
|---|---|
| macOS | 10.15 Catalina 及以上 |
| CPU | Apple Silicon 原生,Intel 用预编译二进制 |
| Python | 3.8+,仅标准库,没有 pip 依赖 |