Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Ratchet

von thearchitect0x-glitchVersion 0.3.0i★ –iComputer oder Cloud
Name in der Registrycom.ratchetgate/ratchet

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Your agent asks before it acts, so the same real-world action is attempted at most once.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Computer oder Cloud
  • Transport: stdio, Streamable HTTP
  • Kategorie: Sonstiges
  • Das musst du eintragen: RATCHET_API_KEY

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 0 von 1 bestanden
  • Läuft auf dem Server des Entwicklers: Was du fragst, läuft über dessen Server.
  • Das trägst du selbst ein: RATCHET_API_KEY, RATCHET_BASE_URL

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • Läuft in der CloudNichts zu installieren; die Verbindung läuft übers Internet
  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:

  1. Öffne Settings → Connectors
  2. Tippe auf Add custom connector
  3. Füge die Adresse unten ein und tippe auf Add
  4. Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
SettingsConnectors1+ Add2https://…3
https://ratchetgate.com/mcp

Oder führ ihn auf deinem Computer aus

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "ratchet": {
      "command": "npx",
      "args": [
        "-y",
        "ratchet-mcp"
      ],
      "env": {
        "RATCHET_API_KEY": "your-value",
        "RATCHET_BASE_URL": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add --transport http ratchet https://ratchetgate.com/mcp

Oder führ ihn auf deinem Computer aus

claude mcp add ratchet --env RATCHET_API_KEY=your-value --env RATCHET_BASE_URL=your-value -- npx -y ratchet-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "ratchet": {
      "url": "https://ratchetgate.com/mcp"
    }
  }
}

Oder führ ihn auf deinem Computer aus

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "ratchet": {
      "command": "npx",
      "args": [
        "-y",
        "ratchet-mcp"
      ],
      "env": {
        "RATCHET_API_KEY": "your-value",
        "RATCHET_BASE_URL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "ratchet": {
      "type": "http",
      "url": "https://ratchetgate.com/mcp"
    }
  }
}

Oder führ ihn auf deinem Computer aus

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "ratchet": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ratchet-mcp"
      ],
      "env": {
        "RATCHET_API_KEY": "your-value",
        "RATCHET_BASE_URL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

ChatGPT verbindet sich nur mit Servern im Internet:

  1. Öffne ChatGPT im Web → Settings → Connectors (Apps)
  2. Tippe auf Create oder Add (bei manchen Tarifen musst du zuerst Developer mode unter Advanced einschalten)
  3. Füge die Adresse unten ein, gib ihr einen Namen und speichere
  4. Wenn eine Anmeldung verlangt wird, melde dich beim Dienst des Entwicklers an
SettingsConnectors1+ Create2https://…3
https://ratchetgate.com/mcp

Menünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • RATCHET_API_KEY geheim erforderlich env
    Ratchet API key. Create one free at https://ratchetgate.com/console
  • RATCHET_BASE_URL env
    Override to point at a self-hosted instance.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ! Vorsicht

    Entwickler passt zum Repo

    Der Herausgeber (ratchetgate.com) ist nicht der Repo-Inhaber (thearchitect0x-glitch); vielleicht hat jemand anderes ihn eingetragen

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Endpunkt antwortet

    Noch nicht geprüft; wir prüfen die Endpunkte reihum

  • … Noch nicht geprüft

    Anmeldung mit OAuth

    Noch nicht geprüft; wir prüfen die Endpunkte reihum

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 32589 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 40 % der anderen 32589 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 31 % der anderen 32589 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Ratchet sicher?

Er hat 0 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: RATCHET_API_KEY

Läuft er auf meinem Computer oder in der Cloud?

Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.3.0) kam vor 2 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Detailing Manager

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Spec Driven Development

von formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Läuft auf deinem Computer★ 440MITAktualisiert vor 14 Monaten
Installieren

Remote Desktop Commander

von desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Läuft in der Cloud★ 211Aktualisiert gestern
Installieren

Detailing Manager

von RadoslavMoshev

Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.

Läuft auf deinem ComputerAktualisiert heute
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

An effect gate for AI agents. Your agent asks before it does anything it cannot take back — charge a card, ship a deploy, publish a package, send the email — and gets a durable decision, so the same real-world action is attempted at most once across crashes and retries. Agents can also read back what a run already did, and spend against a limit they cannot raise.

