Skip to main content
Glama
esinecan

MCP Inspector as MCP Server

by esinecan

MCP Inspector как MCP-сервер

License: MIT Node.js TypeScript

Компактный MCP-сервер, который позволяет LLM проверять и тестировать другие MCP-серверы. Это автономная реализация, использующая SDK MCP напрямую, без вызова внешних CLI.

Возможности

  • Прямая интеграция с SDK: использует @modelcontextprotocol/sdk напрямую как для операций сервера, так и клиента

  • Все типы транспорта: поддерживает транспорты stdio, SSE и HTTP (с поддержкой потоковой передачи)

  • Минимальный размер: единственная зависимость (@modelcontextprotocol/sdk)

  • Полная проверка MCP: перечисление инструментов, вызов инструментов, перечисление ресурсов, чтение ресурсов, перечисление промптов, получение промптов

  • Управление сессиями: постоянные соединения с автоматической сборкой мусора

  • Буферизация событий: захват уведомлений, трафика и ошибок для отладки

Установка

npm install
npm run build

Использование

В качестве MCP-сервера

Добавьте в свою конфигурацию MCP. Хотя между различными реализациями есть небольшие различия, общий формат одинаков:

{
  "mcpServers": {
    "mcp-inspector": {
      "command": "node",
      "args": ["/path/to/mcp-inspector-as-mcp-server/dist/server.js"]
    }
  }
}

Доступные инструменты

Управление сессиями (НОВОЕ в v2.0)

Инструмент

Описание

insp_connect

Установить постоянное соединение с MCP-сервером. Возвращает session_id.

insp_disconnect

Закрыть постоянную сессию и освободить ресурсы.

insp_list_sessions

Перечислить все активные сессии с их статусом и временем простоя.

insp_read_events

Прочитать буферизованные события (уведомления, трафик, ошибки) из сессии.

insp_inject_steering

Внедрить сообщение от человека в очередь сессии.

Инструменты проверки

Инструмент

Описание

insp_tools_list

Перечислить все инструменты, предоставляемые MCP-сервером

insp_tools_call

Вызвать инструмент на MCP-сервере

insp_resources_list

Перечислить все ресурсы, предоставляемые MCP-сервером

insp_resources_read

Прочитать конкретный ресурс

insp_resources_templates

Перечислить шаблоны ресурсов

insp_prompts_list

Перечислить все промпты

insp_prompts_get

Получить конкретный промпт

Параметры подключения

Все инструменты принимают следующие параметры подключения:

Для транспорта stdio (локальные команды):

  • command: Команда для запуска (например, "node", "python")

  • args: Массив аргументов (например, ["path/to/server.js"])

Для транспорта SSE/HTTP (удаленные серверы):

  • url: URL сервера (например, "http://localhost:3000/sse")

  • headers: Объект с дополнительными HTTP-заголовками

Общие:

  • transport: Принудительный тип транспорта ("stdio", "sse" или "http"). Автоматически определяется, если не указан.

  • session_id: (Опционально) Использовать существующую постоянную сессию вместо создания эфемерного соединения.

Рабочий процесс сессии

Для отладки поведения сервера с сохранением состояния используйте постоянные сессии:

1. insp_connect → returns session_id
2. insp_tools_list (with session_id) → uses persistent connection
3. insp_tools_call (with session_id) → state is preserved
4. insp_read_events (with session_id) → see notifications
5. insp_disconnect (with session_id) → cleanup

Сессии автоматически закрываются после 30 минут бездействия.

Управление человеком и наблюдаемость

Инспектор позволяет использовать рабочие процессы с участием человека (human-in-the-loop), где вы можете наблюдать и направлять тестирование MCP с помощью LLM в режиме реального времени.

Как это работает

┌─────────────┐     MCP calls      ┌─────────────────┐     forwards     ┌─────────────┐
│   LLM Agent │ ◄────────────────► │  MCP Inspector  │ ◄──────────────► │  Target MCP │
│  (Antigravity)                   │    (v2.0)       │                  │   Server    │
└─────────────┘                    └────────┬────────┘                  └─────────────┘
                                            │
                                   Events logged to
                                   session EventBuffer
                                            │
                    ┌───────────────────────┼───────────────────────┐
                    │                       │                       │
                    ▼                       ▼                       ▼
            insp_read_events         HTTP :9847/api          mcp-steer CLI
            (LLM reads events)       (external access)       (human injection)

Просмотр активности

Через LLM: Агент может вызвать insp_read_events, чтобы увидеть, что происходит:

{
  "session_id": "sess_abc123",
  "types": ["traffic_in", "traffic_out"],
  "limit": 20
}

