
Omni Lpr
io.github.habediPublished by GitHub account habediv0.3.6Updated Oct 24, 2026
An MCP server for automatic license plate recognition
Overview
Self-hostable license plate recognition server that gives an assistant tools to detect and read plates in images via MCP or REST.
- What you can do
- List available detector and OCR models
- Recognize text from a pre-cropped plate image supplied as Base64 or file upload
- Detect and recognize all plates in a full image supplied as Base64 or file upload
- Recognize plates from an image given as a URL or local file path
- Detect and recognize plates in a full image given as a URL or local file path
- When to use it
- Use it when an assistant needs to read license plates from photos or camera images, either as a standalone ALPR microservice or as an ALPR toolbox for agents and LLMs, and you are willing to run the server yourself.
- Requirements
- A running Omni-LPR instance: install with pip and start the omni-lpr command, or deploy the pre-built Docker images. The MCP endpoint is served over streamable HTTP at the server's /mcp/ path (default Hardware acceleration options include ONNX on CPU, OpenVINO on Intel CPUs and CUDA on NVIDIA GPUs.
Installation
In SourceWeft
- Open Omni Lpr in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Other MCP clients
Follow the launch instructions in the repository.
README
Omni-LPR
[Tests]
[Code Coverage]
[Code Quality]
[Python Version]
[PyPI]
[License]
[Documentation]
[Examples]
[Docker Image (CPU)]
[Docker Image (OpenVINO)]
[Docker Image (CUDA)]
A multi-interface (REST and MCP) server for automatic license plate recognition
Omni-LPR is a self-hostable server that provides automatic license plate recognition (ALPR) capabilities via a REST API and the Model Context Protocol (MCP). It can be used both as a standalone ALPR microservice and as an ALPR toolbox for AI agents and large language models (LLMs).
Why Omni-LPR?
Using Omni-LPR can have the following benefits:
-
Decoupling. Your main application can be in any programming language. It doesn't need to be tangled up with Python or specific ML dependencies because the server handles all of that.
-
Multiple Interfaces. You aren't locked into one way of communicating. You can use a standard REST API from any app, or you can use MCP, which is designed for AI agent integration.
-
Ready-to-Deploy. You don't have to build it from scratch. There are pre-built Docker images that are easy to deploy and start using immediately.
-
Hardware Acceleration. The server is optimized for the hardware you have. It supports generic CPUs (ONNX), Intel CPUs (OpenVINO), and NVIDIA GPUs (CUDA).
-
Asynchronous I/O. It's built on Starlette, which means it has high-performance, non-blocking I/O. It can handle many concurrent requests without getting bogged down.
-
Scalability. Because it's a separate service, it can be scaled independently of your main application. If you suddenly need more ALPR power, you can scale Omni-LPR up without touching anything else.
See the ROADMAP.md for the list of implemented and planned features.
[!IMPORTANT] Omni-LPR is in early development, so bugs and breaking API changes are expected. Please use the issues page to report bugs or request features.
Quickstart
You can get started with Omni-LPR in a few minutes by following the steps described below.
1. Install the Server
You can install Omni-LPR using pip:
2. Start the Server
When installed, start the server with a single command:
By default, the server will be listening on http://127.0.0.1:8000.
You can confirm it's running by accessing the health check endpoint:
3. Recognize a License Plate
Now you can make a request to recognize a license plate from an image. The example below uses a publicly available image URL.
You should receive a JSON response with the detected license plate information.
Usage
Omni-LPR exposes its capabilities as "tools" that can be called via a REST API or over the MCP.
Available Tools
The server provides tools for listing models, recognizing plates from image data, and recognizing plates from a path.
-
list_models: Lists the available detector and OCR models. -
Tools that process image data (provided as Base64 or file upload):
recognize_plate: Recognizes text from a pre-cropped license plate image.detect_and_recognize_plate: Detects and recognizes all license plates in a full image.
-
Tools that process an image path (a URL or local file path):
recognize_plate_from_path: Recognizes text from a pre-cropped license plate image at a given path.detect_and_recognize_plate_from_path: Detects and recognizes plates in a full image at a given path.
For more details on how to use the different tools and provide image data, please see the API Documentation.
REST API
The REST API provides a standard way to interact with the server. All tool endpoints are available under the /api/v1
prefix. Once the server is running, you can access interactive API documentation in the Swagger UI
at http://127.0.0.1:8000/api/v1/apidoc/swagger.
MCP Interface
The server also exposes its tools over the MCP for integration with AI agents and LLMs. The MCP endpoint is available at http://127.0.0.1:8000/mcp/, via streamable HTTP.
You can use a tool like MCP Inspector to explore the available MCP tools.
Integration
You can connect any client that supports the MCP protocol to the server. The following examples show how to use the server with LM Studio.
LM Studio Configuration
Tool Usage Examples
The screenshot of using the list_models tool in LM Studio to list the available models for the APLR.
The screenshot below shows using the detect_and_recognize_plate_from_path tool in LM Studio to detect and recognize
the license plate from an image available on the web.
Documentation
Omni-LPR documentation is available here.
Examples
Check out the examples directory for usage examples.
Contributing
Contributions are always welcome! Please see CONTRIBUTING.md for details on how to get started.
License
Omni-LPR is licensed under the MIT License (see LICENSE).
Acknowledgements
- This project uses the awesome fast-plate-ocr and fast-alpr Python libraries.
- The project logo is from SVG Repo.
Source: README.md at commit e38a591
Tools
0Version history
1- v0.3.6LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declaredRequired10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts