FreezeText MCP
FreezeText MCP connects MCP clients to the local FreezeText app for screen/image OCR and capture-history management.
Freeze the current screen and extract visible text with
capture_screen.OCR a specified screen region using coordinates with
capture_region.Run OCR on a base64-encoded PNG or JPEG image with
ocr_image.List, search, retrieve, add, delete, clear, and export capture history as JSON or CSV.
Read and update OCR recognition languages, such as
en-USorde-DE.All OCR runs locally through Apple Vision via the FreezeText app's local HTTP API.
FreezeText MCP Server
OCR anything on your Mac screen from Claude, Cursor, or any MCP client.
This is the official Model Context Protocol server for FreezeText — a native macOS app that freezes the screen and extracts text via Apple Vision OCR. Whether running videos, disappearing popups, protected PDFs, or hover tooltips — FreezeText makes any visible text copyable.
You need the FreezeText app installed and running with its HTTP API enabled (Settings → API → “Enable API Server”). This MCP server talks to the app's local API. FreezeText is free to try for 14 days, then a one-time purchase. Get it at store.juergenkoller.software/apps/freezetext.
What you can do
"Claude, OCR whatever is on my screen right now and summarize it."
"Cursor, run OCR on this screenshot (base64) and extract the invoice number."
"Search my FreezeText history for everything containing 'tracking number'."
The MCP server exposes 12 tools:
Category | Tools |
Capture & OCR |
|
History |
|
OCR config |
|
All OCR runs locally via Apple Vision Framework, without a cloud service.
Related MCP server: Vison-MCP
Installation
Prerequisites
macOS 14 (Sonoma) or later
FreezeText app installed and running — get it here (14-day free trial, then a one-time purchase)
HTTP API enabled in FreezeText → Settings → API (“Enable API Server”, off by default)
Swift 5.9+ (Xcode 15+) if building from source
Build from source
git clone https://github.com/juergenkoller-software/freezetext-mcp.git
cd freezetext-mcp
swift build -c release
# Binary: .build/release/FreezeTextMCPPre-built binary
There is no pre-built macOS binary yet; build from source as shown above. The binary attached to Releases is a static Linux x86_64 build for container-based MCP registries such as Glama; it does not run on macOS.
Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"freezetext": {
"command": "/path/to/FreezeTextMCP",
"env": {
"FREEZETEXT_API_PORT": "9876",
"FREEZETEXT_API_TOKEN": "your-token-here"
}
}
}
}FREEZETEXT_API_TOKEN is required: FreezeText answers every request without the right token with HTTP 401. Copy it from FreezeText → Settings → API (“API Token”), or generate one there.
Claude Code
claude mcp add freezetext /path/to/FreezeTextMCP \
--env FREEZETEXT_API_PORT=9876 \
--env FREEZETEXT_API_TOKEN=your-token-hereCursor / other MCP clients
Same pattern — stdio MCP server, configured via the two env vars above.
How it works
┌────────────────┐ JSON-RPC stdio ┌────────────────┐ HTTP(+Bearer) ┌────────────────┐
│ Claude/Cursor │ ───────────────► │ FreezeTextMCP │ ────────────────► │ FreezeText.app│
│ (MCP client) │ ◄─────────────── │ (this repo) │ ◄──────────────── │ (port 9876) │
└────────────────┘ └────────────────┘ └────────────────┘This is a full MCP server (built on the official modelcontextprotocol/swift-sdk) that maps MCP tool calls to FreezeText's local HTTP API. The OCR engine (Apple Vision), screen capture, and history storage live in the FreezeText app.
Environment variables
Variable | Default | Description |
|
| Port of FreezeText's local HTTP API |
| (none) | Bearer token from FreezeText → Settings → API (required) |
Errors
Every refusal comes back as an MCP error (isError: true) with a sentence the agent can act on:
Situation | What the bridge reports |
FreezeText not running, or API switched off | FreezeText is not reachable at |
Token wrong or missing (HTTP 401) | Set |
No token generated yet (HTTP 503) | Generate one in FreezeText → Settings → API |
Any other HTTP error | Status code and FreezeText's error text, e.g. a missing Accessibility permission |
Before version 1.1.0 the bridge ignored the HTTP status, so a wrong token looked like a successful call. search_history also never reached the app, because its query string was encoded into the path.
About FreezeText
FreezeText is a native macOS OCR utility. Highlights:
14-day free trial, then a one-time purchase — no subscription
Lightning-fast OCR — Apple Vision Framework, under 0.3 seconds
Freeze the screen — capture text from videos, popups, protected PDFs, hover tooltips
Global hotkey (⌘⇧7)
QR code & barcode detection
Searchable history with color tags + JSON/CSV export
HTTP API (80+ endpoints) — this MCP server is built on it
24 languages
Local OCR — recognition runs on your Mac, without a cloud service; the licence check needs an internet connection at least every 40 days
→ Get FreezeText at store.juergenkoller.software
License
MIT — see LICENSE. This MCP server is open source; the FreezeText app is commercial.
Issues & support
MCP server bugs: open an issue
App support: support@juergenkoller.software
Built by Juergen Koller Software GmbH.
Available Tools
12 toolsadd_historyC
Adds a text entry to the capture history.
Inputs: text (required), displayName.
capture_regionA
Captures a specific screen region and recognizes its text via OCR. Coordinates in screen points.
Inputs: x (required), y (required), width (required), height (required).
capture_screenA
Freezes the screen and recognizes text via OCR (Apple Vision). Returns the recognized text from the current screen.
Inputs: no named parameters.
clear_historyA
Deletes all history entries.
Inputs: no named parameters.
delete_history_entryB
Deletes a history entry by its UUID.
Inputs: id (required).
export_historyA
Exports the full capture history as JSON or CSV.
Inputs: format.
get_history_entryA
Returns a single history entry by its UUID.
Inputs: id (required).
get_ocr_languagesA
Returns the currently configured OCR recognition languages.
Inputs: no named parameters.
list_historyA
Lists all captured-text history entries (id, text, displayName, timestamp, colorTag).
Inputs: no named parameters.
ocr_imageB
Runs OCR on a provided base64-encoded image (PNG or JPEG) and returns the recognized text.
Inputs: image (required).
search_historyB
Searches the capture history by text. Optional sorting by date or text.
Inputs: sort, order, query.
set_ocr_languagesC
Sets the OCR recognition languages (e.g. en-US, de-DE).
Inputs: languages (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose: capture actions (full screen vs region), history management (add, list, get, search, delete, clear, export), direct OCR on images, and language configuration. No overlapping functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., capture_region, clear_history, export_history). There are no deviations or mixed conventions.
With 12 tools covering screen capture, OCR, history management, and language configuration, the count fits the domain well. Each tool serves a necessary function without redundancy.
Core workflows (capture, OCR, history CRUD, export) are covered. The only minor gap is whether capture tools automatically add to history or require explicit add calls, but the set provides all needed operations.
Maintenance
Related MCP Connectors
MCP Server for Web2MD — convert URLs to Markdown from Claude Desktop, Cursor, etc.
Connect ChatGPT and Claude to your Mac, Windows or Linux with secure MCP remote access.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP bridge for PDF Content Search — full-text PDF search with Apple Vision OCR across thousands of documents in under a second from Claude, Cursor, or any MCP client. Advanced filters (date, category, sender, amount), wildcards, boolean operators. Bridge open-source (MIT), PDF Content Search app is commercial with free iOS+Android companion scanner apps.841MIT
- AlicenseAqualityDmaintenanceMCP server for vision AI — screenshots to code, OCR, error diagnosis, and image analysis via OpenAI-compatible APIs.82MIT
- AlicenseNot gradedqualityDmaintenanceStandalone MCP server that gives AI agents full GUI control over macOS — screenshots, mouse, keyboard, apps, clipboard, and multi-display — with zero private dependencies.20MIT

ToolPiperofficial
AlicenseNot gradedqualityBmaintenance426+ MCP tools for macOS, all on-device — local AI inference (llama.cpp on Metal), voice, vision OCR, local RAG, browser automation, and ~140 system actions across 26 macOS domains. Nothing leaves your Mac.3MIT