Skip to main content
Glama

⚡ Omni-Tester: MCP-Testagent ohne Halluzinationen

Omni-Tester ist ein Model Context Protocol (MCP)-Server, der KI-Agenten (Claude, Cursor, Windsurf und andere) mit einer beweisbasierten Anti-Halluzinations-Validierungsengine ausstattet. Lassen Sie Ihr LLM nicht länger „raten", ob ein Endpunkt funktioniert — verlangen Sie programmatischen Beweis.

Der Agent kommuniziert direkt mit Backend-Servern, prüft HTTP-Statuscodes, Antwort-Header und JSON-Payloads und erzeugt so deterministische, maschinell verifizierte Ergebnisse.


✅ Aktuell implementiert (deterministischer Beweis)

Diese Ebenen laufen heute und liefern maschinell verifizierte Belege — ohne LLM-Bewertung:

  • Layer 1 — Protokoll- & Statusverifizierung: Sendet die Anfrage und verifiziert, dass der zurückgegebene HTTP-Statuscode Ihrer expliziten Erwartung entspricht (z. B. 200 OK, 201 Created); meldet Abweichungen und 5xx-Abstürze.

  • Layer 2 — Schema- & Payload-Integrität: Prüft den Content-Type-Header auf application/json, parst den Body als JSON und gibt eine Payload-Momentaufnahme zurück. Wenn Sie ein optionales expected_schema übergeben, erzwingt er außerdem das Vorhandensein und den Typ jedes Felds deterministisch — auf oberster Ebene ("id"), über Punktpfade verschachtelt ("address.geo.lat") und Listenindizes ("items.0.id"). Unterstützte Typen: int, float/number, str/string, bool, list/array, dict/object, null. (JSON true/false wird nicht als int akzeptiert.)

Beide Ebenen laufen immer — ein Statuscode-Fehler unterdrückt die Payload-Diagnose nicht, sodass Sie den Fehler-Body einer fehlgeschlagenen 4xx/5xx-Antwort weiterhin sehen.

Beispiel mit Schema-Erzwingung:

run_api_4_layer_validation(
    endpoint_url="https://jsonplaceholder.typicode.com/users/1",
    expected_status=200,
    method="GET",
    expected_schema={"id": "int", "email": "str", "address.geo.lat": "str"},
)

Es gibt außerdem ein experimentelles run_ui_dom_checklist-Tool (Playwright), das eine Seite in einem Headless-Browser lädt und Formularanzahlen, Bilder ohne alt-Attribute sowie Konsolenfehler meldet.


Related MCP server: agentseed

🗺️ Roadmap (noch nicht implementiert)

Die folgenden Punkte sind geplant, aber derzeit nicht im Code enthalten. Sie werden hier aus Transparenzgründen dokumentiert, nicht als verfügbare Funktionen:

  • Layer 3 — Funktionale Geschäftslogik: Einsatz des LLM, um zu prüfen, ob die zurückgegebenen Daten logisch zum Szenario passen. (Hinweis: Diese Ebene basiert auf LLM-Bewertung, nicht auf deterministischem Beweis.)

  • Layer 4 — Sicherheits- & Grenzwert-Stresstests: Injizieren bösartiger Payloads (SQL-Injection-Strings, fehlerhafte Header, abgelaufene Auth-Tokens), um zu verifizieren, dass die API sicher ausfällt.

  • Tiefergehender Layer 2 (verschachtelte Typprüfungen): ✅ Erledigt — oberste Ebene, verschachtelte Punktepfade und Listenindizes werden alle erzwungen. Verbleibende Ideen: Validierung pro Element über ein gesamtes Array (z. B. „jedes Element hat eine int-ID") sowie Enum-/Format-Einschränkungen.

  • Souveräner API-Agent: Ein autonomer Testingenieur, der Szenarien plant, Python-Testcode generiert und sich selbst repariert, wenn sich Schemas ändern.

  • API-Explorer-Agent: Fuzzt und verkettet Aktionen dynamisch (z. B. einen Token aus einem GET ziehen und in einen PUT injizieren).

  • Audit-Trails: Strukturierte Ausgabe in specs/api_plan.md, tests/api/ und data/reports/api_report_*.html.


📦 Installation

Mit uv (empfohlen):

uv venv
source .venv/bin/activate        # On Windows: .venv\Scripts\activate
uv sync                          # Install dependencies from pyproject.toml

Für das UI-Checklisten-Tool installieren Sie den Playwright-Browser einmalig:

uv run playwright install chromium

Überprüfen Sie, dass der Server startet (er spricht MCP über stdio und wartet auf einen Client):

uv run omni-tester

🔌 Mit MCP-Clients verbinden

Der Server wird mit uv run omni-tester gestartet. Fügen Sie ihn unten zu dem Client Ihrer Wahl hinzu. Falls sich uv nicht im PATH Ihres Clients befindet, verwenden Sie im Feld command den absoluten Pfad zur uv-Binärdatei.

Claude Code (CLI)

Fügen Sie ihn mit einem Befehl hinzu:

claude mcp add --transport stdio omni-tester -- uv run omni-tester

Oder fügen Sie ihn manuell zu einer projektspezifischen .mcp.json hinzu:

{
  "mcpServers": {
    "omni-tester": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "omni-tester"],
      "env": {}
    }
  }
}

