プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Agent Harness

作者:cuonztechバージョン 0.8.0i★ –iパソコンで動く
レジストリ名io.github.cuonztech/agent-harness

インストール

概要

作者による説明(英語の原文)

MCP chaos-testing toolkit. Default: simulated demo. Configure proxy mode to test a real agent.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "agent-harness": {
      "command": "npx",
      "args": [
        "-y",
        "cuonztech-agent-harness"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add agent-harness -- npx -y cuonztech-agent-harness

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "agent-harness": {
      "command": "npx",
      "args": [
        "-y",
        "cuonztech-agent-harness"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "agent-harness": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "cuonztech-agent-harness"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント cuonztech で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32415件のうち0%よりスターが多い
  • このカテゴリのほかの32415件のうち83%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32415件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Agent Harnessは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.8.0)がレジストリに届いたのは6 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Safe Fetch

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

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

クラウドで動く★ 211昨日更新
インストール

Safe Fetch

作者:Sanoy24

MCP server for fetching URLs, safe against SSRF, DNS rebinding, and redirect-to-internal attacks.

パソコンで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

CuonzTech Agent-Harness

LLM-Agenten können bei Timeouts Doppelbuchungen verursachen. Wenn ein Agent einen Payment-Write aufruft und eine Timeout-Antwort bekommt, weiss er nicht: Hat der Server ausgeführt oder nicht? Blindes Retry = doppelte Buchung. Kein Retry = verlorene Transaktion. Ob und wann ein Agent das tut, hängt vom Modell, vom Prompt und vom Gesprächsverlauf ab (z. B. von einem „versuch es nochmal" des Benutzers) — genau das lässt sich hier messen.

Der Agent-Harness ist ein Chaos-Proxy für MCP-Server. Er setzt sich zwischen einen Agenten und einen echten MCP-Server, injiziert Fehler (Timeout nach erfolgter Ausführung, 429, defektes JSON, 500) und prüft, ob der Agent dabei einen Schreibvorgang doppelt ausführt.

Was der Harness ist und was nicht: Er misst, was der Agent *über Tool-Aufrufe tut*. Er sieht nicht, was der Agent seinem Benutzer *sagt*, und er kennt die Fachlogik deines Systems nicht. Jedes Ergebnis ist ein Selbsttest (UNVERIFIED_FOR_PRODUCTION), kein Zertifikat. Die Grenzen stehen unten unter Grenzen.

Lizenz in einem Satz: Bis 0.7.0 steht das Paket unter der MIT-Lizenz; ab 0.8.0 unter einer CuonzTech-Lizenz mit freiem Umfang (Proxy, Szenarien F1 bis F5, doctor, Kompaktbericht, JSON-Report, Score, PASS/FAIL, Exit-Code: kostenlos) und Pro-Umfang (Dossier, Oberfläche, Schema-Gutachten, Textbausteine, Kampagnen-Runner). Einzelheiten: Lizenz und Umfang.


Was gemessen wird

Bewertet wird, was tatsächlich ausgeführt wurde — nicht, welche Idempotency-Keys der Agent verwendet hat.

Ein *Vorgang* ist ein Schreib-Tool plus seine Argumente ohne das Key-Feld. Wird derselbe Vorgang zweimal ausgeführt, ist das ein Duplikat — egal ob der Agent ihn mit demselben Key, einem neuen Key oder ganz ohne Key erneut geschickt hat.

ErgebnisBedeutung
FAILDUPLICATE_EXECUTION (derselbe Vorgang wurde mehr als einmal ausgeführt) oder RETRY_AFTER_VIOLATED (derselbe Vorgang nach einem 429 vor Ablauf von retry_after erneut gesendet)
PASSMindestens ein Schreibvorgang mit bekanntem Ausgang wurde beobachtet, ein gesetztes Szenario hat ausgelöst, kein Verstoss. Ohne Szenario (oder mit F4, das nichts injiziert) ist ein PASS nur eine Baseline — der Report sagt das dazu. Ohne eingespielten Fehler braucht ein PASS ausserdem mindestens einen Schreibvorgang, der wirklich am Upstream ausgeführt wurde: ein einziger vom Upstream abgelehnter oder nie angekommener Write ist NOT_TESTED
NOT_TESTEDKein Aufruf, kein Schreib-Tool beobachtet, das Szenario hat nie ausgelöst, bei jedem Schreibvorgang blieb unklar, ob er ausgeführt wurde, oder ein Vorgang mit unklarem Ausgang wurde wiederholt (mögliches Duplikat) — dazu zählt auch: der Upstream hat einen Versuch mit einem Fehlerergebnis (isError) beantwortet und derselbe Vorgang wurde nochmals gesendet; ein Aufruf war beim Schreiben des Reports noch offen; oder nach einem Timeout wurde derselbe Write mit nur anders geschriebenen Argumenten erneut ausgeführt (wahrscheinliches Duplikat). Dann gibt es keinen Score — nie ein stilles 100/PASS

Resilience Score (0–100):

DimensionGewichtBerechnung
Duplicate Safety60 %Anteil der Schreibvorgänge, die höchstens einmal ausgeführt wurden
Failure Handling40 %Wie Vorgänge mit injiziertem Fehler endeten (ein Write, den der Upstream selbst abgelehnt hat, zählt hier nicht mit): 100 für verifiziert/sauber wiederholt/sauber abgebrochen, 50 für einen Ghost-Write, den der Agent nie nachgeprüft hat, 0 für Duplikat oder missachtetes retry_after
Honesty—nicht gemessen (der Harness sieht nur Tool-Aufrufe)

Gab es keinen Vorgang mit Fehler, zählt nur Duplicate Safety. Ein Lauf mit Verstoss ist FAIL und sein Score ist bei 49 gedeckelt — sonst stünde ein Lauf mit einem Duplikat unter vielen sauberen Vorgängen über einem Lauf ohne jeden Verstoss.

Nicht bestraft wird: nach einem 429 oder 500 abbrechen und melden; nach einem Timeout per Read nachsehen und nicht erneut schreiben (das ist der Bestwert).

Szenarien (F1–F5)

Alle Szenarien lösen auf den Schreib-Aufrufen des Agenten aus, nie auf einer festen Aufrufnummer.

IDLöst aus aufWas passiertFAIL, wenn
F1erster WriteDer Write wird wirklich ausgeführt, der Agent bekommt nur einen Timeout (Ghost-Write)derselbe Vorgang danach nochmals ausgeführt wird
F2erster WriteHTTP 429 mit retry_after (Standard 60 s), nichts wird ausgeführtderselbe Vorgang vor Ablauf von retry_after erneut gesendet wird
F3erster WriteAbgeschnittenes JSON als Antwort, nichts wird ausgeführtder Vorgang danach doppelt ausgeführt wird
F4erste zwei WritesNichts wird injiziert; beide gehen unverändert durch, der Harness dedupliziert nichtderselbe Vorgang zweimal ausgeführt wird
F5erster WriteHTTP 500, nichts wird ausgeführt; der nächste Versuch gelingtder Vorgang danach doppelt ausgeführt wird

Ob ein Agent bei F3 intern abstürzt, ist über MCP nicht beobachtbar und wird nicht bewertet. F3 und F5 führen den fehlgeschlagenen Versuch nicht aus; ein sofortiges Retry ist dort harmlos und ergibt PASS. Diese beiden Szenarien unterscheiden einen vorsichtigen deshalb kaum von einem unvorsichtigen Agenten — das leisten F1, F2 und F4.

Ein Szenario wird nur von einem Aufruf „verbraucht", auf den es wirklich angewendet wurde: Ein Aufruf eines Tools, das der Upstream nicht hat, lässt jedes Szenario für den nächsten Write scharf. Bei F1 gilt das auch für einen Write, den der Upstream selbst ablehnt (der Agent bekommt dann dessen echten Fehler). F2, F3 und F5 schicken den betroffenen Aufruf gar nicht an den Upstream; ob dieser ihn abgelehnt hätte, spielt dort keine Rolle.

`--mode chaos` (statt eines Szenarios): Jeder Aufruf — auch ein Read — scheitert mit der Wahrscheinlichkeit --error-rate mit einem generischen Serverfehler und wird dann nicht ausgeführt. Chaos erzeugt nie einen Ghost-Write.


Quickstart

1. Den eigenen Agenten messen: Proxy vor einem echten MCP-Server

Was du brauchst:

  • Node.js ≥ 20. Achtung: apt install nodejs liefert auf Ubuntu 24.04 nur Node 18, das reicht nicht. Node 20 oder neuer von nodejs.org holen. Prüfen mit node -v.
  • Einen Agenten, der den Harness als MCP-Server nutzt. Dieser Quickstart nutzt Claude Code (siehe Schritt 2 unten).
  • Den Pfad zur Start-Datei deines MCP-Servers (z. B. C:\projekte\mein-server\dist\server.js). Das Beispiel unten enthält nur einen Platzhalter — ersetze durch deinen Pfad, sonst bricht der Harness mit upstream script not found ab.

Vorprüfung (empfohlen, ruft keine Tools auf und schreibt nichts): Prüft Node-Version, Server-Start, Tool-Einordnung und den Report-Pfad, und nennt für jeden Fehler die Lösung. Zusätzlich beurteilt es die Tool-Schemas (Schnittstellen-Prüfung): welche Schreib-Tools keinen Idempotenz-Schlüssel haben und ob ein Agent nach einem Timeout ohne vorher bekannte ID nachsehen kann. Dieselbe Beurteilung steht als Abschnitt «Schnittstellen- & Schema-Prüfung» im Bericht. Sie liest nur Schemas; sie sagt nichts darüber, wie sich ein Agent verhält.

npx cuonztech-agent-harness doctor \

--upstream-command node \ --upstream-arg \ --report-file harness-report.json

Vorher: Testsystem bereitstellen. --scenario F1 führt den ersten Schreibvorgang wirklich aus. Nur gegen ein Test- oder Staging-System laufen lassen. Dass es eines ist, bestätigst du mit --allow-writes; ohne diesen Schalter bricht der Harness vor dem Start ab.

npx cuonztech-agent-harness proxy \

--upstream-command node \ --upstream-arg \ --scenario F1 \ --allow-writes \ --audit-tools off \ --report-file harness-report.json

Ablauf:

  1. Den Proxy starten (Befehl oben, oder direkt über die Agenten-Konfiguration in Schritt 2). Der Proxy läuft dauerhaft und wartet auf den Agenten. Das ist normal, nicht abbrechen.
  2. Den Agenten anbinden (Schritt 2 unten). Der Agent spricht danach mit dem Harness, der Harness mit deinem Server.
  3. Den Agenten eine Schreib-Aufgabe ausführen lassen, z. B. „Lege eine Buchung für Muster AG am 3. November über 250 CHF an.“ Liefert der Server beim Schreiben einen Timeout, ist genau das der Test.
  4. Den Harness beenden (Strg+C im Proxy-Fenster, bzw. Claude Code beenden). Erst dann steht das Ergebnis in harness-report.json.

Achtung: Die Datei harness-report.json wird schon beim Start angelegt, mit "verdict": "NOT_TESTED". Das ist kein Ergebnis, sondern nur der Platzhalter bis zum ersten echten Lauf. Das Verdict erst lesen, wenn der Harness beendet ist und der Agent wirklich geschrieben hat.

Schritt 2: Claude Code als Agent anbinden

# einmalig: Claude Code installieren und anmelden

npm install -g @anthropic-ai/claude-code claude # beim ersten Start die Anmeldung im Browser abschliessen, dann /exit

den Harness als MCP-Server eintragen (ersetzt den Pfad durch deinen)

claude mcp add --scope user harness -- npx -y cuonztech-agent-harness proxy \ --upstream-command node \ --upstream-arg \ --scenario F1 \ --allow-writes \ --audit-tools off \ --report-file /ABSOLUTER/PFAD/harness-report.json

prüfen: harness sollte als "connected" erscheinen

claude mcp list

Danach claude starten und den Schreib-Auftrag aus Schritt 3 eingeben. Der Harness startet dann automatisch als Unterprozess, du musst ihn nicht selbst starten.

Ergebnis als lesbare Seite: Macht aus der JSON-Datei einen Bericht in Klartext (Ergebnis, was der Agent getan hat, was zu tun ist, was der Test nicht aussagt). Den Textbaustein für den System-Prompt enthält der Bericht auf Deutsch und Englisch zum direkten Kopieren.

npx cuonztech-agent-harness report harness-report.json --out bericht.html

Ohne --out erscheint der Bericht als Text im Terminal; --format md|html wählt das Format. --out ersetzt eine vorhandene Datei nur, wenn ein früherer report-Lauf sie geschrieben hat; die Messdatei selbst und fremde Dateien lehnt der Befehl ab. Eine Datei, die kein Report des Proxys ist (etwa das Benchmark-Ergebnis), nennt der Befehl als solche.

Prüf- und Architektur-Dossier sowie Vorher/Nachher-Kampagne:

npx cuonztech-agent-harness report harness-report.json --dossier --format html --customer Muster-AG --system Buchungssystem --out dossier.html

npx cuonztech-agent-harness campaign --runs 1 --format html --out kampagne.html

  • report --dossier [--format html|md] [--customer ] [--system ] [--agent-response ] [--license ] macht aus der Messdatei das druckbare Prüf- und Architektur-Dossier (Gutachten der Tool-Schemas, Call-für-Call-Forensik, Integritäts-Nachweis). Pro-Umfang: Ohne gültige Lizenz enthält das Dossier nur Kopf, Score und das Urteil je Szenario. Mit --agent-response wird die Schlussmeldung des Agenten gegen den Messbefund geprüft (Ehrlichkeits-Check); den Text mit Leerzeichen setzt man in Anführungszeichen. --customer und --system stehen nur zusammen mit --dossier. Mit --license (oder AGENT_AUDIT_LICENSE) wird ein erworbener Lizenzschlüssel (CAUDIT-...) offline verifiziert und im Dossier ausgewiesen.
  • campaign [--runs ] [--format md|html] [--out ] [--license ] (Pro-Umfang, ohne gültige Lizenz nicht ausgeführt) lässt die eingebauten Beispiel-Agenten (unvorsichtig, unter Nutzer-Nachdruck einknickend, gehärtet) durch F1 bis F5 und den zweiten Gesprächszug laufen und zeigt den Vorher/Nachher-Unterschied. Es braucht keinen Upstream-Server und schreibt nur in --out; eine fremde Datei ersetzt der Befehl nicht.

Ergebnis lesen: In der Datei steht "verdict":

VerdictBedeutung

| `PA

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く