Поиск ошибок реализации с помощью контрактных тестов
Этот пример использует исполнитель MCP для разработчиков с проверкой схемы ответа, доступной с версии 0.7.6. Требуется Node.js 22.12.0 или новее. Используются вымышленные данные и бэкенд, доступный только через loopback-интерфейс. После установки зависимостей учётная запись, модель и публичная API не нужны.
git clone https://github.com/powerducklab/dev-mcp-server.git
cd dev-mcp-server
npm ci
npm run build
node examples/contract-total/verify.mjs
Ответ — {"total":"42"}, но схема требует число. Настоящий валидатор сообщает /total must be number и завершает работу с кодом 1.
node examples/contract-total/verify.mjs --correct
Теперь бэкенд возвращает {"total":42}; та же проверка проходит и завершается с кодом 0. Чтобы исправить реализацию самостоятельно, измените выражение total в examples/contract-total/server.mjs так, чтобы оно возвращало число. Не ослабляйте контракт, чтобы скрыть ошибку.
Каждый запуск выделяет свободный локальный порт и затем останавливает свой сервер. Исходники и команды доступны в проекте примера. Проверка схем сейчас охватывает ответы JSON, без проверки форматов и загрузки удалённых схем. Если неподдерживаемый тип содержимого требует проверки схемы, выводится сообщение об ограничении, а не успешном прохождении.
Это проверка реального бэкенда. Успешный Mock-запрос демонстрирует только пример рабочего процесса. При желании агент программирования может вызвать run_contract_tests с явно заданным baseUrl для той же проверки. Просмотрите его патч перед применением.