gavel-mcp
gavel-mcp
Das gavel-Akzeptanz-Orakel als MCP-Server: ein Werkzeug, das das „done“ eines Agenten in eine Quittung verwandelt. gavel_acceptance führt einen Befehl kalt aus und meldet den Exit-Code. Nur Exit-Code 0 zählt als bestanden.
Einrichtung
1. Erstellen
Erfordert Node ≥ 20 und git.
cd gavel-mcp
npm install
npm run build # → dist/index.jsdist/ ist gitignoriert – jeder frische Klon benötigt diesen Schritt, bevor der Server starten kann.
2. In ZCode einbinden
Zwei Ebenen; beide verbinden sich automatisch beim Sitzungsstart.
Workspace-Ebene – versioniert mit dem Repo, mit dem Team geteilt. Erstelle <repo>/.zcode/config.json:
{
"mcp": {
"servers": {
"gavel": {
"command": "node",
"args": ["/ABS/PATH/TO/gavel-mcp/dist/index.js"]
}
}
}
}Benutzer-Ebene – gilt für jeden Workspace. Lege dasselbe mcp.servers-Objekt in ~/.zcode/cli/config.json ab und kombiniere es mit der Akzeptanzregel (Abschnitt 5) in ~/.zcode/AGENTS.md, damit jede Sitzung weiß, wann sie das Werkzeug aufrufen soll – nicht nur wie.
Eine Installation auf Benutzer-Ebene bindet jeden Workspace an den Build dieser Maschine:
Nach Änderungen an
src/führenpm run buildaus – andere Sitzungen laden weiterhin das altedist/, bis du das tust.Das Verschieben oder Löschen des Repo-Verzeichnisses bricht jede Sitzung auf einmal.
Funktioniert heute über ein Git-Remote – keine Registry nötig. Das prepare-Skript baut dist/ bei der Installation, sodass npx den Rest erledigt:
{
"command": "npx",
"args": ["-y", "github:newlix/gavel-mcp#v0.5.0"]
}Pinne einen Tag (#v0.5.0), um den npx-Cache stabil zu machen; ohne einen solchen folgst du dem Standard-Branch, und die Cache-Aktualisierung liegt im Ermessen von npx. Der erste Start auf einer Maschine kostet einen einmaligen Clone + Install + Build. Sobald es auf npm veröffentlicht ist, ist ["-y", "gavel-mcp"] gleichwertig und überspringt die Git-Anforderung. Jeder andere MCP-Host funktioniert ebenfalls; nur die Form der Konfiguration unterscheidet sich.
3. Sitzung neu starten
MCP-Server verbinden sich beim Sitzungsstart. Eine bereits laufende Sitzung nimmt den Server nicht mehr auf.
4. Überprüfen
ZCode: Einstellungen → MCP zeigt
gavelverbunden.Oder bitte den Agenten einfach,
gavel_acceptancemitcmd: "test -d ."aufzurufen – erwarteverdict=pass exit=0.
5. Die Regel (AGENTS.md)
Das Werkzeug ist die Struktur; die Regel sagt dem Agenten, wann er es verwenden soll. Lege dies in <repo>/AGENTS.md ab:
## Acceptance
- Done = `gavel_acceptance` returned exit 0. One self-contained
command, cold from the repo root; report the verdict and the
command itself — never a paraphrase of test results.
- The command asserts intent (what should happen), not the
implementation.
- `refused` means it never ran. Report it verbatim.Bei Installationen auf Benutzer-Ebene kommt derselbe Block stattdessen in ~/.zcode/AGENTS.md – Benutzeranweisungen werden zuerst geladen, sodass ein repo-eigenes AGENTS.md die Regel weiterhin pro Projekt einschränken kann.
Related MCP server: TruthGate
Der Vertrag
Das Orakel vertraut nie einem paraphrasierten Ergebnis – es führt den Befehl selbst aus, sodass eine rote Akzeptanz nicht als grün erzählt werden kann. Zwei strukturelle Ebenen, zuerst die kostengünstigste:
Lint (
src/lint.ts): Ein Befehl, der nicht fehlschlagen kann (true,exit 0, bloßes echo/printf,x && trueohne echte Prüfung), wird vor der Ausführung abgelehnt –passed: false,refused: <reason>, keine Quittung wird ausgestellt. Die Syntax- und Destruktivmuster-Prüfungen des Go-Linters wurden bewusst entfernt: Syntax schlägt bei der Ausführung identisch fehl, und gefährliche Befehle zu überwachen ist Aufgabe der Host-Berechtigungsebene, nicht der Urteilsebene.Kaltlauf (
src/runner.ts): Der Befehl läuft über die Plattform-Shell aus dem Projektstamm; Exit-Code 0 ist der einzige Erfolg. Signaltode werden als 128+Signal gemeldet, Spawn-Fehler als -1, Befehl-nicht-gefunden als 127.
Quittungs-Semantik: refused = nie ausgeführt. Melde es unverändert.
Werkzeuge
gavel_acceptance(cmd, cwd?, timeout_sec?)
→ { passed, exit_code, duration_ms, refused, output }
output: zusammengeführte stdout+stderr, roh; Anfang und Ende mit einem Marker, wenn länger als ~20 KB.Ein Timeout beendet den gesamten Prozessbaum und lässt den Lauf fehlschlagen.
Fehlerbehebung
Server nicht verbunden (Einstellungen → MCP zeigt einen Fehler): Der dist-Pfad ist falsch oder
npm run buildwurde übersprungen. Der Pfad muss absolut sein und aufdist/index.jszeigen.exit_code: 127: Der Akzeptanzbefehl selbst wurde nicht gefunden.
Entwicklung
npm install
npm test # node:test via tsx (24 tests)
npm run build # tsc → dist/Aufbau: src/index.ts ist der schlanke Stdio-Bootstrap; die MCP-Oberfläche (buildServer) lebt in src/server.ts, sodass Tests sie prozessintern über InMemoryTransport steuern können; dazu kommt ein Kaltlauf-Stdio-Smoke-Test via tsx. Der manuelle Smoke-Test unten ist derselbe Austausch, den der Stdio-Test ausführt.
Manueller Smoke-Test (MCP-stdio ist zeilengetrenntes JSON):
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"gavel_acceptance","arguments":{"cmd":"test -d ."}}}' \
| node dist/index.jsMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseCqualityCmaintenanceEnables acceptance gates for AI coding-agent runs by recording evidence, running deterministic validation, applying a quality gate, and rendering auditable outcomes.7Apache 2.0
- AlicenseCqualityBmaintenanceA fail-closed preflight, approval, evidence, and verification runtime for agents, preventing unsupported output from being treated as verified completion.3MIT
- FlicenseNot gradedqualityDmaintenanceEnables spec-driven development acceptance gate with structured receipts, audit logs, and reviewer-ready evidence.
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to test Unity scenes and return review-ready receipts via a hosted remote MCP with tools for playmode checks and method invocation.
Related MCP Connectors
Hand off AI work with a signed Verification Receipt — an independent verifier proves it runs.
Tests an AI agent's purchase against the task it was given. Paid per call in USDC via x402.
Read-only discovery for exact-commit Agent Skill validation, x402 payment, and signed receipts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/newlix/gavel-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server