mcp-omni-context
Provides optional AI vision capabilities using Gemini models (default gemini-2.0-flash) for reading images, with automatic fallback to local OCR.
Provides optional AI vision capabilities using GPT-4o-mini for reading images, with automatic fallback to local OCR. Images are resized to 1024px and sent with detail: 'low' for low cost.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-omni-context extract text from this screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-omni-context
Give any AI chat real vision.
Read images, files, and zip archives in any language, for any AI model. Works everywhere MCP works. No Python, no servers. OCR runs locally by default.
โจ Features
Feature | What it does | |
๐ผ๏ธ | Screenshot reading | Reads any screenshot, at any angle, in any language |
๐ค | Optional AI vision | Add a key in |
๐ | Auto fallback | If the AI API fails (or no key set), it silently uses local OCR instead |
๐งฒ | Auto-detection | Pasted/dropped screenshots are found automatically in the temp/clipboard folders โ no copying files anywhere |
๐ | File & log reader | Code files and error traces, line by line |
๐ฆ | Zip explorer | Visual file tree plus every code file inside |
๐ | Any language | English, Bengali, Hindi, Arabic, Chinese and more |
๐ช | Zero setup for users | One command installs it for any AI tool |
๐ | Privacy first | With no API key, OCR runs 100% locally |
Related MCP server: mcp-vision
๐ Download & Run
Everything lives behind two tools: read_context_data and find_images.
Step 1 ยท Check you have Node.js (20.17+)
node -vStep 2 ยท No command? Just ask your AI assistant
"please setup mcp-omni-context"
Step 3 ยท Or run it yourself
npx -y mcp-omni-context setupThen restart your AI tool. Done. That's the whole setup.
It configures opencode, Codex, Claude Desktop, Cursor, Windsurf, Cline, Roo,
and VS Code, backs up your existing configs, and creates an uploads folder at
~/.mcp-omni-context/uploads.
๐ก Pasting a screenshot? Send it straight to your assistant. If the path is not obvious, the assistant calls
find_imagesto locate the freshest images in your temp, clipboard, Downloads, Desktop, Pictures, and uploads folders. You never have to save or copy a file manually.
โ๏ธ Optional: better accuracy with AI vision (~$0.001 / image)
By default every image is read by local OCR (tesseract.js) โ free and private.
For noticeably better UI/error-screen reading, add one API key to a file named
.env in your project folder (the same folder you run the AI tool from).
Create an API key at https://platform.openai.com/api-keys
Create a
.envfile in your project and paste:
OPENAI_API_KEY=sk-your-key-hereThat's it. Images are resized to max 1024px with sharp, compressed to JPEG,
and sent with detail: "low" โ keeping the cost at roughly $0.001 per image
with GPT-4o-mini.
Get a free key at https://aistudio.google.com/app/apikey
Create a
.envfile in your project and paste:
GEMINI_API_KEY=your-gemini-keyKeys are read from (first match wins):
Your environment variables (e.g.
set OPENAI_API_KEY=...on Windows,export OPENAI_API_KEY=...on macOS/Linux), ora
.envfile in the current project folder, ora
.envfile at~/.mcp-omni-context/.env.
Existing environment variables are always respected over .env values.
New keys take effect immediately; you only need to restart the AI tool.
๐ก๏ธ Fail-safe: if the vision API is down, returns an error, or the key is missing, the tool automatically falls back to local OCR โ you always get a result, never a crash.
๐ ๏ธ Tools
read_context_data
Reads images, files, logs, and zip archives and returns a strictly-ordered, LLM-ready text dump. Accepts:
a path:
{"items": ["C:/Users/you/Desktop/shot.png"]}many paths in one call:
{"items": ["a.png", "b.png", "error.log", "src/"]}a bare file name (auto-resolved from the system temp/clipboard folders)
an in-memory buffer:
{"items": [{"name": "a.png", "base64": "..."}]}
Each image is processed sequentially and wrapped in a clear delimiter:
--- [Image Index 1] Visual Analysis ---
[Source: C:/Users/you/Desktop/shot.png]
[Vision AI ยท gpt-4o-mini ยท detail=low ยท jpeg 181.2 KB ยท raster 2560x1440]
<the analysis / transcribed text>
--- [Image Index 2] Visual Analysis ---
...find_images
Locates the freshest screenshots across your temp, clipboard, Downloads, Desktop, Pictures, Telegram Desktop, and uploads folders โ newest first.
find_images โ 10 newest images
find_images maxResults: 50 โ up to 50
find_images query: "bug" โ only files whose name contains "bug"
find_images sinceMinutes: 10โ only images from the last 10 minutes๐ฆ Updating
Updates are automatic. Every client runs this via npx -y, so the newest
version loads on the next start. Zero clicks, zero reinstall.
Just tell your assistant:
"update mcp-omni-context"
Or run the one-command update yourself:
npx -y mcp-omni-context updateIt fetches the latest version and refreshes your configs and rules.
โ๏ธ Setup (manual)
The installer writes all of this for you. For the curious, here is how each client is configured.
{
"mcp": {
"omni-context": {
"type": "local",
"command": ["npx", "-y", "mcp-omni-context"],
"enabled": true
}
}
}{
"mcpServers": {
"omni-context": {
"command": "npx",
"args": ["-y", "mcp-omni-context"]
}
}
}{
"mcpServers": {
"omni-context": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-omni-context"]
}
}
}[mcp_servers.omni-context]
command = "npx"
args = ["-y", "mcp-omni-context"]โ๏ธ Environment variables
All of these can go in a .env file or your real environment.
Variable | Default | What it does |
| โ | Enables GPT-4o-mini vision (resized to 1024px, |
|
| Override the OpenAI vision model |
|
| Use any OpenAI-compatible endpoint |
| โ | Enables Google Gemini vision instead |
|
| Override the Gemini model |
|
|
|
| โ | Path to a specific |
| off |
|
|
| tesseract page-segmentation mode (0โ13) |
๐ How it reads
Your assistant reads context through read_context_data. It accepts any number
of images, files, logs, or zip archives in order, and returns a strictly ordered,
LLM-ready text dump.
OCR defaults to English + Bengali. For other languages, just tell your assistant the language (Hindi, Arabic, Chinese, Spanish, French, German, Russian, Japanese, Korean, Urdu, and many more). The language data downloads itself, or pre-download once:
npx -y mcp-omni-context --warmup eng,ben,hin,spa,fra,urdsrc/
โโโ index.ts # the entire server (tool + vision + zip tree + setup + update)
dist/ # compiled output (published)
README.md
package.json๐ Safety
Guard | What it means | |
๐ซ | Sensitive files |
|
๐ฆ | Binary & heavy | ignore |
๐ก๏ธ | Zip-slip | blocks |
๐งผ | Auto-cleanup | temp files are purged after every run |
๐ธ | Low cost | AI vision resizes to 1024px and sends |
๐ ๏ธ CLI reference
mcp-omni-context start the MCP server (stdio)
mcp-omni-context setup configure all supported clients
mcp-omni-context update fetch latest + refresh configs and rules
mcp-omni-context --check-update check the latest published version
mcp-omni-context --warmup [langs] pre-download OCR language data
mcp-omni-context --selftest check OCR works on your machine
mcp-omni-context --help show help
mcp-omni-context --version show versionMIT License ยท built by @0xnurrabby
Available Tools
2 toolsfind_imagesfind_images - locate recent screenshots & attachmentsARead-onlyIdempotent
Scans the system temp, clipboard, Downloads, Desktop, Pictures, Telegram Desktop and the ~/.mcp-omni-context/uploads folders for the most recent image files and returns their paths, newest first. Use this when the user pastes or drops a screenshot with no obvious file path, then pass the returned path(s) to read_context_data. maxResults limits how many are returned (default 10). query filters by file name (e.g. a fragment). sinceMinutes narrows the search to the last N minutes.
Inputs: query, maxResults, sinceMinutes.
read_context_dataread_context_data - vision & file context dumperARead-onlyIdempotent
Extracts readable code/text from images, single files, or zip archives and returns a strictly-ordered, LLM-ready text dump with a file tree for archives. Images are analyzed sequentially; each one is wrapped in --- [Image Index X] Visual Analysis ---. When OPENAI_API_KEY (GPT-4o-mini) or GEMINI_API_KEY is set, images are resized with sharp to max 1024px and sent with detail: "low" (costs ~$0.001/image); on any API failure it silently falls back to local tesseract.js OCR. Pass an ordered items array; each entry is a local path string (file, directory, or .zip), a bare image name/filename, or an in-memory { name, base64 } object. If a referenced image path does not exist on disk, the freshest images from the system temp/clipboard/upload folders are auto-detected, so chat-attached screenshots work out of the box. Single files are line-truncated with a notice; archives get a directory Tree plus every code/text entry. Non-code folders (node_modules, .git, dist, build, .next, coverage, vendor, bin, obj), binary/media files, oversized entries, and sensitive files (.env, id_rsa, .pem, secrets., tokens) are skipped automatically. Output is capped at maxOutputChars characters; a summary footer reports truncation, errors, skipped counts, and estimated token usage. items ordering is always preserved.
Inputs: items (required), skipBinary, concurrency, ocrLanguages, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: read_context_data extracts content from files/images/archives, while find_images locates image paths. They complement each other without overlapping, so an agent can easily choose the right tool.
Both tool names follow a consistent verb_noun snake_case pattern: read_context_data and find_images. This predictability makes the tool set easy to navigate.
With only 2 tools, the count is slightly below the typical 3-15 range, but it is appropriate for the narrowly scoped purpose of context extraction. Each tool is essential and earns its place.
The tool surface covers the core workflow: reading content from images, files, and archives, plus finding images when no path is provided. There are no significant gaps for the stated domain; minor omissions like other archive formats are acceptable.
Maintenance
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for Flux AI image generation
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that lets AI assistants read and visually analyze local documents โ PDFs, Excel spreadsheets, CSV files, Word documents, PowerPoint presentations, and images.457 npm75 PyPIMIT
- AlicenseAqualityCmaintenanceAn MCP server that adds image recognition to AI coding tools, enabling them to analyze images, extract text, and perform OCR via multimodal APIs and traditional OCR engines.324 PyPI26MIT
- AlicenseNot gradedqualityDmaintenanceA powerful MCP server that brings AI vision capabilities to Claude Desktop. Analyze images and videos using OpenAI GPT-4o, Claude, or any compatible vision API.31 npmMIT
- AlicenseAqualityDmaintenanceMCP server that analyzes images, reads code and ZIP archives, and provides text context for non-vision models.314 npm2MIT