Claude Desktop

Bearbeiten Sie claude_desktop_config.json (Settings → Developer → Edit Config):

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "omni-tester": {
      "command": "uv",
      "args": ["run", "omni-tester"],
      "env": {}
    }
  }
}

Starten Sie Claude Desktop nach dem Speichern neu.

Cursor

Bearbeiten Sie .cursor/mcp.json (projektspezifisch) oder ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "omni-tester": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "omni-tester"],
      "env": {}
    }
  }
}

Windsurf (Cascade)

Bearbeiten Sie mcp_config.json (Settings → Manage MCP Servers → View raw config):

  • macOS/Linux: ~/.codeium/windsurf/mcp_config.json

  • Windows: %APPDATA%\Codeium\Windsurf\mcp_config.json

{
  "mcpServers": {
    "omni-tester": {
      "command": "uv",
      "args": ["run", "omni-tester"],
      "env": {}
    }
  }
}

Starten Sie Windsurf nach dem Speichern neu.


🛠️ Tools

Tool

Status

Zweck

run_api_4_layer_validation

✅ Layer 1–2

Verifiziert HTTP-Status, Content-Type, JSON-Gültigkeit und optional Typ/Schema pro Feld (verschachtelt + Listenpfade)

run_ui_dom_checklist

🧪 Experimentell

Playwright-DOM-Checkliste (Formulare, alt-Attribute, Konsolenfehler)

Hinweis zur Namensgebung: Das Tool heißt aus Gründen der Vorwärtskompatibilität run_api_4_layer_validation, aber heute sind nur Layer 1–2 implementiert (siehe Roadmap).


🧪 Beispiel

Validierung eines Live-Endpunkts mit erwartetem 200:

run_api_4_layer_validation(
    endpoint_url="https://jsonplaceholder.typicode.com/users/1",
    expected_status=200,
    method="GET",
)

Erzeugt:

Backend 4-Layer Validation Complete:
✅ Layer 1 PASS: Expected 200, received 200.
✅ Layer 2 PASS: Valid JSON payload returned.
Payload Snapshot: {'id': 1, 'name': 'Leanne Graham', ...}

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables coding agents to independently verify web changes by scanning pages, inspecting UI structure, generating Playwright reproductions, and executing tests with structured QA evidence.
    4
    130 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding agents to enforce spec-driven development and verify code before it is marked done, using six tools that catch invented APIs, scan for hallucinated content, check plugin conformance, sandbox-run tests, validate schemas, and record audit evidence.
    771 npm
    8
    PolyForm Noncommercial 1.0.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to verify application changes by running browser workflows, executing independent state assertions, and producing replayable evidence.
    0
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables deterministic verification of AI agent decisions and actions, providing PASS/FAIL/ABSTAIN verdicts with replayable proofs and an optional signed receipt ledger.
    25 npm
    Apache 2.0