Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Mit Google anmelden, um Bewertungen zu schreiben.Prototyp · alle 30 Min. aktualisiert
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

AgentRaaS wrap

von agentraasVersion 0.16.0i★ 3 (Sterne des ganzen Repos)iLäuft auf deinem Computer
Name in der Registryio.github.agentraas/agentraas

So installierst du es

What it does

Wraps any MCP server: identical write-tool calls run once, and every tool call is audit-logged.

  • Connects Läuft auf deinem Computer
  • Account or key No key needed
  • Category Sonstiges

Installation

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

2/3 Prüfungen bestanden · Läuft auf deinem Computer · ✓ Befehle geprüft am 13. Nov. 2026

Zuerst: Welche KI nutzt du?

Wähle deine App, dann erscheinen die Schritte unten.

Klappt mit Claude, aber erst etwas vorbereiten

Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy

Von der KI installieren lassen

Kopiere diese Nachricht in einen Claude-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server AgentRaaS wrap für Claude auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "agentraas": { "command": "uvx", "args": [ "agentraas", "wrap", "--" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von AgentRaaS wrap wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. uv installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    uv --version
    • Eine Versionsnummer wie uv … = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst

    Download-Seite von uv öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version

    Einmal installieren, gilt für alles, was uv braucht

  2. Einstellungsdatei der Claude-Desktop-App öffnen

    SettingsDeveloperEdit Config

  3. Diese Einstellungen einfügen und speichern

    {
      "mcpServers": {
        "agentraas": {
          "command": "uvx",
          "args": [
            "agentraas",
            "wrap",
            "--"
          ]
        }
      }
    }
  4. Claude beenden und neu öffnen

  5. Ausprobieren

    Nutze AgentRaaS wrap und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude sagt, dass es AgentRaaS wrap nutzt, oder ein Werkzeug von AgentRaaS wrap in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

ChatGPT kann AgentRaaS wrap noch nicht verbinden

AgentRaaS wrap läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen

Das kannst du stattdessen tun

A · Eine App nutzen, die AgentRaaS wrap verbinden kann

  • Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
  • Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
  • Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Kein Ein-Klick-Button: Einstellungen einfügen und Werte selbst ausfüllen
  • Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Kein Ein-Klick-Button: Einstellungen einfügen und Werte selbst ausfüllen

B · Andere in Sonstiges, die mit ChatGPT funktionieren

Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden

Klappt mit Claude Code, aber erst etwas vorbereiten

Installiere zuerst Python (uv) auf deinem Computer (nur einmal)

Von der KI installieren lassen

Kopiere diese Nachricht in einen Claude Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server AgentRaaS wrap für Claude Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): claude mcp add --scope user agentraas -- uvx agentraas wrap -- 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von AgentRaaS wrap wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. uv installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    uv --version
    • Eine Versionsnummer wie uv … = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst

    Download-Seite von uv öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version

    Einmal installieren, gilt für alles, was uv braucht

  2. Terminal öffnen

    Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen

  3. Diesen Befehl einfügen und Enter drücken

    claude mcp add --scope user agentraas -- uvx agentraas wrap --
  4. /mcp in Claude Code eingeben

    AgentRaaS wrap sollte in der Liste als verbunden erscheinen

  5. Ausprobieren

    Nutze AgentRaaS wrap und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Claude Code sagt, dass es AgentRaaS wrap nutzt, oder ein Werkzeug von AgentRaaS wrap in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit Cursor, aber erst etwas vorbereiten

Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Kein Ein-Klick-Button: Einstellungen einfügen und Werte selbst ausfüllen

Von der KI installieren lassen

Kopiere diese Nachricht in einen Cursor-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server AgentRaaS wrap für Cursor auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "agentraas": { "command": "uvx", "args": [ "agentraas", "wrap", "--" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von AgentRaaS wrap wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. uv installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    uv --version
    • Eine Versionsnummer wie uv … = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst

    Download-Seite von uv öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version

    Einmal installieren, gilt für alles, was uv braucht

  2. MCP-Einstellungsdatei von Cursor öffnen

    ~/.cursor/mcp.json

    Diese Einstellungen einfügen, leere Werte ausfüllen und speichern

    {
      "mcpServers": {
        "agentraas": {
          "command": "uvx",
          "args": [
            "agentraas",
            "wrap",
            "--"
          ]
        }
      }
    }
  3. KI-Chat in Cursor im Agent-Modus öffnen

  4. Ausprobieren

    Nutze AgentRaaS wrap und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn Cursor sagt, dass es AgentRaaS wrap nutzt, oder ein Werkzeug von AgentRaaS wrap in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Klappt mit VS Code, aber erst etwas vorbereiten

Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Kein Ein-Klick-Button: Einstellungen einfügen und Werte selbst ausfüllen

Von der KI installieren lassen

Kopiere diese Nachricht in einen VS Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.

Installiere bitte den MCP server AgentRaaS wrap für VS Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe uv mit uv --version. Fehlt es, sag mir, dass ich es von https://docs.astral.sh/uv/getting-started/installation/ installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "servers": { "agentraas": { "type": "stdio", "command": "uvx", "args": [ "agentraas", "wrap", "--" ] } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Kein Schlüssel nötig. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von AgentRaaS wrap wirklich erscheinen.

Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.

  1. uv installieren (falls noch nicht vorhanden)

    Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter

    uv --version
    • Eine Versionsnummer wie uv … = installiert, diesen Schritt überspringen
    • "command not found" (unter Windows "is not recognized") = noch nicht installiert, oder gerade installiert und das Terminal muss neu geöffnet werden
    So öffnest du das Terminal

    Mac: ⌘ + Leertaste drücken, Terminal eingeben, Enter

    Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen

    Noch nicht installiert: uv hat keinen Klick-Installer. Kopiere den Einzeiler für dein System (macOS oder Windows) von der offiziellen uv-Seite ins Terminal · Python muss nicht extra installiert werden, uv lädt es bei Bedarf selbst

    Download-Seite von uv öffnen ↗

    Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: uv --version

    Einmal installieren, gilt für alles, was uv braucht

  2. MCP-Einstellungsdatei von VS Code öffnen

    MCP: Open User Configuration

    Diese Einstellungen einfügen, leere Werte ausfüllen und speichern

    {
      "servers": {
        "agentraas": {
          "type": "stdio",
          "command": "uvx",
          "args": [
            "agentraas",
            "wrap",
            "--"
          ]
        }
      }
    }
  3. KI-Chat in VS Code im Agent-Modus öffnen

  4. Ausprobieren

    Nutze AgentRaaS wrap und sag mir, was du für mich tun kannst; zeig mir dann eine Sache

    ✓ Wenn VS Code sagt, dass es AgentRaaS wrap nutzt, oder ein Werkzeug von AgentRaaS wrap in der Antwort zeigt, bist du verbunden

Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen

Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach

Alle Apps mit MCP ansehen →

JSON-Einstellungen stehen unten unter „Für Entwickler“

Hängst du fest? Frag Leute, die AgentRaaS wrap nutzen💬 Diskussion →
Für Entwickler: Terminal-Befehle und JSON-Einstellungen

Auf deinem Computer installiert

Claude Code

claude mcp add --scope user agentraas -- uvx agentraas wrap --

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "agentraas": {
      "command": "uvx",
      "args": [
        "agentraas",
        "wrap",
        "--"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "agentraas": {
      "command": "uvx",
      "args": [
        "agentraas",
        "wrap",
        "--"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "agentraas": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "agentraas",
        "wrap",
        "--"
      ]
    }
  }
}

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

Auf einen Blick

GitHub-Sternei
3 (Sterne des ganzen Repos)
Dieses Repo enthält mehrere MCP-Einträge; die Sterne zählen in Ranglisten nur einmal
Downloads pro Wochei
233/Wo.
Lizenzi
Keine Lizenz angegeben
Verbindung
Läuft auf deinem Computer
Neueste Versioni
0.16.0
Kategoriei
Sonstiges
In der Registry veröffentlichti
31. Okt. 2026
Code zuletzt geänderti
31. Okt. 2026
Entwickler
agentraas
Pakete
pypi: agentraas
Registry-Status
Aktiv

Welche Apps ihn nutzen können

Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.

Laufen auf deinem Computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Alle Apps, mit Vor- und Nachteilen →

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

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 15. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto agentraas bestätigt, dem das Repo gehört

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: vor 15 Tagen

  • ! Vorsicht

    Hat eine Lizenz

    GitHub konnte die Lizenzart nicht erkennen; öffne die Datei, um nachzusehen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Veröffentlichte Schwachstellen (OSV.dev)

Noch nicht geprüft

Was wir prüfen → · JSON

Entwickler: neue Prüfung anfordern oder falsche Angaben melden

Diskussion

Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.

Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.

Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.

Anmelden, um zu posten

Nutzerbewertungen

Noch keine Bewertungen

Anmelden, um eine Bewertung zu schreiben

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 19900 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 74 % der anderen 19900 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 45 % der anderen 19900 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 AgentRaaS wrap sicher?

Er hat 2 von 3 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?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

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

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt vor 15 Tagen geändert, und die neueste Version (0.16.0) kam vor 15 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: World Monitor, openstatus, Oh My Posh Validator, Strata, Jitsu

Ähnliche Alternativen

Gleiche Kategorie, andere Entwickler, Befehle bereits geprüft. Offizielle zuerst, dann nach Sternen.

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

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 97 tools.

von koala73Weit verbreitet★ 90.661Aktualisiert gestern

Läuft in der Cloud✓ vom Dienst · worldmonitor.app

openstatus

Manage monitors, status pages, incidents and maintenances in your openstatus workspace.

von openstatusHQWeit verbreitet★ 9265Aktualisiert vor 2 Monaten

Läuft in der Cloud✓ vom Dienst · openstatus.dev

Oh My Posh Validator

Validate oh-my-posh configurations and segment snippets against the official schema.

von JanDeDobbeleerWeit verbreitet★ 23.757 Sterne des ganzen ReposAktualisiert vor 26 Tagen

Läuft in der Cloud✓ vom Dienst · ohmyposh.dev

Strata

MCP server for progressive tool usage at any scale (see https://klavis.ai)

von Klavis-AIWachsend★ 5827Aktualisiert vor 14 Monaten

Läuft in der CloudRepo archiviert✓ klavis.ai

Jitsu

Manage Jitsu data pipelines: destinations, streams, connections, functions, live events.

von jitsucomWeit verbreitet★ 5135Aktualisiert vor 4 Monaten

Läuft in der Cloud✓ vom Dienst · jitsu.com
  • World Monitor — Läuft in der Cloud, keine Installation · Kein Schlüssel nötig
  • openstatus — Läuft in der Cloud, keine Installation · Kein Schlüssel nötig
  • Oh My Posh Validator — Läuft in der Cloud, keine Installation · Kein Schlüssel nötig
  • Strata — Läuft in der Cloud, keine Installation · Kein Schlüssel nötig
  • Jitsu — Läuft in der Cloud, keine Installation · Kein Schlüssel nötig

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.

agentraas (Python SDK)

The reliability layer for what AI agents do. Every action your agent takes (a charge, an email, a CRM update, a tool call) runs once even when it is retried, can be checked against rules before it runs, and is recorded. This package brings that to your code:

  • @exactly_once and protect_tool (LangChain/LangGraph, CrewAI): a retry, yours, your framework's or a flaky network's, never becomes a duplicate charge or message. No server needed.
  • agentraas wrap: the same for any MCP server's write tools.
  • agentraas scan: lists which tools in your MCP servers can move money, delete data, run code or send messages, without calling any of them.
  • agentraas chaos: finds the calls in your agent that would double up under retries, before production does.
  • Client: points your calls at an AgentRaaS server for action policies, human approval, spend caps, circuit breaking and an audit trail.

Works against any AgentRaaS deployment: self-hosted (./install.sh, free and unlimited on every tier) or AgentRaaS Cloud.

Install

pip install agentraas

Library mode: no server needed

Wrap any function that has a side effect (charging a card, sending an email, creating a CRM record) so retries and concurrent duplicates run it exactly once. Nothing to deploy: state lives in a local SQLite file by default, or in your own Redis.

from agentraas.local import exactly_once, RedisStore

@exactly_once() # SQLite file, one machine def charge(customer, amount): return stripe.Charge.create(customer=customer, amount=amount).id

charge("cus_1", 4200) # runs for real charge("cus_1", 4200) # retry: returns the cached id, no second charge

Across machines, with your own idempotency key and window:

@exactly_once(store=RedisStore("redis://localhost:6379/0"), key=lambda order: order["id"], ttl=3600) async def ship(order): ...

  • If the function raises, nothing is cached and a retry runs it again. That includes the case where the provider did the work but the response was lost, so give the function an idempotency_key parameter and send it to the provider (e.g. Stripe's Idempotency-Key header). The decorator fills it with the same value on every retry:
  @exactly_once()

def charge(customer, amount, idempotency_key=None): return stripe.Charge.create(customer=customer, amount=amount, idempotency_key=idempotency_key).id

- A duplicate that arrives while the first call is still running waits for

its result (up to wait=30 seconds, then InFlightError).

  • Results must be JSON-serializable (return ids or dicts, not SDK objects).
  • RedisStore needs pip install redis.

When you want a dashboard, audit trail, human approval or circuit breaking on top, point the same calls at an AgentRaaS server with the Client below.

LangChain / LangGraph: exactly-once tool calls

pip install "agentraas[langchain]", then wrap the tools that have side effects. Works with LangChain agents, create_react_agent and ToolNode.

from agentraas.langchain import protect_tool

tools = [protect_tool(charge_card), protect_tool(send_email), search] agent = create_react_agent(model, tools)

When the model calls a protected tool again with the same arguments, or the graph re-runs the tool node after a crash or retry, the stored result comes back instead of a second charge. Takes the same store=, key= and ttl= options as @exactly_once above (e.g. store=RedisStore(...) for several workers, key=lambda order_id, **_: order_id). Tool results must be JSON-serializable.

CrewAI: exactly-once tool calls

pip install "agentraas[crewai]" (CrewAI needs Python 3.10+), then wrap the tools that have side effects, either BaseTool subclasses or @tool functions:

from agentraas.crewai import protect_tool

agent = Agent(role="Billing", goal="...", backstory="...", tools=[protect_tool(ChargeCardTool()), protect_tool(send_email)])

When the agent calls a protected tool again with the same arguments, or a crew is kicked off again after a crash, the stored result comes back instead of a second charge. Same store=, key= and ttl= options as above. The original tool object is left unchanged.

MCP wrap: exactly-once tool calls for any MCP server

Put agentraas wrap -- in front of an MCP server's command. Everything passes through unchanged, except that an identical call to a write tool (same tool, same arguments) inside the dedup window gets the first call's result back instead of running again. An agent that retries or loops can't send the same email or open the same issue twice. Every tool call is appended to an audit log.

Claude Desktop / Cursor config:

{

"mcpServers": { "github": { "command": "uvx", "args": ["agentraas", "wrap", "--", "npx", "-y", "@modelcontextprotocol/server-github"] } } }

  • Read-only tools are never deduplicated, so lookups stay fresh. The server's readOnlyHint annotation decides, falling back to names like get_*, list_*, search_*. Override with --dedupe TOOL / --no-dedupe TOOL.
  • A failed call (JSON-RPC error or isError: true) is not cached, so a retry runs for real.
  • Default window: 10 minutes (--ttl 600). State lives in ~/.agentraas/mcp-dedup.db, the log in ~/.agentraas/mcp-audit.jsonl (--db, --log).
  • A deduplicated result carries _meta: {"agentraas/deduplicated": true}.

MCP safety scan: which tools can act on the real world

agentraas scan                                    # every server in your Claude Desktop, Cursor, Claude Code configs

agentraas scan -- npx -y @modelcontextprotocol/server-github agentraas scan --config .mcp.json --fail-on high # CI: exit 1 on a high-risk tool

Starts each stdio server the way your client does, sends only initialize and tools/list, and sorts the tools: moves money, deletes, runs code, sends (high), writes (medium), reads (low), from their readOnlyHint/destructiveHint annotations and the words in their names. Only scan configs you trust: it runs their commands. --json for machine-readable output. https://agentraas.io/mcp-scan

GitHub Actions:

- uses: agentraas/agentraas/src/scan-action@main

with: config: .mcp.json # or command: "npx -y @modelcontextprotocol/server-github"; fail-on: high | medium | none

Chaos tester: find the calls your agent would run twice

agentraas-chaos sits between your code and an API. The first time each distinct write request (POST/PUT/PATCH/DELETE) arrives, it lets the request execute and then drops the response, the network failure that turns a retry into a double charge. Then it reports every action that executed more than once.

pip install agentraas

Safe: a built-in mock answers every call, nothing real is touched

agentraas-chaos --mock -- python my_agent.py

Against a real API: use TEST-mode keys

agentraas-chaos --upstream https://api.stripe.com -- pytest

Your command gets AGENTRAAS_CHAOS_URL (e.g. http://127.0.0.1:8787); use it as the API base URL. Without a command it runs until Ctrl-C, so you can point an n8n workflow or any other tool at it by hand.

agentraas-chaos: 6 write requests, 3 responses dropped after execution

DUPLICATES: 1 action(s) executed more than once

2x POST /v1/charges (body sha256 623f14d1b00d) ... Protected by an idempotency key: 2 retries

It exits with code 1 when it finds a duplicate, so it can fail CI. --fault error-after-commit returns a 502 instead of dropping the connection. A retry that repeats an Idempotency-Key it has already seen is counted as protected, not executed again.

In GitHub Actions:

- uses: actions/setup-python@v5

with: { python-version: "3.12" }

  • uses: agentraas/agentraas/src/chaos-action@main with: run: python my_agent.py

Keep rules in Git: agentraas apply

Describe a server's dedup rules, validation rules, action policies and spend caps in YAML, review them like code, and apply them from CI:

pip install "agentraas[apply]"
# agentraas.yaml

apiVersion: agentraas.io/v1alpha1 kind: DedupRule metadata: {name: charge-once, org: org_acme} spec: {service: stripe, action: charges.create, fields: [customer, amount], ttlSeconds: 300}


apiVersion: agentraas.io/v1alpha1 kind: SpendCap metadata: {org: org_acme} spec: {service: stripe, action: refunds.create, window: day, maxCalls: 100, onExceed: block}

export AGENTRAAS_URL=https://agentraas.example.com AGENTRAAS_EMAIL=ci@acme.com AGENTRAAS_PASSWORD=...

agentraas apply -f agentraas.yaml --dry-run # print the plan agentraas apply -f agentraas.yaml # create what's missing, replace what changed agentraas apply -f agentraas.yaml --prune # also delete rules the file doesn't list

Kinds: DedupRule, ValidationRule, ActionPolicy, SpendCap. Spec keys are the API's fields in camelCase. Running it twice changes nothing.

Local tunnel: test webhooks against your laptop

agentraas tunnel prints a public URL and replays every request sent to it against a local port, so you can point Stripe, GitHub or n8n webhooks at code you haven't deployed. Needs a free AgentRaaS account (an agent API key).

pip install "agentraas[tunnel]"

agentraas tunnel --port 3000 --org org_acme --agent agent_1 --key ar_live_...

One tunnel per org, 2-hour sessions, 30-second local response timeout.

Send one action from the shell: agentraas call

Every command also runs under the short name agtrs. call sends one action through an AgentRaaS server and prints the answer as JSON: the same dedup, policies, approvals and audit as the Client. Handy for scripts and for checking a rule by hand.

export AGENTRAAS_KEY=ar_live_... AGENTRAAS_ORG=org_acme AGENTRAAS_AGENT=agent_1

export AGENTRAAS_URL=https://agentraas.io # default http://localhost:13000 agtrs call stripe charge.create '{"amount": 4999, "currency": "usd"}' echo '{"text": "hi"}' | agtrs call slack message.post -

--key, --org, --agent, --url and --idempotency-key override the environment. A rejected call prints the error and its hints and exits 1.

Approve held calls from the shell

The same list as the dashboard's Waiting for approval, for any org you can write to. Logs in like apply (AGENTRAAS_EMAIL / AGENTRAAS_PASSWORD against AGENTRAAS_URL, default https://agentraas.io).

agtrs approvals                  # req id, service, action, agent, payload

agtrs approve req_abc123 # runs the call; asks first (--yes to skip) agtrs deny req_abc123

approve exits 1 if the call ran and failed (it is then in Failed requests). Without a terminal it refuses unless --yes is passed, so a script never approves by accident.

Read the audit log from the shell

Every call in the orgs you belong to, newest first, with the same login as approvals:

agtrs audit                      # last 50: time, status, service action, agent, org, duration, req id, error

agtrs audit -n 200 --json # adds run/step ids, dedup hash, redacted payload preview (max 1,000) agtrs audit --csv > audit.csv # the dashboard's CSV export (newest 10,000)

Failed calls from the shell

Calls that failed and were kept (the dashboard's Failed requests), with the same login as approvals:

agtrs dlq                        # id, time, service action, agent, org, req id, error

agtrs dlq replay 42 # sends the call again with the same idempotency key; asks first (--yes to skip) agtrs dlq dismiss 42 # drop it without sending

replay exits 1 if the service fails again; the entry stays in the list.

Move dashboard rules into Git

agtrs rules prints the rules alr

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