Skip to the content.

AI PatchLab Scans

Security scans of public repositories run with AI PatchLab, an open-source, local-first security scanner.

Every report on this page was generated locally. No source code was sent to any third party, no AI provider was contacted, and no paid API was called. AI PatchLab orchestrates Semgrep, Gitleaks, Trivy, and pip-audit, then applies deterministic remediation and confidence rules to normalize the findings.

Want this run privately against your own codebase? I do independent security review of AI agents, MCP servers, and LLM apps — work with me →. 100 scans, 23 confirmed fixes, methodology in the open.

OpenAI just launched Daybreak and Patch the Planet. Same remediation loop, opposite trade-off: their path is a cloud frontier model; this one keeps your code on your disk. Why local-first still matters →

New — the whole series, read end to end. Measured across the first 83 scans: the four tools produced 10,635 findings; 56 were real. Here is what they reliably get wrong, the six classes of bug no rule can see, and why half the scans found nothing. 10,635 findings, 56 that mattered →

Six scans worth reading

If you only read a handful, read these. Each one shows a different part of the job — and the last two show it going against the interesting answer, which is the part that makes the other 81 worth trusting.

jgravelle/jcodemunch-mcpa finding concrete enough to be adopted. A path-confinement escape, reported with a working fix. The pull request never merged — a contributor licence agreement expired first — so the maintainer wrote the diff themselves and said so in the release notes. Catching the bug by resolution rather than by pattern exposed that the same rule already had three separate spellings in the codebase; there is one now, with a test that fails on a fourth.

EvoScientist/EvoScientistthe finding no tool ranked. An inverted conditional meant two webhook channels verified their signature only when a caller-controlled flag asked them to. Thirty-nine findings in the report; this was not one of them. A passer-by contributor reproduced the bypass on both channels and shipped the fix with nine regression tests.

54yyyu/zotero-mcpcuration is the product. Four scanner findings became six confirmed-real items, and only one of the six came from a scanner. All six were fixed and merged about six hours later; the next release was cut nine minutes after the issue closed.

whiteguo233/OpenBiliClawwhen two tools disagree, the disagreement is the finding. Trivy read the lockfile and reported 63 advisories; pip-audit resolved the same project’s declared version floors and reported zero. Both were right. The project ships both as real install paths, so the containerised deployment was clean and the recommended host install was not — from the same commit. Fixed and merged the same day, as the single-package bump the issue asked for rather than a blanket lockfile refresh.

TracecatHQ/tracecata negative result, published. A security-automation platform, scanned the same way as everything else, with every promising lead followed to a dead end. Nothing real to report, so that is what the write-up says. A method that can only return “yes” is not a method.

Mai-with-u/MaiBotthe fifty-two findings that weren’t. An automated sweep flagged 52 of 404 routes as unauthenticated, including an entire router that visibly lacked the dependency its siblings all carried. Reading the code dissolved it: the module imported the auth function under an alias and called it in the handler body. Of the 404 routes, 378 enforce auth and the 9 genuinely public ones are health, version, robots, login and static assets. Fifty-two flagged, none reported.

How these scans work

All scans

100 scans, newest first. Findings is the raw count the tools produced; Real is what survived curation. The gap between those two columns is the entire job.

