StayPut

Keenan Kaufman (Stayput) · официальный сервер

Агент склеивает, режет, поворачивает и нумерует PDF на твоём компьютере и чистит фото от места съёмки перед публикацией. Сами файлы сервер никуда не отправляет

На твоём компьютере·Без ключа·Бесплатно·9 инструментов·проверено 19.10.2026 на версии 0.1.0

Другие способы ↓Что можно сделать ↓

Перед установкой

Читает тексты посторонних: название документа из PDF и строки камеры и программы из фото: их пишет тот, кто сделал файл. В таком тексте могут прятаться команды для агента.

Осторожно в паре с подключениями, которые могут отправлять наружу.

Персональные данные клиентов могут уйти за границу. Если через подключение пойдут данные твоих клиентов, это передача за границу по 152-ФЗ: нужны согласие людей и уведомление Роскомнадзора.

Работа из России нестабильна (на 19.10.2026). Регистрация, ключ и оплата не нужны. 19 октября 2026 года архивы stayput-mcp 0.1.0 и модуля qpdf-wasm скачались из реестра npm с трёх российских узлов check-host.net, двух в Москве и одного в Санкт-Петербурге, за 0,26-0,41 секунды. Сервер в сеть не ходит, но запускали мы его в песочнице за границей, вызова из России не было, поэтому проверка неполная. Сверено 19.10.2026.

Что сможет агент

  • Склеивает PDF в нужном порядке: два тестовых счёта на 2 и 1 страницу сервер собрал в файл на 3 страницы за 37 мс, а защищённую выписку открыл по паролю из вызова.
  • Из тестового договора на 5 страниц по запросу «3,1,2» пришёл файл ровно с этими листами в таком порядке, а разрезка по две страницы дала три файла.
  • Номера страниц и поворот тоже на нём. С шаблоном «Page {n} of {total}» и нумерацией со второй страницы обложка осталась чистой, на остальных номер встал внизу по центру.
  • Перед публикацией фото можно проверить и почистить: у тестового снимка сервер нашёл место съёмки, камеру и время, а в чистой копии метаданных не осталось, картинка совпала с исходной до пикселя.
  • Картинки JPG и PNG собираются в один PDF: две наши легли на страницы A4 по центру с полями 36 пунктов. Исходные файлы после 20 вызовов первого прогона остались прежними. Без заданного пути результат ложится рядом с исходником, с заданным - туда, куда сказали, и тоже без перезаписи.
Кто сделал
Keenan Kaufman (Stayput)
Версия
0.1.0
Проверено
19.10.2026, Claude Code
Лицензия
MIT
Документация
stayput.dev/mcp

Подключить

Промпт собран из паспорта: команды в нём те же, что во вкладках Claude Code и Codex.

Промпт для агента
Подключи MCP-сервер «StayPut» версии 0.1.0. Работай по шагам и после каждого коротко говори, что сделал.

Данные сервера (каталог smyslokod.ru, проверено 19.10.2026):
- имя в конфиге: stayput
- официальный источник: https://github.com/keenanlk/stayput/tree/main/mcp
- запуск: npx -y stayput-mcp@0.1.0

Правила:
1. Не ставь Node.js, uv или Docker без моего «да». Не хватает - остановись и скажи, что поставить и откуда.
2. Ставь только пакет или адрес из этого промпта. Никаких установочных скриптов из README без моего подтверждения.
3. Перед правкой конфига сделай его резервную копию.

Шаги:
0. Определи, кто ты (Claude Code, Codex или другой агент) и какая у меня система.
1. Проверь окружение: node --version и npx --version (нужен Node.js 20 или новее). Скажи, что нашёл.
2. Проверь, нет ли уже сервера с таким именем: `claude mcp get stayput` (в Codex: `codex mcp list`).
3. Подключи сервер:
   Claude Code: claude mcp add --scope user --transport stdio stayput -- npx -y stayput-mcp@0.1.0
   Codex: codex mcp add stayput -- npx -y stayput-mcp@0.1.0
   Если ты не Claude Code и не Codex, подключи способом, принятым у тебя, с той же командой запуска.
4. Проверка: `claude mcp list` (в Codex: `codex mcp list`), статус должен быть «Connected». Попроси меня перезапустить сессию. У сервера 9 инструментов, перечисли их. Сделай пробный запрос: «Через stayput скажи, сколько страниц в файле ~/Downloads/dogovor.pdf и какого они размера». Покажи результат.
5. Итог одним сообщением: что добавлено и куда, статус, число инструментов, команда отката и откуда восстановить копию конфига. Откат: `claude mcp remove stayput --scope user` (в Codex: `codex mcp remove stayput`).

