MCP Inspector
Что умеет MCP Inspector 2.9.0 - три интерфейса, запуск, порты и ключ доступа, выбор эпохи протокола, OAuth, MCP Apps, Tasks и известные ограничения выпуска
сверено с выпуском 2.9.0 4 октября 2026
Что это за программа
Заголовок раздела «Что это за программа»Inspector поставляется одним пакетом npm @modelcontextprotocol/inspector. В README выпуска названы три интерфейса, которые запускаются одной командой mcp-inspector:
| Интерфейс | Что это | Для чего |
|---|---|---|
| Web | страница в браузере и серверная часть на Node.js | ручная проверка, просмотр обмена сообщениями |
| CLI | клиент командной строки | сценарии, автоматическая проверка при сборке |
| TUI | интерактивный интерфейс в терминале | работа без браузера |
Официальная документация называет Inspector эталонным инструментом разработчика для проверки и отладки серверов MCP.
Версии и метки npm
Заголовок раздела «Версии и метки npm»Данные реестра npm на 4 октября 2026:
| Метка | Версия | Опубликована | Что это |
|---|---|---|---|
latest |
2.9.0 | 2026-09-30 | текущий выпуск линии 2.x |
v1-latest |
1.0.2 | 2026-08-24 | линия 1.x, только исправления безопасности |
next |
2.0.0-rc.3 | 2026-07-28 | старый кандидат в выпуск, он старше latest |
По политике безопасности проекта линия 2.x поддерживается полностью, а линия 1.x получает только исправления безопасности.
Файла с журналом изменений в репозитории нет. Изменения каждой версии записаны в примечаниях к выпускам на GitHub.
Что нужно для запуска
Заголовок раздела «Что нужно для запуска»Нужен Node.js версии 22.19.0 или новее. Это требование записано в поле engines пакета. Руководство по переходу с первой версии объясняет, что граница пришла от библиотеки undici восьмой версии. Линии 1.x хватало Node.js 22.7.5.
То же руководство предупреждает: npm при несовпадении версии Node.js только выводит предупреждение, а ошибка появится позже и будет непонятной. Проверьте версию заранее командой node -v.
npx @modelcontextprotocol/inspector # web UI (default)npx @modelcontextprotocol/inspector --cli # CLInpx @modelcontextprotocol/inspector --tui # TUIПример взят из документации выпуска 2.9.0 и здесь не запускался.
Ключ режима (--cli или --tui) обязан стоять первым, сразу после имени программы. Всё, что идёт после него, передаётся выбранному интерфейсу без изменений.
Сервер stdio можно указать прямо в команде:
npx @modelcontextprotocol/inspector node build/index.jsnpx @modelcontextprotocol/inspector -e KEY=value -- node build/index.js --server-flagПример взят из документации выпуска 2.9.0 и здесь не запускался.
Если у самого сервера есть ключи командной строки, перед его командой нужен разделитель --.
Есть и готовый образ контейнера ghcr.io/modelcontextprotocol/inspector для архитектур amd64 и arm64. По описанию образа программа в нём работает от непривилегированного пользователя.
Порты и ключ доступа
Заголовок раздела «Порты и ключ доступа»Значения по умолчанию из справочника переменных окружения выпуска 2.9.0:
| Порт | Переменная | Назначение |
|---|---|---|
| 6274 | CLIENT_PORT |
веб-интерфейс и его адреса /api/* |
| 6275 | MCP_SANDBOX_PORT |
изолированная страница для MCP Apps |
| 6276 | MCP_OAUTH_CALLBACK_URL |
адрес возврата OAuth для CLI и TUI: http://127.0.0.1:6276/oauth/callback |
| 6278 | MCP_APP_ORIGIN_PORT |
отдельный адрес для приложений MCP Apps, которые объявили _meta.ui.domain |
Серверная часть веб-интерфейса умеет запускать процессы на вашем компьютере. Поэтому каждый её адрес /api/* закрыт ключом доступа.
- Ключ создаётся заново при каждом запуске и печатается в строке запуска.
- Браузер передаёт его в заголовке
x-mcp-remote-authв видеBearerи самого ключа. - Свой ключ задаётся переменной
MCP_INSPECTOR_API_TOKEN. - Проверку ключа отключает переменная
DANGEROUSLY_OMIT_AUTHсо значениемtrueили1. Делать это на компьютере, доступном из сети, не следует.
По умолчанию программа слушает только адрес 127.0.0.1. Попытку слушать все сетевые интерфейсы она отклоняет, пока не задана переменная DANGEROUSLY_BIND_ALL_INTERFACES. Кроме того, адреса /api/* проверяют заголовок Origin по списку разрешённых значений. Переменная ALLOWED_ORIGINS этот список заменяет целиком, а не дополняет.
Транспорты
Заголовок раздела «Транспорты»Тип транспорта задаётся ключом --transport или полем type в файле настроек. По описанию настроек серверов допустимы три значения:
stdio- локальный процесс;http- Streamable HTTP;sse- сервер с потоком SSE.
Если тип не указан, программа определяет его только по окончанию адреса: /mcp означает Streamable HTTP, /sse означает sse. Для любого другого адреса она выдаёт ошибку и требует указать --transport.
Чем различаются транспорты в самой спецификации, описано на странице «Транспорты».
Эпохи протокола
Заголовок раздела «Эпохи протокола»Эпоха в Inspector - отдельная настройка каждого сервера. Она не зависит от транспорта: один и тот же адрес можно проверить как сервер Legacy и как сервер Modern. Настройка называется protocolEra, в командной строке ей соответствует ключ --protocol-era.
| Значение | Что делает Inspector при подключении |
|---|---|
legacy |
обычное рукопожатие initialize редакции 2025-11-25, без пробного запроса |
auto |
сначала отправляет server/discover; при любом исходе, не похожем на Modern, переходит к initialize |
modern |
работает строго по редакции 2026-07-28; отката на старый порядок нет, с сервером Legacy подключение завершится ошибкой |
Значение по умолчанию - legacy. Это записано и в исходном коде выпуска, и на странице «Protocol eras» официальной документации. Причина названа там же: инструмент отладки не должен сам отправлять пробный запрос. Такой запрос зависает на молчащих серверах Legacy по stdio и попадает в запись обмена, которую вы пришли изучать.
Согласуются ли редакции старше 2025-11-25 (2025-06-18, 2025-03-26, 2024-11-05), документация выпуска не говорит. Список поддерживаемых редакций находится внутри TypeScript SDK версии 2.2.0, на котором построен Inspector. Для самого Inspector это неизвестно.
Как устроен пробный запрос и ответы на него, описано на страницах «Обнаружение: server/discover» и «Редакции и версии протокола».
OAuth, MCP Apps и Tasks
Заголовок раздела «OAuth, MCP Apps и Tasks»OAuth. По официальной документации полный порядок авторизации реализован во всех трёх интерфейсах, а полученные ключи хранятся на диске и общие для них. Руководство по переходу называет в том числе Client ID Metadata Documents и авторизацию, управляемую организацией. Общая схема авторизации в MCP описана в разделе «Модель авторизации».
MCP Apps. Приложения показывает только веб-интерфейс: вкладка Apps открывает их в изолированной рамке на отдельном порту. По описанию CLI клиент командной строки приложение отрисовать не может и по умолчанию не объявляет серверу поддержку этого расширения.
Tasks. Вкладка Tasks работает с обеими формами. Для серверов Legacy это возможность capabilities.tasks. Для серверов Modern это расширение io.modelcontextprotocol/tasks. По описанию проверочных серверов в SDK второй версии поддержки Tasks нет, поэтому с расширением Inspector работает сам, в обход SDK.
Секреты на диске
Заголовок раздела «Секреты на диске»Inspector хранит ключи OAuth, секреты клиентов OAuth и значения переменных окружения для серверов stdio. По умолчанию они лежат в системном хранилище ключей. README выпуска предупреждает: если такого хранилища нет (Linux без службы секретов, работа по SSH, контейнер), секреты записываются в файл ~/.mcp-inspector/secrets.json без шифрования, пока вы не зададите ключ шифрования.
Известный дефект выпуска 2.9.0
Заголовок раздела «Известный дефект выпуска 2.9.0»В примечаниях к выпуску 2.9.0 описан один известный дефект, запись #2549.
- Когда проявляется. Вы ведёте несколько отдельных профилей OAuth для одного и того же сервера через переменную
MCP_INSPECTOR_OAUTH_STATE_PATH. - Что происходит. Профили могут перезаписать ключи друг друга.
- Как обойти. Дайте каждому профилю своё хранилище секретов:
MCP_INSPECTOR_SECRET_STORE=fileи отдельныйMCP_INSPECTOR_SECRET_FILE, либо отдельныйMCP_STORAGE_DIR. - Кого не касается. Обычная настройка с одним профилем не затронута.
Исправление в примечаниях обещано в версии 2.10.0. На 4 октября 2026 эта версия не выпущена.
Где официальная документация отстаёт от выпуска
Заголовок раздела «Где официальная документация отстаёт от выпуска»Страницы Inspector на modelcontextprotocol.io в трёх местах расходятся с репозиторием на метке 2.9.0. Эта страница следует репозиторию.
| Вопрос | Официальная документация | Репозиторий, метка 2.9.0 |
|---|---|---|
| порт изолированной страницы MCP Apps | выбирается системой при каждом запуске | постоянный, 6275 |
| адрес, который слушает программа | localhost |
127.0.0.1, имя localhost не используется намеренно |
контейнер в режимах --cli и --tui |
нужно добавить --no-healthcheck |
ключ не нужен, проверка сама распознаёт эти режимы |
Первые две строки сверены со страницей «Web client» и описанием веб-клиента в репозитории, третья - со страницей «Recipes» и описанием образа.
История безопасности
Заголовок раздела «История безопасности»У Inspector была критическая уязвимость CVE-2025-49596: между страницей Inspector и его посредником не было проверки подлинности. Бюллетень опубликован 13 июня 2025, затронуты версии младше 0.14.1, исправление вышло в 0.14.1. Запись есть в нашем перечне «Уязвимости и инциденты».
Ключ доступа, привязка к 127.0.0.1 и проверка Origin из раздела о портах закрывают именно этот класс ошибок. Вывод для работы такой:
- не отключайте проверку ключа;
- не открывайте Inspector в сеть без необходимости: любой, кто до него дотянется, сможет управлять серверной частью, которая запускает процессы;
- если программа работает не на
localhost, документация выпуска требует отдавать её по HTTPS.
Что читать дальше
Заголовок раздела «Что читать дальше»- Инструменты разработчика - какой инструмент брать для какого вопроса.
- Обнаружение сервера - что такое
server/discoverи что на него отвечает сервер. - Сервер для двух эпох - как проверить, что сервер отвечает и клиентам Legacy, и клиентам Modern.
- Уязвимости и инциденты - подтверждённые уязвимости программ экосистемы.