MCP Failure Lab
MCP Failure Lab
Набор инструментов для хаос-инжиниринга и тестирования отказоустойчивости серверов Model Context Protocol.
Документация · Страница проекта

Быстрый старт
Запустите реальный детерминированный сценарий задержки без клонирования репозитория или глобальной установки пакета:
npx mcp-failure-lab demoПример вывода:
MCP Failure Lab — Demo
Running a real 500ms delay scenario...
Scenario: Deterministic delay demo
Outcome: success
Duration: ~500 ms
Assertions: passedТочная длительность может незначительно отличаться между запусками. API-ключ или внешний MCP-сервер не требуются.
Покажите доступные команды:
npx mcp-failure-lab --helpЗапустите встроенный MCP-сервер через stdio:
npx mcp-failure-lab serveRelated MCP server: mcp-chaos-rig
Назначение
MCP Failure Lab помогает авторам серверов воспроизводить задержки, зависающие инструменты, отмену и потерю транспорта детерминированным образом.
Он обеспечивает контролируемое поведение при сбоях для тестирования обработки тайм-аутов, очистки при отмене, восстановления после потери транспорта, утверждений и результатов CI.
Текущая область применения
MCP Failure Lab выполняет детерминированные JSON-сценарии против собственного встроенного MCP-сервера из командной строки.
Доступно сейчас:
инструменты
ping,delay,hangиdisconnectMCP-взаимодействие через stdio
определения сценариев в виде кода и JSON
утверждения о результате и максимальной длительности
утверждения о результатах MCP
последовательные вызовы наблюдателя для проверки постусловий
вывод в консоль и JSON
машиночитаемые ошибки команд
коды выхода, удобные для CI
модульные, интеграционные и сквозные тесты
Не реализовано:
оркестрация внешних MCP-клиентов
адаптеры целевых клиентов
Streamable HTTP
отчёты JUnit
сбои из-за некорректных сообщений, дублирующихся ответов и потери сеанса
MCP Failure Lab в настоящее время не является универсальным прокси или оркестратором тестов внешних MCP-клиентов.
Как это работает
MCP Failure Lab выполняет детерминированные сценарии через встроенные MCP-клиент и сервер. Сценарий вызывает ping, delay, hang или disconnect, записывает наблюдаемый результат и длительность и оценивает объявленные ожидания.
Необязательные вызовы наблюдателя выполняются последовательно через то же соединение MCP-клиента для проверки постусловий через отдельный путь инструмента.
См. документацию по архитектуре для диаграмм, обязанностей и границ реализации.
Документация
Полные руководства и справочники доступны на mcplab.dev/docs.
Требования
Node.js 22.19.0 или новее
npm
Совместимость протоколов
MCP Failure Lab по умолчанию нацелен на MCP 2026-07-28. Его CLI-сервер использует точку входа stdio с учётом эпохи из SDK v2, а встроенный клиент сценариев закрепляет 2026-07-28, чтобы современное поведение проверялось явно.
Сервер также принимает поток инициализации 2025-11-25 для совместимости. Этот устаревший путь по-прежнему покрыт интеграционными тестами, но новая разработка нацелена на 2026-07-28. Существующие инструменты сбоев ping, delay, hang и disconnect имеют одинаковое пользовательское поведение в обеих эпохах; функции протокола, которые полагаются на запросы, инициируемые сервером, различаются между эпохами и выходят за рамки этих инструментов сбоев.
Установка
Запустите пакет напрямую с помощью npx:
npx mcp-failure-lab demoГлобальная установка не требуется.
Чтобы установить команду глобально:
npm install -g mcp-failure-labCLI
# Run the built-in demonstration
npx mcp-failure-lab demo
# Display command help
npx mcp-failure-lab --help
# Display the installed version
npx mcp-failure-lab --version
# Start the MCP server over stdio
npx mcp-failure-lab serveПроцесс serve ожидает MCP-клиента. Нажмите Ctrl+C для корректного завершения.
Запуск сценария
Файлы сценариев используют JSON:
{
"name": "bounded delay succeeds",
"call": {
"tool": "delay",
"args": {
"delayMs": 250
}
},
"timeoutMs": 1000,
"expect": {
"outcome": "success",
"maxDurationMs": 500
}
}Из клона репозитория запустите включённый сценарий:
npm run dev -- run examples/scenarios/delay-success.jsonСгенерируйте машиночитаемый вывод:
npm run dev -- run examples/scenarios/delay-success.json --report jsonКоманда завершается с кодом:
Код | Значение |
| Все ожидания выполнены |
| Сценарий не удалось загрузить или выполнить |
| Одно или несколько утверждений не выполнены |
Для утверждений о результатах, вызовов наблюдателя, форматов отчётов и поведения тайм-аутов см. документацию по сценариям и отчётности.
Инструменты сбоев
Инструмент | Поведение |
| Возвращает детерминированный ответ о состоянии |
| Ожидает ограниченную длительность перед возвратом |
| Остаётся в ожидании, пока клиент не отменит |
| Прерывает активный транспорт, пока запрос находится в полёте |
См. справочник по инструментам сбоев для аргументов и поведения.
Инспектирование сервера
Запустите MCP Inspector для опубликованного пакета:
npx @modelcontextprotocol/inspector npx mcp-failure-lab serveПодключитесь через stdio, перечислите доступные инструменты и вызовите ping, delay, hang или disconnect.
Не делитесь и не фиксируйте временные токены аутентификации, включённые в URL-адреса Inspector.
Внешняя проверка интеграции
MCP Failure Lab был независимо проверен с помощью симуляции Future AGI с использованием независимого Python MCP-клиента. Эксперимент вызывал реальный инструмент hang через stdio и применял тайм-аут на стороне клиента перед оценкой смоделированных ответов агента.
Это пример внешней проверки, а не официальная интеграция или одобрение Future AGI.
См. пример Future AGI для результатов и шагов воспроизведения.
Разработка
Клонируйте репозиторий и установите зависимости:
git clone https://github.com/anilloutombam/mcp-failure-lab.git
cd mcp-failure-lab
npm installЗапустите CLI для разработки:
npm run dev -- --helpПеред открытием pull request выполните:
npm run format:check
npm run typecheck
npm test
npm run buildСм. CONTRIBUTING.md для описания процесса внесения вклада.
Дорожная карта
Планируемые работы отслеживаются в GitHub Issues.
Элементы дорожной карты не являются частью текущей реализации, если явно не задокументированы как доступные.
Лицензия
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA comprehensive reference implementation demonstrating all features of the Model Context Protocol (MCP) specification, serving as documentation, learning resource, and testing tool for MCP implementations.1MIT
- AlicenseNot gradedqualityBmaintenanceA local MCP server that breaks on demand, allowing you to test your client against auth failures, disappearing tools, flaky responses, and token expiry from a web UI.4210MIT
- AlicenseNot gradedqualityDmaintenanceA toy MCP server for exploring Model Context Protocol capabilities, including resources, tools, and prompts.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceAI red teaming toolkit exposed as a Model Context Protocol (MCP) server. Connect any MCP client and test AI systems for safety vulnerabilities.MIT
Related MCP Connectors
MEOK MCP Test MCP — golden-file + schema-drift + tool-failure tests for any MCP server. Drop-in
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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/anilloutombam/mcp-failure-lab'
If you have feedback or need assistance with the MCP directory API, please join our Discord server