Agents retry. LLM control flow is non-deterministic, network calls fail ambiguously, and processes die mid-action. The result is duplicate emails, double charges, and repeated writes — and nothing in the stack knows which. Vendor idempotency keys help for the few vendors that offer them, and never across separate agent processes or model providers.

Ratchet does not execute your actions. It holds a durable decision record in front of them.

POST /v1/effects/begin  →  decision: execute | duplicate | in_flight

| blocked | approval_required | denied

Only execute authorises the caller to act.


Project documents

ArchitectureHigh-level design — what the gate is and what it deliberately is not
Assurance caseThreat model, trust boundaries, and the argument for each security requirement — including what is *not* defended
RoadmapWhat the next year holds, and what will never be built
GovernanceWho decides, and what happens if they stop
ContributingHow to report a bug or propose a change
Security policyHow to report a vulnerability, and how fast you hear back
Code of conductWhat is expected, and who to tell
Known limitationsEverything that is not true yet, stated plainly

The part that matters

If your process dies between "go" and "done", most systems quietly let the next caller retry. Ratchet won't. The lease expires and the effect becomes `indeterminate` — a known unknown, surfaced instead of buried. What happens next is the policy you declared for that effect type:

on_indeterminateBehaviourUse for
block (default)No automatic retry. A human or verifying agent resolves it.Anything irreversible
retryA fresh attempt is granted, up to max_attempts.Vendors that are genuinely idempotent
probeCaller must verify at the vendor and record evidence first.Charges, transfers, payouts

Exactly-once delivery is not achievable in a distributed system and this project does not claim it. What Ratchet guarantees is at-most-once initiation, a recorded outcome that later callers replay, and an explicit state for the case nobody else admits exists.


Quick start

Requirements: Node 20.11+, Docker (for local Postgres).

npm install

cp .env.example .env # defaults work for local development npm run dev:db # Postgres on :5433 via Docker npm run migrate npm run dev # control plane on :8787 npm run dev:worker # lease reaper + webhook delivery (separate terminal)

Then open http://localhost:8787, or drive it from the shell:

bash examples/curl/walkthrough.sh

npm run seed populates a workspace with realistic state — a completed effect, a duplicate, an indeterminate one, and one awaiting approval — so the console has something to show.

Or with Docker Compose
AUTH_SECRET=$(openssl rand -base64 32) docker compose up --build

The core loop

# 1. Ask, before you act.

curl -X POST http://localhost:8787/v1/effects/begin \ -H "Authorization: Bearer $RATCHET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "effect_type": "email.send", "idempotency_key": "welcome:user_123", "payload": { "to": "sam@example.com" }, "estimated_cost_micros": 800 }'

→ { "decision": "execute", "effect_id": "eff_...", "lease_token": "lt_..." }

2. Do the real thing, yourself. Ratchet never touches it.

3. Say what happened.

curl -X POST http://localhost:8787/v1/effects/eff_.../report \ -H "Authorization: Bearer $RATCHET_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "lease_token": "lt_...", "outcome": "succeeded", "result": { "message_id": "msg_9f2" } }'

Any later caller with the same key now gets:

→ { "decision": "duplicate", "result": { "message_id": "msg_9f2" } }

The one rule: report failed only when you *know* the action did not reach the outside world. If you are unsure — a timeout, a dropped connection — report nothing. The lease lapses and Ratchet records an honest indeterminate. A false failed is worse than silence, because it licenses a duplicate.

Idempotency keys

Derive the key from the work, deterministically.

GoodBroken
welcome-email:user_123uuid4()
invoice:2026-08:acct_88123"send-" + Date.now()
pr:acme/api:feature-authf"job-{attempt_number}"

A key that changes on every attempt makes every retry look like new work.


When Ratchet is unreachable

Ratchet sits in your critical path, so decide this before integrating: on an outage your agent either acts without the gate (fail-open) or refuses to act (fail-closed). Use fail-closed for anything you would have to apologise for; fail-open where the vendor deduplicates anyway.

Full contract, client patterns, and the honest availability posture: docs/FAILURE_MODES.md.

Architecture

                    ┌──────────────────────────────┐