Если на любом шаге ошибка, не чини наугад. Покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/mcp/stayput#problemy
  • Выполнят Claude Code, Codex, Hermes и любой агент с доступом к терминалу.

Что нужно на компьютере: Node.js 20 или новее.

Ключ: не нужен.

Ключ и регистрация не нужны. Команда подключения: claude mcp add --scope user stayput -- npx -y stayput-mcp@0.1.0. Нужен Node.js 20 или новее, мы запускали на 22.23.3. Сам пакет занял на диске 60 КБ, вместе с зависимостями - 56 МБ. При запуске через npx были обращения к реестру npm, установленный пакет в сеть не ходил. Относительный путь сервер считает от папки, где его запустили, поэтому надёжнее давать агенту полный путь или путь вида ~/Downloads/файл.pdf. В схемах параметров стоит стандарт draft-07, схем ответа нет. Подключение в Claude Code 2.1.292 прошло со статусом Connected, в Claude Desktop сервер мы не запускали.

Проверь, что работает

Пробный запрос

Через stayput скажи, сколько страниц в файле ~/Downloads/dogovor.pdf и какого они размера

Что должно получиться: Задание просит агента узнать число и размер страниц, для этого у сервера есть pdf_info. Прямой вызов через mcp-probe на тестовом договоре вернул «5 pages, 66 KB. Page size: 595x842 pt.», то есть пять страниц A4. Как ответит сам агент Claude Code, мы не проверяли. Если вызова stayput нет, посмотри командой /mcp, подключён ли сервер.

Что можно сделать

4 сценария
Первая страница тестового договора после number_pdf_pages: вверху рамка с надписью Test contract - page 1 of 5, внизу по центру номер 1 / 5

Склеить счета в один PDF и пронумеровать страницы

Тестовые счета merge_pdfs склеил в один файл на 3 страницы, исходники остались как были. Шаблон «{n} / {total}» сервер напечатал внизу по центру всех пяти страниц тестового договора, от «1 / 5» до «5 / 5», картинка ниже - первая страница этого файла. Список счетов в папке собирает сам агент, на настоящей папке мы это не гоняли.

  1. Сначала merge_pdfs склеивает файлы в порядке списка, потом number_pdf_pages ставит номера на готовый файл, по умолчанию внизу по центру.
Промпт
Через stayput склей все PDF со счетами из папки ~/Downloads/scheta в один файл по порядку имён, потом пронумеруй страницы внизу по центру в виде «{n} / {total}». Исходные файлы не трогай, результат положи в ту же папку и скажи, сколько вышло страниц.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Номера пиши латиницей и цифрами, кириллицу сервер не печатает.
  • Совет. Если имя занято, сервер подберёт свободное, добавляя к нему -1, -2 и так далее, и ничего не перезапишет.

Убрать место съёмки из фото перед публикацией на сайте

inspect_image_metadata у тестового снимка ответил «GPS location: yes», назвал камеру TestCam Model X1 и время съёмки. strip_image_metadata записал копию с приставкой -clean, в ней метаданных не нашлось, пиксели совпали с исходником. Обойти все файлы папки агенту придётся самому, это мы не проверяли.

  1. Что лежит в снимке, видно из ответа inspect_image_metadata, а чистую копию рядом с исходником пишет strip_image_metadata.
Промпт
Через stayput проверь фото в папке ~/Pictures/dlya-sajta: в каких есть место съёмки, камера и время. Для каждого такого фото сделай чистую копию без метаданных рядом с исходным и пришли список, что было найдено.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Фото HEIC с iPhone сервер не чистит: сначала переведи их в JPG.
  • Совет. Цветовой профиль копия по умолчанию сохраняет, чтобы цвета не поменялись.

Вынуть нужные страницы из договора или разрезать скан

На тестовом договоре из 5 страниц pdf_info сказал «5 pages», extract_pdf_pages по «3,1,2» дал файл, где страницы стоят в этом порядке, а split_pdf с шагом 2 разложил документ на три файла в новой папке contract-split рядом с ним. Запрос на страницы 7-9 сервер отклонил и в ошибке написал, что в документе только 5 страниц.

  1. Число страниц узнаёт pdf_info.
  2. Нужные листы вынимает extract_pdf_pages, ему можно дать список или диапазон вроде «1-3, 7», а нарезать документ кусками по N страниц можно через split_pdf.