Через HTTP: Запросите API управления напрямую:

curl http://127.0.0.1:9847/api/sessions

Управление агентом

Внедряйте сообщения с рекомендациями, которые появятся в следующем ответе инструмента LLM.

Используя CLI:

./bin/mcp-steer.mjs "Focus on testing the error handling paths"
./bin/mcp-steer.mjs --session sess_abc123 "Try calling with invalid params"

Используя HTTP:

curl -X POST http://127.0.0.1:9847/api/steer \
  -H "Content-Type: application/json" \
  -d '{"message": "Check the authentication flow next"}'

Используя инструмент MCP:

{
  "tool": "insp_inject_steering",
  "arguments": {
    "session_id": "sess_abc123",
    "message": "Great progress! Now test edge cases."
  }
}

Типы событий

Тип

Описание

traffic_out

Сообщения, отправленные НА целевой сервер

traffic_in

Сообщения, полученные С целевого сервера

notification

Уведомления MCP от целевого сервера

error

Ошибки, возникшие во время связи

steering

Сообщения от человека, внедренные в сессию

Типичный рабочий процесс

  1. LLM создает сессию: insp_connect → получает sess_abc123

  2. LLM начинает тестирование: insp_tools_call с session_id

  3. Человек наблюдает: curl http://127.0.0.1:9847/api/sessions

  4. Человек направляет: ./bin/mcp-steer.mjs "Также протестируй пакетный эндпоинт"

  5. LLM получает указание: Следующий ответ инструмента включает ⚡ STEERING from human: ...

  6. LLM адаптируется: Учитывает рекомендации человека

Примеры

Перечислить инструменты локального MCP-сервера (эфемерно):

{
  "command": "node",
  "args": ["/path/to/some-mcp-server/dist/server.js"]
}

Создать постоянную сессию:

{
  "command": "node",
  "args": ["/path/to/some-mcp-server/dist/server.js"]
}
// Returns: { "session_id": "sess_abc123", "server_info": {...} }

Вызвать инструмент, используя сессию:

{
  "session_id": "sess_abc123",
  "tool_name": "search",
  "tool_args": {"query": "hello"}
}

Архитектура

├── src/
│   ├── server.ts     # MCP server exposing inspector tools
│   ├── client.ts     # Client wrapper (hybrid stateless/session mode)
│   ├── transport.ts  # Transport factory (stdio, SSE, HTTP) + TracingWrapper
│   ├── session.ts    # SessionRegistry with GC (30-min TTL)
│   └── events.ts     # EventBuffer (ring buffer for notifications)
├── bin/
│   └── mcp-steer.mjs # CLI tool for human steering
├── tests/            # Integration test scripts (run with npx tsx)
└── vitest.config.ts  # Unit test + coverage config

Зачем это нужно

Оригинальный MCP Inspector — это комбинация веб-интерфейса и CLI, разбросанная по нескольким проектам. Этот инструмент объединяет основную функциональность в единый компактный MCP-сервер, который LLM может использовать для:

  1. Итеративной разработки и отладки MCP-серверов

  2. Тестирования функциональности MCP-сервера, не покидая диалог

  3. Изучения того, какие инструменты/ресурсы/промпты предоставляет MCP-сервер

  4. Отладки поведения с сохранением состояния с помощью постоянных сессий

Разработка

npm install          # install dependencies
npm run build        # compile TypeScript
npm run dev          # watch mode
npm test             # run unit tests
npm run test:cov     # run tests with coverage
npm run lint         # lint source files
npm run format       # auto-format with Prettier
npm run typecheck    # type-check without emitting

Журнал изменений

v2.1.0

  • Добавлено управление человеком (insp_inject_steering) для рабочих процессов с участием человека

  • Добавлен HTTP API на порту 9847 для внешнего управления/наблюдаемости

  • Добавлен CLI-инструмент mcp-steer.mjs для удобного взаимодействия

  • Исправлена критическая ошибка в TracingTransportWrapper, из-за которой время захвата обработчика приводило к потере сообщений

v2.0.0

  • Добавлено управление сессиями (insp_connect, insp_disconnect, insp_list_sessions)

  • Добавлена буферизация событий (insp_read_events)

  • Все инструменты проверки теперь поддерживают опциональный session_id для постоянных соединений

  • Добавлена автоматическая сборка мусора (TTL 30 минут для простаивающих сессий)

  • Обратная совместимость: пропустите session_id для исходного эфемерного поведения

v1.0.0

  • Первый выпуск с эфемерными соединениями

Лицензия

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/esinecan/mcp-inspector-as-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server