npu-vision-fallback
The npu-vision-fallback server provides local, privacy-first vision capabilities for desktop AI agents to understand and interact with screen content — no cloud, no GPU required.
health_check— Verify the server is running and responsive.list_backends— Discover which vision backends (e.g.,winocr,openvino_npu,openvino_cpu,rapid_ocr) are currently available.ocr_region— Extract text from a specific screen region (or full screen) using the best available OCR backend; optionally force a specific backend.detect_ui— Detect UI elements (buttons, fields, icons, etc.) in a screen region using a YOLOv8n model on OpenVINO (NPU or CPU), returning bounding boxes with labels and confidence scores.analyze_screen⭐ — The primary all-in-one tool: captures a screen region, runs NPU YOLO UI detection and OCR in parallel, then spatially fuses results into an ordered list of interactive elements annotated with their visible text — ideal for agents navigating complex UIs.
It works as an MCP server compatible with Claude Code, Codex, OpenCode, etc., and includes a standalone CLI for batch processing image files.
Click on "Install 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., "@npu-vision-fallbackRead the screen at [0,0,1280,800] and locate the 'Start Game' button."
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.
🔋 npu-vision-fallback
⚠️ Archived experiment — no longer actively developed
An Intel NPU screen-vision + MCP integration experiment. Backend routing and Windows-native OCR integration worked; the NPU-first product hypothesis did not find a stable user need. Code preserved for reference.
English | 中文
🗄️ Why This Is Archived
This project tested whether desktop AI agents would benefit from running low-level screen perception — "find the button", "read this region" — locally on an Intel NPU, exposed as an MCP server. That was a hypothesis, not a verified need; it never crystallized into stable demand, so development stopped.
Two things the experiment did prove:
Backend routing with graceful fallback — NPU → CPU → system OCR → cross-platform OCR, driven by a power policy, with heavy dependencies kept optional.
Windows-native OCR over MCP — WinRT OCR wired into the same tool surface as the OpenVINO NPU UI detector.
What I still use it for: batch OCR of long screenshots. Note that the implementation has no complete tiling guarantee for very long images — it may drop content on extreme captures. Treat the code as a reference, not a maintained dependency.
Related MCP server: openowl
🧱 Original Design
Three constraints that shaped the project:
Cheapest path first. OS-native OCR, then a local detector. A cloud multimodal model was the last resort — for reasoning, not for finding buttons.
Isolate compute. Inference on the NPU so the GPU stays free for the app the agent is watching. The service requests NPU or CPU only — never any GPU.
Local, period. Screenshots stay in memory and are never written to disk; OCR text is never logged; nothing leaves the machine.
Pipeline: mcp_server.py → core/orchestrator.py →
core/backend_selector.py → selected backend → screen-space remap. Full
detail: docs/ARCHITECTURE.md.
📋 Reference
MCP Tools
Tool | Purpose | Key Arguments |
| Server status | — |
| Available backends | — |
| Extract text from region |
|
| Find UI elements |
|
| Combined OCR + detection |
|
| Analyze an image file |
|
| Batch-analyze images in a directory |
|
analyze_screen fuses detection + OCR into spatially-sorted elements with
text annotations. analyze_image_file and analyze_image_directory reuse the
same pipeline on image files.
CLI
# Single image
uv run npu-vision-fallback-cli analyze-image path/to/image.png --mode all
# Directory batch
uv run npu-vision-fallback-cli analyze-dir path/to/dir --output-dir out/ --recursiveInstallation (reference only — not recommended for new deployments)
pip install "npu-vision-fallback[ocr-win,detect]"
python scripts/download_ui_model.py # one-time model export to OpenVINO IRFurther extras are listed in pyproject.toml.
Supported Backends
Backend | Type | Device | Platform | Status |
| System OCR | CPU/NPU | Windows | ✅ Primary |
| UI Detection | NPU | Win/Linux + Intel NPU | ✅ Primary |
| UI Detection | CPU | Win/Linux/macOS | ✅ Fallback |
| OCR | CPU | All | ✅ Cross-platform |
| OCR | CPU | All | ✅ Last-resort |
| System OCR | ANE | macOS | 🚧 Never implemented |
Measured Performance
Intel Core Ultra 9 275HX, 2560×1600, on battery:
Task | Backend | Latency | Energy | Notes |
OCR | WinOCR | ~1100ms | 2.5J | Native Windows API |
OCR | RapidOCR | ~6300ms | 14.5J | Cross-platform ONNX CPU |
UI Detection | OpenVINO NPU | ~80ms | 0.3J | YOLOv8n on Intel AI Boost |
UI Detection | OpenVINO CPU | ~120ms | — | No-NPU fallback |
Full details: outputs/power_report.md
Examples
Example | Description |
OCR a screen region | |
Find and click UI elements | |
Vision fallback in remote desktop |
uv run python examples/basic_ocr.py --region 0 0 1280 800Docs
📄 License
MIT © npu-vision-fallback contributors
🙏 Acknowledgments
Built with MCP (Anthropic), OpenVINO, Ultralytics YOLO, RapidOCR, Tesseract, and python-mss.
Development assisted by Claude Code (Anthropic).
Maintenance
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
- Alicense-qualityCmaintenanceGUI automation MCP server that enables AI agents to see and control the Windows desktop using a local Vision LLM (Ollama), supporting screenshot analysis, mouse/keyboard actions, and autonomous task execution.Last updated4MIT
- Alicense-qualityBmaintenanceAn MCP server that gives any AI assistant eyes and hands on your desktop — screenshots, clicking, typing, OCR, window management, accessibility-tree queries, workflow recording.Last updated5Apache 2.0
- AlicenseAqualityBmaintenanceMCP server for vision AI — screenshots to code, OCR, error diagnosis, and image analysis via OpenAI-compatible APIs.Last updated82MIT
- Flicense-qualityDmaintenanceMCP server for vision capabilities, enabling screenshot, camera, and image analysis using Ollama vision models.Last updated
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for Hailuo (MiniMax) AI video generation
MCP server for AI dialogue using various LLM models via AceDataCloud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Byte-Naut/npu-vision-fallback'
If you have feedback or need assistance with the MCP directory API, please join our Discord server