Date Repository Findings Real Outcome
2026-09-10 Datus-ai/Datus-agent 291 1 real open
2026-09-09 mims-harvard/ToolUniverse 284 1 real — withheld private
2026-09-08 chigwell/telegram-mcp 38 0 real
2026-09-07 realiti4/claude-swap 22 0 real
2026-09-06 ApodexAI/FrontierAgent 58 1 real — withheld private
2026-09-05 doobidoo/mcp-memory-service 176 0 real
2026-09-04 basicmachines-co/basic-memory 270 0 real
2026-09-03 samuelgursky/davinci-resolve-mcp 97 1 real fixed
2026-09-02 HKUDS/OpenOPC 56 1 real — withheld private
2026-09-01 future-agi/future-agi 1227 1 real — withheld private
2026-08-31 shy3130/tick-stock-panel 77 1 real fixed
2026-08-30 SenteLabsAI/OpenExecutive 124 1 real — withheld private
2026-08-29 ginlix-ai/LangAlpha 372 1 real open
2026-08-28 Ontos-AI/knowhere 129 1 real — withheld private
2026-08-27 Zleap-AI/SAG 60 1 real fixed
2026-08-26 ascending-llc/jarvis-registry 235 1 real — withheld private
2026-08-25 langflow-ai/openrag 213 1 real — withheld private
2026-08-20 whiteguo233/OpenBiliClaw 373 1 real fixed
2026-08-19 Mai-with-u/MaiBot 373 1 real — withheld private
2026-08-18 roflcoopter/viseron 399 1 real — withheld private
2026-08-17 zilliztech/memsearch 90 1 real fixed
2026-08-16 liaohch3/claude-tap 104 1 real — withheld private
2026-08-15 TracecatHQ/tracecat 212 0 real
2026-08-14 datalayer/jupyter-mcp-server 37 0 real private
2026-08-13 lightseekorg/tokenspeed 181 1 real — withheld private
2026-08-12 jgravelle/jcodemunch-mcp 49 0 real fixed
2026-08-11 semantica-agi/Semantica 60 1 real — withheld private
2026-08-10 datascale-ai/OpenTalking 93 1 real
2026-08-09 NeptuneHub/AudioMuse-AI 265 1 real — withheld private
2026-08-08 theroyallab/tabbyAPI 18 2 real fixed
2026-08-07 huangruiteng/loopx 57 1 real — withheld fixed
2026-08-06 nottelabs/notte 226 1 real — withheld private
2026-08-05 Vexa-ai/vexa 297 1 real — withheld private
2026-08-04 ArcReel/ArcReel 82 1 real — withheld private
2026-08-03 the-momentum/open-wearables 145 2 real
2026-08-02 Observal/Observal 1,117 1 real — withheld private
2026-08-01 repowise-dev/repowise 86 2 real — withheld private
2026-07-31 rocketride-org/rocketride-server 268 1 real — withheld private
2026-07-30 pipeshub-ai/pipeshub-ai 389 2 real — withheld private
2026-07-29 Project-N-E-K-O/N.E.K.O 783 1 real fixed
2026-07-28 EvoScientist/EvoScientist 39 1 real fixed
2026-07-27 dimensionalOS/dimos 280 0 real
2026-07-26 CodeGraphContext/CodeGraphContext 112 0 real
2026-07-25 Osmantic/ODS 73 0 real
2026-07-24 gpustack/gpustack 136 0 real
2026-07-23 EverMind-AI/Raven 87 0 real
2026-07-22 mixelpixx/KiCAD-MCP-Server 29 0 real
2026-07-21 ucbepic/docetl 124 1 real
2026-07-20 ModelEngine-Group/nexent 115 0 real
2026-07-19 vitali87/code-graph-rag 22 1 real fixed
2026-07-18 algorithmicsuperintelligence/optillm 57 1 real
2026-07-17 IBM/mcp-context-forge 946 0 real
2026-07-16 a2aproject/a2a-python 20 0 real
2026-07-15 mnemosyne-oss/mnemosyne 195 0 real
2026-07-14 datachain-ai/datachain 35 0 real
2026-07-13 potpie-ai/potpie 96 0 real
2026-07-10 sooperset/mcp-atlassian 71 0 real
2026-07-09 VectifyAI/OpenKB 23 0 real
2026-07-07 atilaahmettaner/tradingview-mcp 28 0 real
2026-07-03 AgentEra/Agently 25 1 real fixed
2026-07-02 UKGovernmentBEIS/inspect_ai 161 0 real
2026-07-01 Soju06/codex-lb 76 0 real
2026-06-30 openagents-org/openagents 680 0 real
2026-06-28 SwanHubX/SwanLab 32 0 real
2026-06-26 ag2ai/ag2 73 0 real
2026-06-25 Kiln-AI/Kiln 150 0 real
2026-06-24 maziyarpanahi/openmed 44 0 real
2026-06-23 stickerdaniel/linkedin-mcp-server 6 0 real
2026-06-21 taylorwilsdon/google_workspace_mcp 16 0 real
2026-06-19 xerrors/Yuxi 70 see write-up fixed
2026-06-15 harbor-framework/harbor 570 see write-up
2026-06-12 mistralai/mistral-vibe 21 0 real
2026-06-11 dataelement/Clawith 54 see write-up
2026-06-10 Ar9av/obsidian-wiki 0 real
2026-06-09 confident-ai/deepteam 48 0 real
2026-06-08 54yyyu/zotero-mcp 4 6 real fixed
2026-06-06 LazyAGI/LazyLLM 121 see write-up
2026-06-04 agentscope-ai/ReMe 159 3 real fixed
2026-06-03 Q00/ouroboros 34 see write-up
2026-06-02 VRSEN/agency-swarm 48 see write-up fixed
2026-06-01 SuanmoSuanyangTechnology/MemoryBear 196 see write-up
2026-05-29 homeassistant-ai/ha-mcp 65 0 real
2026-05-28 evalstate/fast-agent 36 0 real fixed
2026-05-27 aurelio-labs/semantic-router 116 see write-up partial
2026-05-27 pixeltable/pixeltable 67 see write-up fixed
2026-05-26 dstackai/dstack 163 3 real
2026-05-26 pydantic/logfire 27 0 real
2026-05-25 MinishLab/semble 2 0 real
2026-05-25 plastic-labs/honcho 315 see write-up
2026-05-21 HolmesGPT/holmesgpt 2,143 see write-up
2026-05-21 dograh-hq/dograh 69 see write-up fixed
2026-05-20 Klavis-AI/klavis 1,556 see write-up
2026-05-20 Giskard-AI/giskard-oss 27 0 real
2026-05-19 guardrails-ai/guardrails 17 see write-up
2026-05-19 airweave-ai/airweave 46 see write-up
2026-05-16 MervinPraison/PraisonAI 489 5 real fixed
2026-05-15 Upsonic/Upsonic 40 4 real
2026-05-15 msoedov/agentic_security 9 2 real fixed
2026-05-14 traceloop/openllmetry 33 1 real
2026-05-14 gptme/gptme 57 3 real fixed

Older entries predate the “N real” convention and are marked “see write-up”. Every scan’s original summary is preserved in the full scan log.


About AI PatchLab

AI PatchLab is a Python CLI that produces JSON and Markdown security reports from a local repository path. It is designed for engineers and maintainers who want a real audit without sending their codebase to a cloud service.

For setup and full documentation, see the project README.