Atlas / MCP servers / habedi / Omni-LPR

Omni-LPRSAFE

mcp/habedi/omni-lpr

A multi-interface (REST and MCP) server for automatic license plate recognition 🚗

Verdict
SAFE
Grade
B
Trust score
88 /100
Exposed tools
—
Transport
streamable-http
License
MIT
Stars
26
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Omni-LPR

[](https://github.com/habedi/omni-lpr/actions/workflows/tests.yml) [](https://codecov.io/gh/habedi/omni-lpr) [](https://www.codefactor.io/repository/github/habedi/omni-lpr) [](https://github.com/habedi/omni-lpr) [](https://pypi.org/project/omni-lpr/) [](https://github.com/habedi/omni-lpr/blob/main/LICENSE)

[](https://github.com/habedi/omni-lpr/tree/main/docs) [](https://github.com/habedi/omni-lpr/tree/main/examples) [](https://github.com/habedi/omni-lpr/pkgs/container/omni-lpr-cpu) [](https://github.com/habedi/omni-lpr/pkgs/container/omni-lpr-openvino) [](https

Read from source at commit 3c38ec86917eOBSERVED · 2026-10-09
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (pypi)
claude mcp add omni-lpr -- None omni-lpr==0.3.5
03

Trust audit

SAFEgrade B · trust 88/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (4 observation(s))
Network
declared (1 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (10)

MEDIUMAuth / authz · mcp.remote_no_auth · CWE-287, CWE-862
streamable-http
Why it matters. a network transport with no auth environment variable found
Fix. require a token
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-config.yaml
.pre-commit-config.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:83
By default, the server will be listening on `http://127.0.0.1:8000`.
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:87
curl http://127.0.0.1:8000/api/health
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:100
http://127.0.0.1:8000/api/v1/tools/detect_and_recognize_plate_from_path/invoke
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:130
at http://127.0.0.1:8000/api/v1/apidoc/swagger.
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:135
http://127.0.0.1:8000/mcp/, via streamable HTTP.
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/omni_lpr/tools.py:72
base64.b64decode(v)
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/omni_lpr/tools.py:299
image_bytes = base64.b64decode(image_base64)
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
docs/github_mcp_registry/server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table

Gates applied: no_behavioural_pass.

Audited 2026-10-09 · audit v0.4.1 · source sha 3c38ec86917efull audit observations/trust-audit/mcp-server/habedi__omni-lpr.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-093c38ec86917eSAFEB88first audit
05

Questions

What is the Omni-LPR MCP server?

A multi-interface (REST and MCP) server for automatic license plate recognition 🚗

Is Omni-LPR safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (88/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Omni-LPR need?

No credential environment variables were found in its source, so it appears to need none.

How does Omni-LPR run?

It speaks streamable-http, so it runs as a service you connect to over the network. It is published on PyPI as omni-lpr.

How current is this page?

The grade is for one exact copy of the source (3c38ec86917e), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement