Including the five places where other projects are clearly ahead of us. Every number on this page comes with the command to re-measure it, because a comparison written by a vendor is worth exactly as much as its verifiability.
Conarium is the smallest project on this page. 2 GitHub stars against Bifrost's 6,861 and Docker's 1,510. If adoption is your primary selection criterion, stop reading and pick one of them — that is a legitimate way to choose infrastructure and we will not argue with it. Keep reading only if what you need is content-level masking with an audit trail you can verify yourself, which is a narrower thing than a gateway.
Star counts and last-commit dates were read from the GitHub API on 29 July 2026 (hoop.dev added 31 July 2026). Capability columns come from each project's own README or docs. “Not documented” means we could not find it documented — it does not mean the product lacks it. If we got something wrong about your project, email us and we will correct this page.
| Project | Stars | Last commit | Model | Content masking | Audit trail | Coverage reconciliation | Per-user identity | Multi-tenant | SOC 2 |
|---|---|---|---|---|---|---|---|---|---|
| Conarium | 2 | 2026-07-24 | MIT, self-host | Yes — primary design goal, deterministic | Yes — hash-chained, checker in repo | Yes — conarium-reconcile compares the database's own per-role query counters against the receipts for the same window |
Partial — names the person when per-user tokens are configured; token file, not OAuth/SSO | No | No |
| hoop.dev | 772 | 2026-07-30 | MIT, self-host | Yes — Live Data Masking, wire level | Yes — session recording & replay (no signed, offline-verifiable receipt found) | Not documented | Yes — tied to IdP user | Not documented | Yes — Type II |
| Lasso MCP Gateway | 381 | 2026-01-22 (6 months) | Open source | Yes — Presidio / Basic plugins | Yes — Xetrack | Not documented | Not documented | Not documented | Not documented |
| Bifrost (Maxim AI) | 6,861 | 2026-07-28 | Open source, self-host | Not documented | Yes | Not documented | Yes — virtual keys | Yes | Not documented |
| Docker MCP Gateway | 1,510 | 2026-07-23 | Open source | Not documented | Not documented | Not documented | No | No | n/a |
| MintMCP | n/a (SaaS) | n/a | SaaS, price on request | Not documented | Yes | Not documented | Yes — SSO, SCIM | Yes | Yes — Type II |
| Lunar MCPX | 473 | 2026-07-28 | Self-host / enterprise | Implied, not documented | Yes | Not documented | Enterprise tier | Yes | Yes — Type II |
Five things. We are not going to bury them at the bottom of a feature grid.
assurance: per-user-token. Without it we still record the connecting service, and ten accesses land under one name. The gap that remains is real: ours is an operator-managed token map, theirs is tied to an identity provider. We have no OAuth or SSO integration, so our assurance is only as good as whoever hands out the tokens.Different, not better. These are design choices with costs attached.
scripts/audit-chain-check.mjs is in the repo. You can detect after-the-fact edits to the log yourself.conarium-verify ships as a binary that runs offline — no Conarium install, no call back to us. Chain heads anchor to OpenTimestamps, so a backdated history is detectable without trusting our clock. This is the one column where the bigger projects on this page do not compete: hoop.dev records and replays sessions, but we could not find a signed, independently verifiable artefact you could hand an auditor who distrusts both of you. Stated plainly: a receipt proves records were not altered, deleted, reordered or backdated after they were created — it does not prove they were correct when written. HMAC signing is still supported for existing deployments and proves only internal consistency.conarium-reconcile adds the second side — it compares the database's own per-role query counters (pg_stat_statements) against the receipts for the same window, and any query pattern the database recorded that no receipt covers is surfaced rather than staying invisible. Measured live on 6 August 2026 against the ERP: a window of gateway-only traffic reconciled clean, and the same window with one receipt missing was caught and named the affected view. Stated plainly: it trusts the database's own counters, needs a dedicated DB role per instance, matches per query pattern and per table rather than per call count — one REST request can fan out into several statements — and a finding means access was not receipted, which is not proof of intent: the gateway may have been bypassed, or the receipt sink may have failed. Signing receipts without enforcing is common; enforcing without portable receipts is common; reconciling both sides is the part we have not found elsewhere.Do not take the numbers on trust. They took about a minute to gather:
# Stars and last commit for every open-source project above
for r in dogrucanemek-alt/conarium hoophq/hoop lasso-security/mcp-gateway \
maximhq/bifrost docker/mcp-gateway TheLunarCompany/lunar; do
gh api "repos/$r" --jq '"\(.full_name) ★\(.stargazers_count) \(.pushed_at)"'
done
# Our public demo — attach it to your own Claude and test the claims
# (synthetic data, public token, rate-limited)
https://demo.conarium.dev/t/conarium-public-demo-tryit-2026/mcp
# Or clone and run it end to end
git clone https://github.com/dogrucanemek-alt/conarium.git
cd conarium && npm install && npm run build
On the demo: ask for revenue and it answers. Ask for customer names and they come back [MASKED_PII]. Ask for the closed table and it is refused by policy, not hidden. The point is that the evidence comes out of your tool, not our marketing.