MCP Inspector as MCP Server
MCP Inspector как MCP-сервер
Компактный 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)
Инструмент | Описание |
| Установить постоянное соединение с MCP-сервером. Возвращает |
| Закрыть постоянную сессию и освободить ресурсы. |
| Перечислить все активные сессии с их статусом и временем простоя. |
| Прочитать буферизованные события (уведомления, трафик, ошибки) из сессии. |
| Внедрить сообщение от человека в очередь сессии. |
Инструменты проверки
Инструмент | Описание |
| Перечислить все инструменты, предоставляемые MCP-сервером |
| Вызвать инструмент на MCP-сервере |
| Перечислить все ресурсы, предоставляемые MCP-сервером |
| Прочитать конкретный ресурс |
| Перечислить шаблоны ресурсов |
| Перечислить все промпты |
| Получить конкретный промпт |
Параметры подключения
Все инструменты принимают следующие параметры подключения:
Для транспорта 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."
}
}Типы событий
Тип | Описание |
| Сообщения, отправленные НА целевой сервер |
| Сообщения, полученные С целевого сервера |
| Уведомления MCP от целевого сервера |
| Ошибки, возникшие во время связи |
| Сообщения от человека, внедренные в сессию |
Типичный рабочий процесс
LLM создает сессию:
insp_connect→ получаетsess_abc123LLM начинает тестирование:
insp_tools_callсsession_idЧеловек наблюдает:
curl http://127.0.0.1:9847/api/sessionsЧеловек направляет:
./bin/mcp-steer.mjs "Также протестируй пакетный эндпоинт"LLM получает указание: Следующий ответ инструмента включает
⚡ STEERING from human: ...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 может использовать для:
Итеративной разработки и отладки MCP-серверов
Тестирования функциональности MCP-сервера, не покидая диалог
Изучения того, какие инструменты/ресурсы/промпты предоставляет MCP-сервер
Отладки поведения с сохранением состояния с помощью постоянных сессий
Разработка
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
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