@reachpad/mcp
Official@reachpad/mcp
reachpad позволяет Claude, Codex и другим агентам кодинга создавать полнофункциональные приложения в постоянных рабочих пространствах и делиться ими по ссылке, без отдельного развертывания. Рабочее пространство — это облачный компьютер разработки, которым агент управляет сам: репозиторий, файловая система, установленные зависимости и состояние сборки, которые сохраняются между вызовами, а не эфемерная песочница, которая всё забывает. Исключение — процессы; см. ниже.
Это MCP-сервер. Он позволяет Claude, ChatGPT, Cursor, OpenCode или вашему собственному агенту создать среду, выполнять в ней команды, форкать её и возвращаться к ней позже, без необходимости держать ноутбук открытым для разработчика.
Он сохраняет состояние. Приостановите его — и диск запечатывается; следующий вызов загружается из этого слепка с файлами, установками и состоянием git, а не пересобирается. Исключение — процессы: запуск всегда означает холодную загрузку.
Он форкается. Двадцать попыток из одного подготовленного состояния стоят по дельте каждая, а не двадцать пересборок — потому что среда — это цепочка снапшотов, а не машина.
Он может не допускать секреты наружу из коробки. Брокеризованный credential вызывается на границе от вашего имени, и его значение никогда не попадает в среду, лог или хранилище. Credential, записанный в среду, наоборот, читается там — это задумано.
Он не зависит от агента. REST API является каноническим; этот сервер, SDK и CLI — его реализации. Принесите своего агента.
API — это граница продукта, а не веб-интерфейс: reachpad.dev.
Установка
npx -y @reachpad/mcp # stdio, for a local clientВ Claude Code:
claude mcp add reachpad -e REACHPAD_IDENTITY_CREDENTIAL=… -- npx -y @reachpad/mcpRelated MCP server: Nolane Habitat
Два транспорта, одна реализация
npx @reachpad/mcp # stdio
REACHPAD_MCP_HTTP_PORT=8722 npx @reachpad/mcp # streamable httpstdio — это то, с чем общается локальный клиент; Streamable HTTP — то, с чем общается удалённый коннектор. Те же инструменты, то же поведение — добавлено, а не разветвлено, потому что две реализации одной поверхности — это путь к расхождению.
HTTP-сторона отвечает 405 на GET: каждый инструмент здесь — запрос/ответ, и спецификация позволяет отклонять поток, инициированный сервером, а не держать соединение открытым для трафика, который никогда не придёт. Сессий нет — ничего не хранится между вызовами, что нельзя было бы пересоздать при перезапуске. И он не несёт собственных учётных данных: то, что авторизует HTTP-запрос, авторизует и reachpad.
Конфигурация
переменная | значение |
| ваш хост reachpad. Обычный |
| ваш персональный credential. Он называет одну учётную запись и не может действовать от имени другой — сервер берёт идентичность из собственной записи credential, а не из запроса. |
| необязательный, ограниченный средой и отзываемый. Если задан, |
| обслуживать HTTP вместо stdio. |
| по умолчанию |
| bearer-токен, сравнивается за постоянное время. Если отсутствует, любой вызывающий, который может достичь порта, авторизован, и сервер сообщает об этом в stderr. |
| разделённый запятыми список. Запрос с |
Если задано несколько учётных данных, побеждает самый узкий, и отказанный credential никогда не повторяется с более широким — откат был бы эскалацией привилегий, которую никто не выбирал.
Инструменты
инструмент | что делает |
| оставшиеся вычислительные кредиты. Один кредит запускает одну стандартную среду на одну минуту. |
| новая среда, опционально с репозиторием, клонированным в |
| ваши среды и сколько форков у каждой |
| с чего она загружается: её головной снапшот, позиция лога и дерево форков |
| одна команда, её код выхода и вывод. Приостановленная среда возобновляется для её выполнения. |
| форк от последнего запечатанного снапшота; оригинал не затрагивается |
| открыть порт в веб и получить ссылку, которая до него достаёт. Идемпотентно для каждого порта. |
| порты, открытые в этой среде, от старых к новым, с их ссылками |
| закрыть один порт. Повторное открытие позже создаёт другую ссылку. |
| архивировать её и освободить слот плана. Ничего не удаляется — снапшоты и история сохраняются. |
Здесь намеренно нет: запуска агента внутри среды. Это в дорожной карте reachpad, но ещё не в парке — инструмент, который всегда падает, стоит модели хода и учит её не доверять остальным, поэтому этот сервер не рекламирует то, что не может выполнить.
Что такое ссылка на порт и чем она не является
Стоит прочитать, прежде чем передавать её кому-то, потому что ничего из этого не видно из URL:
Любой, кто вошёл в Reachpad и имеет ссылку, может открыть её. Это не приватный URL и не защищённый. Относитесь к ней как к превью-развёртыванию.
Ссылка — это адрес, а не копия. Перезапустите приложение на том же порту — и та же ссылка будет обслуживать новую версию.
Запущенный процесс не переживает паузу. Среда холодно загружается с файлами, но без запущенных процессов, поэтому после паузы ссылка отвечает ошибкой, пока на этом порту снова не появится слушатель. Запрос посетителя пробуждает приостановленную среду; он не перезапускает ничего внутри неё.
expose_portпосле этого проверяет порт и сообщает, если никто не ответил, потому что ссылка на порт, который ничего не обслуживает, выглядит точно так же, как рабочая ссылка. Передайтеcheck: false, чтобы пропустить проверку — проверка возобновляет приостановленную среду.Только с
REACHPAD_API_KEYключ должен быть--role owner. Ключcollaboratorотклоняется: список выдаёт живые токены, а токен — это возможность.
Правила, по которым он построен
Вот как наивный клиент потокового exec API вводит модель в заблуждение, и что этот сервер делает вместо этого.
Незавершённый поток — это UNKNOWN, никогда не успех. Если ответ заканчивается без терминального события, инструмент говорит об этом именно этими словами. Это не нулевой код выхода, и агент не должен повторять неидемпотентную команду на этом основании.
Его дедлайн мягче, чем у сервера, поэтому ответ сервера всегда выигрывает гонку. Клиент, который сдаётся первым, превращает «ваша сборка завершена» в «неизвестно», и числа зеркалируются с сервера, а не угадываются.
Отказы несут remedies, а не коды. При достижении лимита плана вы получаете лимит, текущее количество и что делать — числа приходят с сервера, потому что лимит, захардкоженный в клиенте, — это ложь, как только ваш план меняется.
Результаты — это дескрипторы, а не полезные нагрузки. Вывод обрезается с указанием количества отброшенных байт. Логи сборки могут быть мегабайтами, и результат MCP такого размера уничтожает контекстное окно вызывающего.
Отказ — это результат, а не ошибка транспорта, чтобы модель могла прочитать его и действовать. Только неизвестный инструмент — это ошибка протокола.
Тест
node --test 'test/*.test.mjs'Без сети и без учётных данных. Набор протокольных тестов запускает поставляемый сервер как дочерний процесс и общается с ним по реальному JSON-RPC через его stdio, используя заглушку control plane на реальном сокете, так что ничто под тестом не является внутренним импортом. Один тест выполняет тот же сценарий против реального reachpad и пропускается, если конечная точка не настроена.
Репозиторий
Этот репозиторий — исходный код. Он намеренно отделён от бэкенда reachpad: этот код публичен, он публикуется в npm, и его процесс выпуска владеет правами на публикацию — ничего из этого не должно находиться в том же репозитории, что и control plane. Ничто здесь не может читать исходный код бэкенда, и ни одна задача в бэкенде не копирует файлы сюда.
Две серверные константы зеркалируются в src/client.js — льготный период exec и таймаут exec по умолчанию. Зеркалированная константа обычно гниёт; эта не гниёт, потому что собственный CI бэкенда загружает этот опубликованный пакет и падает, если они расходятся. Проверка находится там, где число могло бы измениться.
Maintenance
Related MCP Connectors
Create and drive plori cloud agents and workflows over MCP; each agent has its own environment.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Hosted MCP memory and agent control plane for durable conversations, jobs, and operations.
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceProvides MCP tools for managing disposable Docker sandboxes that let AI agents safely execute commands in isolated, ephemeral environments.

Nolane Habitatofficial
FlicenseNot gradedqualityBmaintenanceProvides coding agents with a durable, revision-aware project workspace for semantic context, governed source changes, verification, task checkpoints, and observability through an MCP interface.1- AlicenseNot gradedqualityBmaintenanceA durable MCP control plane for starting, observing, steering, continuing, cancelling, and handing off long-running coding agents, with bounded MCP calls and persistent worktrees.235MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to securely operate isolated coding workspaces with file, command, Git, and deployment tools via authenticated remote MCP.8MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Reachpad/reachpad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server