Промпт
Через stayput узнай, сколько страниц в файле ~/Documents/dogovor.pdf. Сделай отдельный PDF из страниц 3, 1 и 2 именно в таком порядке, а весь документ разрежь на части по 2 страницы в отдельную папку.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Чтобы удалить страницы, перечисли те, что надо оставить.

Собрать PDF из фото документов

images_to_pdf с page_size a4 и margin 36 ответил за 112 мс и записал PDF на 2 страницы: оба наших снимка были горизонтальные, сервер развернул листы A4 так же и поставил снимки по центру с полями. Когда в списке оказался файл PDF, он ответил ошибкой и посоветовал сайт stayput.dev.

Промпт
Через stayput собери снимки scan-1.png и scan-2.jpg из папки ~/Documents/skany в один PDF на листах A4 с полями 36 пунктов, по снимку на страницу, в том же порядке.

Бесплатно: почта или сразу Телеграм-канал клуба

  • Совет. Принимаются только JPG и PNG, HEIC и WebP сначала переведи.

Пример работы

редакция, прогон при проверке 19.10.2026
Задача
Склеить, разрезать и пронумеровать PDF и почистить фото без загрузки на чужие сайты
Промпт
Через stayput склей два счёта в один PDF, вынь из договора страницы 3, 1 и 2, пронумеруй договор со второй страницы и сделай копию фото без места съёмки
Что сделал агент
  1. В песочнице Ubuntu 24.04.5 сервер добавили командой claude mcp add, Claude Code 2.1.292 показал Connected.
  2. merge_pdfs собрал два тестовых счёта в файл на 3 страницы, extract_pdf_pages выдал страницы договора в порядке 3, 1, 2.
  3. number_pdf_pages оставил обложку без номера и напечатал «Page 1 of 4» ... «Page 4 of 4» на остальных, а на шаблоне по-русски отказал.
  4. strip_image_metadata сделал копию фото, где проверка уже не нашла ни GPS, ни камеры.
Результат
Через npx и mcp-probe прошли 3 вызова, нашим клиентом на SDK из установленного пакета - 23 вызова всех 9 инструментов в двух прогонах, 19 без ошибок за 3-747 мс. Исходные файлы не изменились, установленный пакет в сеть не ходил. Инструменты вызывали mcp-probe и наш клиент, агент Claude Code само задание не выполнял.

Инструменты

9 · описания около 2,3 тыс. токенов

Жёлтым то, что агент делает от твоего имени, красным запуск команд на компьютере. Нажми на имя: покажем, что делает инструмент, и описание, которое читает агент. В Claude Code инструменты грузятся по запросу и почти не занимают память агента; в других клиентах и при своём адресе подключения (ANTHROPIC_BASE_URL) описания грузятся целиком на каждом сообщении.

Когда не нужен

Сжать PDF, перевести его в картинки или подписать документ сервер не умеет. Фото HEIC с iPhone сервер не принимает ни для PDF, ни для чистки, и в JPG его тоже не переведёт. По описанию автора EXIF из HEIC он читает, этого мы не проверяли. За такими задачами автор отправляет на свой сайт stayput.dev, который работает в браузере. Текст из PDF он тоже не достаёт: pdf_info возвращает только число страниц, размер и название. Номера страниц по-русски напечатать не выйдет, потому что в шрифте сервера нет кириллицы.

Частые проблемы

7

Ошибка «WinAnsi cannot encode "С" (0x0421)» при нумерации страниц

number_pdf_pages печатает номера стандартным шрифтом Helvetica, в нём нет кириллицы. На шаблоне «Страница {n}» сервер ответил этой ошибкой и файла не записал. Пиши шаблон латиницей и цифрами: «{n}», «{n} / {total}» или «Page {n} of {total}».

В документе из 5 страниц с нумерацией со второй стоит «Page 1 of 4»

При first_page 2 и старте с единицы сервер считает только пронумерованные страницы: обложка пропущена, {total} стал 4. Для сквозной нумерации с учётом обложки попроси агента задать start 2: на прогоне с first_page 2 и start 2 страницы получили номера от «Page 2 of 5» до «Page 5 of 5».

Склеенный файл из защищённой выписки открывается без пароля

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

Агент не видит инструментов сервера

Клиент не перезапущен после подключения: Claude Code читает подключения при старте сессии. Закрой и открой сессию, потом проверь: claude mcp list.

