MCP.Market

once MCP server

by aurumflux20·io.github.aurumflux20/once-kernel·v0.2.1

Run a side effect exactly once under retries, redelivery, and concurrent workers.

A85/100grade A
What users say
No reviews yet
Be the first
Safety scan
A85/100

full report

Adoption
New

0 stars17 downloads/wk

Reviews

Write one

Nobody has reviewed once yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

once tools (4)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • once_begin

    Ask permission to run a side-effecting action exactly once.

  • once_complete

    Report that the action succeeded; stores `result` for future replays.

  • once_fail

    Report that the action failed. allow_retry=True frees the key so a later attempt may execute; allow_retry=False records a terminal failure that future once_begin calls will replay as 'failed_previously'.

  • once_heartbeat

    Extend the lease while a long action is still genuinely running, so no other attempt takes it over mid-flight. Call every ~15s for multi-minute work. False means the lease is no longer yours — STOP the work; another attempt owns the action now.

Public scan report

scanner v0.1.10 · 2026-11-04 · same rubric, same numbers if you re-run it

no findings
  • Code scan12 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 85 days ago12/15
  • Maintainer identityregistry namespace matches repository owner6/10
Overall 85/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How once compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
85/100
higher than 70% of 48,243 servers
Tools
4
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
17
more than 5% of 12,306 servers with a package

What its tools let an agent do: 4 read

Install once in Claude Code, Cursor or VS Code

claude mcp add once-kernel -- uvx once-kernel
Add to Cursor

What the publisher says

From the once repository's README, as published. We do not edit it. Read it on GitHub

once

<!-- mcp-name: io.github.aurumflux20/once-kernel -->

Run any side effect exactly once — even when 1,000 callers demand it at the same instant.

⚡ once — STORM DEMO
1,000 concurrent attempts to charge order #777 ($49.00)

ACTUAL EXECUTIONS   :      1   ← the whole point
served same answer  :  1,000 / 1,000
elapsed             :   0.1s

💰 double-spend prevented this run: $48,951.00

That's not a mock — it's a live attack you can run right now:

pip install once-kernel
python -m once.demo

The problem

Networks retry. Users double-click. Queues redeliver. AI agents re-fire tools at machine speed. Any of these turns one payment into two, one email into three, one server into two hundred.

Most teams hand-roll an idempotency table — and most of those are quietly broken under concurrent load: two identical requests both pass the "already done?" check, then both execute. The bugs are subtle, the failures are money.

once is that table done right, once, for everyone — a tiny idempotency kernel with the four defenses hand-rolled versions miss:

  1. Atomic leader election — concurrent duplicates can't all pass the check; exactly one executes, the rest coalesce onto its result.
  2. Payload fingerprinting (RFC 8785) — same key with a different body is a hard IdempotencyConflict, never someone else's cached answer.
  3. Fence tokens + generations — a crashed worker's lease can be taken over, and when the "dead" worker wakes up late, it is locked out of corrupting the record.
  4. Honest failure states — a failed attempt frees the key for retry; an unknown outcome never silently re-runs.

Use it

from once import Once

o = Once()

def charge():
    return gateway.charge(order_id="ord_1", amount_cents=4900)

# Retries, double submits, webhook redelivery, agent fan-out → runs ONCE
result = o.run("pay:ord_1", {"order": "ord_1", "amount_cents": 4900}, charge)

One box, several processes, no database server — SQLite, nothing to install:

from once import Once
from once.sqlite import SqliteStore

o = Once(SqliteStore("/var/lib/myapp/once.db"))  # schema auto-created

Survives restarts and works across processes (WAL mode). The default MemoryStore does neither — it is per-process, so the moment you run a second worker each one keeps its own private idea of what already ran, and the guard silently stops guarding.

Several machines — share state through the Postgres you already run:

from once import Once
from once.pg import PostgresStore

o = Once(PostgresStore("postgresql://user:pass@host/db"))  # table auto-created

Async (FastAPI, agents) — sync side effects go to a worker thread, waiters park on the event loop (no thread-pool starvation under duplicate storms; there's a test that proves it):

from once import AsyncOnce

ao = AsyncOnce()
result = await ao.run("pay:ord_1", payload, charge)

→ The full 5-minute guide

What you can rely on

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

once: common questions

Is once MCP server safe?
Yes, by our scan: it is graded A (85/100). Read the once safety report
How do I install once?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does once need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is once maintained?
The last commit was 86 days ago (2026-08-12). The latest release is v0.2.1.
How does once compare with other MCP servers?
safety score 85/100 (higher than 70% of 48,243 servers); tools 4 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

More from aurumflux20 →