pimenov.ai

Как я вместе с Codex перевёл Plaud → Notion на официальный MCP

После обновлений Plaud старая интеграция через браузерный токен перестала работать. Рассказываю, как я вместе с Codex перевёл процесс на официальный MCP.

ИИКейсNotionПрактика

В начале августа я заметил, что в моей базе Notion перестали появляться новые записи из Plaud. Последняя успешная синхронизация была 3 августа. Сначала я подумал о самом простом: возможно, истёк токен, который старая интеграция брала из браузера. Но довольно быстро выяснилось, что за последние месяцы изменился не только токен — изменилась сама экосистема Plaud.

Вместо того чтобы чинить прежнюю схему любой ценой, я вместе с Codex разобрал, что именно сломалось, проверил новые официальные инструменты Plaud и перевёл весь процесс на MCP. Заодно мы сохранили накопившиеся записи без дублей, не потеряли разные варианты саммари и привели в порядок старую базу Notion.

Зачем мне вообще понадобилась эта интеграция

Plaud — это не только приложение для расшифровки аудио. Я давно пользуюсь его физическим устройством: им удобно записывать обычные живые встречи, разговоры и мысли на ходу. А приложение Plaud для Mac умеет записывать видеозвонки, поэтому один и тот же сервис закрывает для меня почти все разговорные форматы.

Мне нравится, что после записи в одном месте остаются аудио, полная расшифровка и несколько вариантов саммари. В итоге Plaud стал моим основным хранилищем аудиозаписей и транскриптов. Но для дальнейшей работы мне нужен Notion: там записи связываются с проектами, задачами, клиентами и другими материалами.

Поэтому ещё в начале марта 2026 года я собрал автоматическую передачу записей из Plaud в Notion. Примерно через неделю, 8 марта, вышла первая статья об этой интеграции. То есть к моменту поломки процесс проработал около пяти месяцев, а не несколько лет.

Как работала первая версия

На тот момент у Plaud не было удобного официального способа получить личные записи программно. Поэтому интеграция использовала неофициальный API: я входил в web.plaud.ai, брал авторизационный токен из браузера, а сервер с его помощью получал новые записи, транскрипты и саммари.

Это было хрупкое решение, но оно решало реальную задачу. Каждая запись попадала в Notion, полная расшифровка сохранялась отдельно, варианты саммари связывались с исходным материалом, а повторный запуск не создавал дублей. Я подробно описал этот способ в практическом руководстве по неофициальному API Plaud.

Важно понимать: неофициальная интеграция не была ошибкой. Она появилась в тот момент, когда официального пути для моей задачи ещё не существовало, и несколько месяцев нормально делала свою работу. Просто у таких решений есть срок жизни: сервис может поменять внутренние запросы, формат данных или авторизацию без предупреждения.

За пять месяцев Plaud сильно изменился

За это время Plaud активно развивал свою экосистему. Появились официальный MCP и CLI, а авторизация стала проходить через нормальный вход в аккаунт с автоматическим обновлением доступа. Больше не нужно вручную доставать токен из браузера и надеяться, что внутренний API останется прежним.

Когда старая синхронизация остановилась, у меня уже был выбор: снова исследовать закрытые внутренние запросы Plaud или перейти на поддерживаемый самим сервисом способ. Я выбрал второй вариант. Он требовал обновить существующий код, зато убирал главную слабость старой схемы.

Переход от браузерного токена к официальной авторизации Plaud
Переход от браузерного токена к официальной авторизации Plaud

Как я разбирал поломку вместе с Codex

Сначала мы ничего не меняли. Codex нашёл репозиторий интеграции, проверил историю запусков, состояние сервера и структуру базы Notion. Затем отдельно посмотрел, доступен ли официальный Plaud MCP на том же сервере, как работает вход без графического интерфейса, возвращаются ли все записи с учётом постраничной загрузки и можно ли получать не только транскрипт, но и каждый вариант саммари.

Для меня это была принципиальная проверка. В Plaud одна запись может иметь несколько вариантов обработки, и они полезны по-разному. Короткие тезисы, подробный разбор и структурированный конспект нельзя незаметно склеить в один Markdown-блок и назвать задачу выполненной.