agents ──────────▶│ control plane (stateless) │ REST + MCP │ Fastify · /v1 · /mcp · web │ └──────────────┬───────────────┘ │ ┌──────────────▼───────────────┐ │ Postgres │ │ effects · policies · ledger │ │ spend windows · audit │ └──────────────▲───────────────┘ │ ┌──────────────┴───────────────┐ webhooks ◀────────│ worker (long-running) │ │ lease reaper · delivery · GC│ └──────────────────────────────┘

The control plane is stateless and scales horizontally — it may run on serverless infrastructure. The worker may not. It expires leases on a timer whether or not a request is in flight; a serverless function cannot do that. Run it as a long-running container. Multiple replicas are safe (every claim uses FOR UPDATE SKIP LOCKED).

At-most-once is enforced by a database unique constraint on (workspace_id, effect_type, idempotency_key) — not by application logic.

Full detail: docs/handoff/ARCHITECTURE.md.


Deploying

The control plane is stateless and can scale freely. The worker cannot — it expires leases on a timer whether or not a request arrives, so it must be a long-running process. That single constraint rules out purely serverless hosts (Vercel, Netlify functions) despite their being easier, and is why fly.toml runs both process groups from one image.

brew install flyctl && fly auth login   # once, needs your browser

npm run deploy:fly

The script is idempotent: it creates the app, provisions managed Postgres, generates AUTH_SECRET once (never rotating it, since that would invalidate every API key), deploys both processes, and verifies readiness. It refuses to proceed unless preflight passes:

npm run deploy:preflight

Preflight runs the full suite and production build, then checks that AUTH_SECRET is strong and not the dev default, PUBLIC_URL is set (otherwise the manifest would advertise localhost), RATE_LIMIT_OVERRIDE is unset, private-network webhooks are off, CORS carries no wildcard, and — if Stripe is selected — that both the key and the webhook secret are present. It prints no secret values.

Any container platform works; only fly.toml is Fly-specific. Set DATABASE_URL, AUTH_SECRET, PUBLIC_URL, NODE_ENV=production, then run node dist/api/server.js (scale freely) and node dist/worker/main.js (at least one, always on).

To rehearse the exact production containers locally:

AUTH_SECRET=$(openssl rand -base64 32) docker compose up --build

Commands

CommandWhat it does
npm run devControl plane with reload
npm run dev:workerWorker with reload
npm run dev:db / dev:db:downLocal Postgres in Docker
npm run migrateApply migrations (advisory-locked; safe to run concurrently)
npm run seedPopulate a workspace with realistic state
npm testTypecheck + unit + integration + e2e against a disposable database
npm run test:unit / test:integration / test:e2eOne layer
npm run typecheck / lintTypeScript in strict mode
npm run buildCompile to dist/
npm start / start:workerRun the compiled build
npm run mcp:stdioMCP server over stdio
npm run openapiWrite the OpenAPI document to disk
npm run deploy:preflightVerify the build and configuration are safe to deploy
npm run deploy:flyDeploy control plane, worker, and database to Fly.io
npm run metricsOperating metrics against the pricing-review thresholds
npm run stripe:checkReport payment configuration and verify it against Stripe
npm run stripe:listenForward Stripe events to a local instance and print a webhook secret
npm run auditProduction dependency audit

Environment

Every variable, with defaults and safety notes, is in .env.example. The two that are required:

VariableNotes
DATABASE_URLPostgres connection string
AUTH_SECRET32+ random characters. Derives the API-key pepper and console session ids. Rotating it invalidates every API key and session.

In NODE_ENV=production the process refuses to start if AUTH_SECRET is the development default or shorter than 32 characters, if CORS_ORIGINS contains *, or if WEBHOOK_ALLOW_PRIVATE_NETWORK is on.


For agents

SurfacePath
OpenAPI 3.1/openapi.json — generated from the schemas the routes validate against
Capability manifest/.well-known/agent-manifest.json — including what Ratchet *doesn't* do
Machine docs/llms.txt
MCP tool schemas/mcp/info
MCP (Streamable HTTP)POST /mcp with Authorization: Bearer

| MCP (stdio) | npx -y ratchet-mcp with RATCHET_API_KEY — see [`packa

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen