Skip to content

Cli client for testing mcp servers

Роман Коляда requested to merge CLI_client_for_testing_MCP_servers into main

Описание

  • Реализован и расширен MCP Client - универсальный CLI-инструмент для тестирования MCP-серверов
  • Создан MCP клиент в examples/mcp_client/
  • В README есть инструкция запуска

Реализовано

  • cli.py - Точка входа CLI: парсинг аргументов, вывод результатов, коды возврата. Добавлена поддержка новых аргументов (--url, --stdio, --smoke, --smoke-file), обновлена логика выбора транспорта.

  • client.py - Клиентская логика: инициализация, вызовы tools, работа с протоколом. Адаптирован для работы с разными транспортами, добавлена нормализация ответов.

  • mcp_http.py - (бывший http.py) HTTP запросы: обработка статусов, тайм-аутов, чтение тела ответа. Переименован для избежания конфликта со стандартным модулем.

  • parser.py - Парсеры: обработка JSON и SSE-ответов.

  • formatter.py - Форматирование: преобразование данных для вывода.

  • exceptions.py - Исключения и коды возврата. Добавлен новый класс SmokeTestError.

  • transport/base.py - Базовый класс для всех транспортов.

  • transport/http.py - HTTP транспорт (переиспользована существующая логика).

  • transport/stdio.py - Новый Stdio транспорт для запуска сервера как процесса.

  • smoke.py - Модуль для smoke-тестов: дефолтный сценарий (initialize → tools/list) и выполнение произвольных сценариев из JSON-файла.

  • tests/ - Добавлено тестовое покрытие:

    • test_http.py - тесты HTTP режима
    • test_stdio.py - тесты stdio режима
    • test_smoke.py - тесты smoke-режимов
    • test_errors.py - тесты ошибок и exit codes
    • test_integration.py - интеграционные тесты

Чеклист:

  • Описание MR:
    • Из описания MR ясно кому и зачем нужны правки
    • Указаны ссылки на связанные issues
    • Указаны дополнительные материалы (если есть)
  • Проверка:
    • Изменения протестированы
    • Проверено поведение в dev (если применимо)
  • Changelog:
    • Добавлен новый файл в changelogs/unreleased
    • Добавлено описание всех изменений
    • Указаны изменения в переменных окружения
    • Указаны ссылки на GitLab Issues, связанные с MR
  • Документация:
    • Обновлены инструкции в CONTRIBUTING.md (если применимо)
    • Обновлен README (если применимо)
Edited by Роман Коляда

Merge request reports