Pi добавила MCP в ядро: авторы объяснили, почему передумали

Авторы Pi (пост опубликован на earendil.com, авторы пишут от первого лица во множественном числе) объясняют разворот. Раньше на сайте pi.dev стояло гордое заявление, что Pi не поддерживает MCP, а в подкастах и в посте Марио (Mario) звучали пренебрежительные высказывания о протоколе. Теперь при обновлении Pi поддержка MCP входит в ядро.
Первая причина, мир не стоит на месте: сегодняшний MCP, по словам авторов, не тот, что был год назад. Но одного этого было бы мало: MCP мог остаться расширением (раньше он им и был). В ядро его перенесли после того, как команда переосмыслила вопрос и обнаружила, что нужные для MCP изменения полезны в целом. Например, те же изменения упрощают использование Jev внутри Pi. По мысли авторов, Pi и MCP нужно похожее, песочница в виде интерпретатора.
Многое в MCP не улучшилось. Главная проблема, его трудно комбинировать. Даже с Codemode (небольшой песочницей для композиции вызовов инструментов) MCP не раскрывает этого полностью, но сейчас это, по мнению авторов, скорее проблема существующих MCP-серверов и разных подходов обвязок агента (harness) к работе с ними. Многие серверы всё ещё рассчитаны на обвязки, которые просто сваливают все инструменты в контекст и сами стремятся к экономии токенов, возвращая текст. Авторы считают, что MCP должен быть гораздо ближе к OpenAPI с умным обнаружением инструментов: инструменты возвращают структурированные данные и находятся по документации и описанию. CLI удобны тем, что агент и модель склеивают вещи короткими bash-конструкциями, и ничего принципиально не мешает делать так же с MCP. В Pi MCP построен на передаче инструментов в JavaScript-песочницу, так же, как это делают другие обвязки, например Codex.
Почему не сделать только Codemode без MCP? Отчасти дело в том, как инструменты описаны в Pi. За последние месяцы команда адаптировала Pi к новым моделям с отложенной загрузкой инструментов, системными сообщениями посреди диалога и сменой уровня рассуждений, но набор инструментов (tool loadout) под эти возможности ещё не масштабировала. В мире Codemode нужно решать, доступен ли инструмент модели целиком или только её части Codemode. У обычного MCP-расширения в Pi не хватает метаданных, чтобы это работало хорошо, поэтому инструменты сделали настраиваемыми: отложенными или только для Codemode. Кроме того, авторы считают, что MCP вместе с Codemode решает многие традиционные проблемы протокола, а лучший способ повлиять на что-то, принять это; они хотят участвовать в разговоре о том, как MCP должен работать в небольших обвязках.
Codemode авторы объясняют так. У обвязки есть две стороны выполнения инструментов: там, где работает bash, и там, где работает цикл агента. Уровень доверия у них разный: цикл обычно в доверенной среде, а инструменты, в менее доверенной песочнице. Codemode выполняется на стороне обвязки, это механизм оркестрации вызовов инструментов: агент может выбирать порядок вызовов и комбинировать их на JavaScript. Из-за этого состояние Codemode хранится в журнале сессии, а не в файловой системе. JavaScript выбран потому, что его небольшие версии можно поставлять как бинарники WASM с приемлемым уровнем защиты; теоретически подошёл бы любой язык.
В Pi Codemode загружается автоматически при настройке MCP или добавляется в конфигурацию как инструмент по умолчанию, можно попросить сам Pi перенастроиться. Пример из поста: при входе через провайдера, предоставляющего Jev, можно написать «используй typesafe/jev через codemode, чтобы найти 20 самых раздражённых комментаторов в нашем трекере задач». По словам авторов, Pi сам скомбинирует, например, MCP Linear и Jev, не тратя контекст. О Jev и Codemode они обещают рассказать позже.
Ключевые факты
- Pi раньше заявляла об отсутствии поддержки MCP; теперь MCP входит в ядро, хотя мог остаться расширением, как и был.
- MCP в Pi построен на передаче инструментов в JavaScript-песочницу Codemode, которая выполняется на стороне обвязки и оркестрирует вызовы инструментов.
- Главная оставшаяся проблема MCP, по мнению авторов, плохая композируемость; её причина сейчас скорее в серверах и подходах обвязок, чем в самом протоколе.
- Авторы хотят, чтобы MCP был ближе к OpenAPI: структурированные ответы и обнаружение инструментов по описанию и документации.
- Codemode в Pi включается автоматически при настройке MCP или добавляется в конфигурацию как инструмент по умолчанию.
Почему это важно
Проект, публично отказывавшийся от MCP, меняет позицию и встраивает протокол в ядро. Авторы связывают это не с модой, а с тем, что MCP изменился, а нужные для него доработки (песочница-интерпретатор, метаданные инструментов, отложенная загрузка) полезны самому Pi. Пост показывает и общий подход: по словам авторов, песочницу для инструментов используют и другие обвязки, например Codex.
Кому это важно
Пользователям Pi, которые раньше ставили MCP как расширение, а также авторам MCP-серверов и разработчикам агентных обвязок. Авторы фактически адресуют серверам пожелание возвращать структурированные данные и быть обнаруживаемыми по описанию, а не ориентироваться на текстовый вывод ради экономии токенов.
Как это применить
В Pi Codemode загружается автоматически, когда настроен MCP, либо его можно добавить в конфигурацию как инструмент по умолчанию; авторы советуют попросить сам Pi перенастроиться для включения Codemode. Пример из поста, запрос с использованием Jev через Codemode для поиска 20 самых раздражённых комментаторов в трекере задач. Дата выпуска и номер версии Pi с поддержкой MCP в посте не указаны.
Можно ли доверять
Это авторский пост самих разработчиков Pi на earendil.com, то есть объяснение собственных решений, а не независимая оценка. Замеров, бенчмарков и цифр экономии токенов в нём нет; утверждения о пользе Codemode и об улучшении MCP, позиция авторов. Сам пример с 20 комментаторами иллюстративный, а не результат измерения.
Риски и подводные камни
Авторы признают, что MCP по-прежнему трудно комбинировать, а многие серверы написаны под обвязки, сваливающие инструменты в контекст. Для работы Codemode нужны дополнительные настройки инструментов (отложенные или только для Codemode), а обычное MCP-расширение не имеет для этого достаточно метаданных. О Jev в посте сказано лишь, что он доступен через некоторых провайдеров и применим через Codemode; подробности обещаны позже.
«Мы считаем, что лучший способ положительно повлиять на что-то, принять это.»
— Авторы Pi, пост «You Said No MCP» на earendil.com