Проверка показала, что официальный способ подходит. После этого Codex подготовил ограниченный пробный запуск: существующая база и история синхронизации сохранялись, новая версия должна была сначала обработать несколько записей и доказать, что не создаёт дублей и не теряет варианты.

Обновление без потери данных

За время простоя в Plaud накопились новые записи. Их нужно было дозагрузить в Notion, но не повторно создать уже существующие материалы. Поэтому синхронизация сравнивает идентификатор исходной записи Plaud и идентичность каждого конкретного варианта обработки.

Перед полной дозагрузкой я провёл небольшой пробный запуск. После проверки записи стали обрабатываться ограниченными порциями: процесс запускается каждые 15 минут и берёт не больше нескольких файлов за один цикл. Первые 14 записей, накопившихся после остановки старой интеграции, прошли сверку без дублей.

Теперь для каждой записи сохраняется полный транскрипт и все доступные варианты саммари. Каждый вариант остаётся отдельным материалом со своим типом и идентификатором, но сохраняет связь с исходным Plaud File ID. Если Plaud не возвращает конкретный вариант, это отмечается явно — данные не исчезают молча.

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

Генеральная уборка в Notion

Старая база создавалась под неофициальный API, поэтому со временем в ней накопились технические поля, которые были нужны интеграции, но не человеку. После перехода мы пересмотрели схему и убрали то, что больше не участвует в работе.

При этом полезная логика сохранилась: исходная запись остаётся родительским материалом, транскрипт и разные саммари — связанными дочерними элементами. Благодаря этому база стала проще для просмотра, но не потеряла информацию, необходимую для дедупликации и повторной проверки.

Как всё работает сейчас

Раз в 15 минут сервер запускает синхронизацию и через официальный Plaud MCP запрашивает новые или ещё не проверенные записи. Для каждой записи он получает метаданные, полный транскрипт и список всех доступных вариантов саммари.

Дальше процесс сверяется с сохранённым состоянием. Если материал уже есть в Notion, он не создаётся повторно. Если появился новый вариант саммари, добавляется только он. После записи интеграция читает созданные страницы обратно и проверяет, что в Notion действительно оказались нужные свойства, связи и содержимое.

Мне больше не нужно обновлять браузерный токен вручную. Авторизация работает официальным способом, служебный таймер следит за регулярным запуском, а проверка состояния позволяет быстро увидеть, если Plaud или Notion перестали отвечать как ожидается.

Что в этой истории сделал Codex

Codex здесь был не просто помощником, который написал новый кусок кода. Он восстановил картину старого процесса, нашёл точку отказа, сравнил неофициальный и официальный способы, проверил полноту данных, подготовил безопасную миграцию и только после пробного запуска включил новую версию.

Отдельно важна проверка результата. Недостаточно получить успешный ответ от API или увидеть зелёный статус службы. Нужно открыть итог в Notion и убедиться, что у конкретной записи есть транскрипт, все варианты саммари, правильные связи и нет дублей. Именно на таком чтении результата обратно мы и закончили обновление.

Временные решения тоже бывают полезны

Я не считаю старую интеграцию неудачной. Она появилась раньше официальных инструментов и почти пять месяцев приносила пользу. Благодаря ей у меня сформировались требования к новой версии: я уже точно знал, какие данные нужны, как должны выглядеть связи и где особенно опасна потеря информации.

Но когда у сервиса появляется официальный MCP, продолжать держаться за браузерный токен только потому, что он когда-то работал, нет смысла. Хорошая автоматизация должна не только выполнять задачу сегодня, но и позволять спокойно заменить временный способ на устойчивый, когда экосистема к этому готова.

Сейчас Plaud снова автоматически пополняет мою базу Notion. Только теперь это не обходной путь через внутренний API, а официальный процесс, в котором сохраняются транскрипты, все варианты саммари и история уже загруженных материалов.


Следующий шаг

Если хотите посмотреть, что официальный Plaud MCP позволяет делать с разговором уже после синхронизации, прочитайте статью «Plaud MCP: разговор сразу становится проектом».

Связанные материалы

Если у вас тоже есть полезная, но хрупкая интеграция, такой разбор поможет понять, что стоит сохранить и когда пора переходить на официальный способ.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov