gavel-mcp
gavel-mcp
Оракул приёмки gavel как MCP-сервер: один инструмент, который превращает «готово» агента в квитанцию. gavel_acceptance холодно запускает команду и сообщает код возврата. Код возврата 0 — единственный проходной вердикт.
Настройка
1. Сборка
Требуются Node ≥ 20 и git.
cd gavel-mcp
npm install
npm run build # → dist/index.jsdist/ игнорируется git — в каждой свежей копии репозитория этот шаг обязателен, прежде чем сервер сможет запуститься.
2. Подключение к ZCode
Есть две области действия; обе подключаются автоматически при старте сессии.
Область рабочего пространства — версионируется вместе с репозиторием и доступна всей команде. Создайте <repo>/.zcode/config.json:
{
"mcp": {
"servers": {
"gavel": {
"command": "node",
"args": ["/ABS/PATH/TO/gavel-mcp/dist/index.js"]
}
}
}
}Область пользователя — действует для каждого рабочего пространства. Поместите тот же объект mcp.servers в ~/.zcode/cli/config.json и добавьте к нему правило приёмки (раздел 5) в ~/.zcode/AGENTS.md, чтобы каждая сессия знала, когда вызывать инструмент, а не только как.
Установка в область пользователя привязывает все рабочие пространства к сборке этой машины:
После изменения
src/запуститеnpm run build— остальные сессии продолжат загружать старыйdist/, пока вы этого не сделаете.Перемещение или удаление каталога репозитория сразу ломает все сессии.
Сегодня работает из удалённого git-репозитория — реестр не нужен. Скрипт prepare собирает dist/ при установке, поэтому остальное берёт на себя npx:
{
"command": "npx",
"args": ["-y", "github:newlix/gavel-mcp#v0.5.0"]
}Зафиксируйте тег (#v0.5.0), чтобы кэш npx был стабильным; без него вы следуете за веткой по умолчанию, а обновление кэша остаётся на усмотрение npx. Первый запуск на машине требует однократного клонирования, установки и сборки. После публикации в npm ["-y", "gavel-mcp"] эквивалентен и снимает требование к git. Любой другой MCP-хост тоже работает; отличается только форма конфигурации.
3. Перезапуск сессии
MCP-серверы подключаются при старте сессии. Уже запущенная сессия не подхватит сервер.
4. Проверка
ZCode: Settings → MCP показывает, что
gavelподключён.Или просто попросите агента вызвать
gavel_acceptanceсcmd: "test -d ."— ожидайтеverdict=pass exit=0.
5. Правило (AGENTS.md)
Инструмент — это структура; правило сообщает агенту, когда его использовать. Поместите это в <repo>/AGENTS.md:
## 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.Для установки в область пользователя тот же блок помещается в ~/.zcode/AGENTS.md — пользовательские инструкции загружаются первыми, поэтому собственный AGENTS.md репозитория может дополнительно сузить правило для конкретного проекта.
Related MCP server: TruthGate
Контракт
Оракул никогда не доверяет перефразированному результату — он сам выполняет команду, поэтому красную приёмку нельзя описать как зелёную. Два структурных уровня, сначала самый дешёвый:
Линт (
src/lint.ts): команда, которая не может завершиться ошибкой (true,exit 0, голые echo/printf,x && trueбез реальной проверки), отклоняется до выполнения —passed: false,refused: <reason>, квитанция не выпускается. Проверки синтаксиса и деструктивных паттернов из Go-линтера намеренно опущены: синтаксис при выполнении падает точно так же, а контроль опасных команд — задача уровня разрешений хоста, а не уровня вердикта.Холодный запуск (
src/runner.ts): команда выполняется через системную оболочку из корня проекта; код возврата 0 — единственный признак успеха. Завершения по сигналу сообщаются как 128+signal, сбой запуска — -1, команда не найдена — 127.
Семантика квитанции: refused — команда не выполнялась. Передавайте его дословно.
Инструменты
gavel_acceptance(cmd, cwd?, timeout_sec?)
→ { passed, exit_code, duration_ms, refused, output }
output: объединённые stdout+stderr, как есть; начало и конец с маркером, если длина больше ~20 KB.Тайм-аут убивает всё дерево процессов и завершает запуск ошибкой.
Устранение неполадок
Сервер не подключён (Settings → MCP показывает ошибку): неверный путь к dist или пропущен
npm run build. Путь должен быть абсолютным и указывать наdist/index.js.exit_code: 127: сама команда приёмки не найдена.
Разработка
npm install
npm test # node:test via tsx (24 tests)
npm run build # tsc → dist/Структура: src/index.ts — это тонкий stdio-загрузчик; MCP-интерфейс (buildServer) находится в src/server.ts, чтобы тесты могли управлять им в том же процессе через InMemoryTransport, плюс один холодный смоук-тест stdio через tsx. Ручной смоук-тест ниже — это тот же обмен, который выполняет stdio-тест.
Ручной смоук-тест (MCP stdio — это 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