«spawn npx ENOENT» при запуске

Клиент не видит npx: приложения с иконкой не читают PATH из настроек терминала. Пропиши полный путь к npx. Узнать его: which npx на Mac, where npx на Windows.

«Unsupported engine» или падение при старте

Старая версия Node.js. Нужна 20 или новее, проверить: node --version.

Codex: сервер не успевает запуститься

Codex ждёт запуска 10 секунд, а первый запуск npx скачивает пакет дольше. Во вкладке Codex уже стоит startup_timeout_sec = 30, возьми фрагмент оттуда.

Безопасность и данные

Кто сделал
Keenan Kaufman (Stayput) (официальный). Исходный код: github.com/keenanlk/stayput/tree/main/mcp, лицензия MIT.
Что видит агент
Файлы, пути к которым агент передаёт в вызове: PDF и фото, в том числе договоры, выписки и снимки с местом съёмки. Доступ сервер папкой проекта не ограничивает и откроет любой файл, доступный твоей учётной записи. Пароль от PDF приходит в аргументах вызова. Содержимое файлов сервер в сеть не отправляет. Ответы сервера с путями, именами файлов, числом страниц, названием документа, камерой и временем съёмки, как и аргументы вызовов вместе с паролем, получает модель агента, у Claude Code это Anthropic. Название документа и строки камеры и программы в фото пишет тот, кто сделал файл, сервер отдаёт их агенту как есть.
Куда уходят данные
Данные уходят: файлы остаются на диске, а ответы сервера и аргументы вызовов получает модель агента: у Claude Code это Anthropic, страна обработки не указана сервисом.
Что может изменить
pdf_info и inspect_image_metadata только читают. Остальные семь инструментов пишут новые файлы: PDF, папку с частями документа или чистую копию фото. Существующий файл сервер не перезаписывает: когда мы указали местом записи исходный счёт, он сохранил копию с «-1» в имени, а счёт остался прежним. Удалять файлы инструменты не умеют. Записать результат сервер может в любую папку, доступную твоей учётной записи, и сам создаёт недостающие: на прогоне он создал две новые папки вне папки проекта. Результат работы с защищённым PDF сервер пишет уже без пароля.
Наша проверка
Пакет stayput-mcp выпускает Keenan Kaufman, частный разработчик из США, автор браузерного сайта stayput.dev. Сайт ссылается на пакет, пакет - на сайт и на репозиторий keenanlk/stayput под MIT, в официальном реестре MCP сервер записан как io.github.keenanlk/stayput. Выпуск 0.1.0 от 29 сентября 2026 года пока единственный, у репозитория ноль звёзд, проект молодой. Установочных скриптов в package.json нет. Мы прочитали код 0.1.0: из модулей Node.js подключены файлы, пути, поиск папки пользователя для путей вида ~/ и загрузчик модуля qpdf-wasm, а сетевых запросов, запуска программ, eval и телеметрии в коде нет. Пароль снимает qpdf, собранный в WebAssembly, внутри процесса сервера. Пометки автора совпали с кодом: два инструмента читают, семь пишут, у нас они так и отмечены. Скрытых указаний нет, инструкция только просит отправлять человека на stayput.dev за форматами, которых в сервере нет. В одноразовой песочнице Ubuntu 24.04.5 на Node.js 22.23.3 прошли 3 вызова через npx, один из них - ожидаемый отказ без пароля, и в двух прогонах 23 вызова всех 9 инструментов нашим клиентом на SDK из установленного пакета. Из этих 23 без ошибок прошли 19, три отказа были ожидаемыми, а четвёртый - на кириллице в номерах страниц. Через npx были соединения только с реестром npm, установленный пакет не открыл ни одного. OSV по 99 пакетам дерева записей не нашёл, npm audit показал ноль уязвимостей. Версия в команде закреплена.
Версия
В командах закреплена версия 0.1.0: ставится ровно то, что мы проверили.
Проверить самому
агент прочитает код подключения как недоверенный

Полезные материалы

Журнал проверок

  • 19.10.2026·0.1.0·Claude Code, Linux·работает56460583d96055d3

Отпечаток - контрольная сумма того, что сервер отдаёт агенту. Поменялся при той же версии - поменялось поведение.

Подключения делают их авторы. Мы проверяем установку и описываем, что они умеют, но код и сервис остаются чужими. Перед установкой посмотри, какие данные получит агент.