@reachpad/mcp
Official@reachpad/mcp
reachpad를 사용하면 Claude, Codex 및 기타 코딩 에이전트가 영구 워크스페이스에서 풀스택 앱을 빌드하고 별도의 배포 없이 링크로 공유할 수 있습니다. 워크스페이스는 에이전트가 스스로 운영하는 클라우드 개발 컴퓨터입니다. 즉, 호출 사이에 모두 유지되는 저장소, 파일 시스템, 설치된 종속성 및 빌드 상태를 갖춘 환경이지, 잊어버리는 임시 샌드박스가 아닙니다. 프로세스는 예외입니다. 아래를 참조하세요.
이것은 MCP 서버입니다. Claude, ChatGPT, Cursor, OpenCode 또는 자체 에이전트가 환경을 만들고, 그 안에서 명령을 실행하고, 포크하고, 나중에 다시 돌아올 수 있게 해줍니다. 개발자가 노트북을 켜두지 않아도 됩니다.
지속됩니다. 일시 중지하면 디스크가 봉인됩니다. 다음 호출은 재빌드하지 않고 파일, 설치 및 git 상태가 그대로 유지된 채 해당 봉인에서 부팅됩니다. 프로세스는 예외입니다. 시작은 항상 콜드 부팅입니다.
포크됩니다. 준비된 상태에서 스무 번 시도하면 스무 번의 재빌드가 아니라 각각 델타 비용만 발생합니다. 환경이 머신이 아니라 스냅샷 체인이기 때문입니다.
비밀을 상자 안에 보관할 수 있습니다. 중개된 자격 증명은 경계에서 사용자를 대신하여 호출되며 그 값은 환경, 로그 또는 저장소에 절대 들어가지 않습니다. 대신 환경에 기록된 자격 증명은 설계상 그곳에서 읽을 수 있습니다.
에이전트에 구애받지 않습니다. REST API가 표준이며, 이 서버, SDK 및 CLI는 그 번역본입니다. 자신의 에이전트를 가져오세요.
API는 웹 UI가 아니라 제품 경계입니다: reachpad.dev.
설치
npx -y @reachpad/mcp # stdio, for a local clientClaude 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 쪽은 GET에 405로 응답합니다. 여기의 모든 도구는 요청/응답 방식이며, 사양은 서버 시작 스트림을 거부하는 것을 허용합니다. 오지 않는 트래픽을 위해 연결을 열어두지 않기 위해서입니다. 세션은 없습니다 — 재시작으로 재구축할 수 없는 것을 호출 간에 보유하지 않습니다. 그리고 자체 자격 증명을 전달하지 않습니다. HTTP 요청을 승인하는 것이 reachpad를 승인하는 것입니다.
구성
변수 | 의미 |
| reachpad 호스트. 루프백이 아닌 주소에 대한 평문 |
| 사용자별 자격 증명. 하나의 계정을 지칭하며 다른 계정을 대신할 수 없습니다. 서버는 요청이 아닌 자격 증명 자체의 기록에서 ID를 가져옵니다. |
| 선택 사항, 환경별로 범위가 지정되고 취소 가능합니다. 설정하면 |
| stdio 대신 HTTP를 제공합니다. |
| 기본값 |
| 베어러 토큰, 상수 시간으로 비교됩니다. 없으면 포트에 도달할 수 있는 모든 호출자가 승인되며, 서버는 stderr에 이를 알립니다. |
| 쉼표로 구분. 목록에 없는 |
여러 자격 증명이 설정된 경우 가장 좁은 것이 우선하며, 거부된 자격 증명은 더 넓은 것으로 재시도되지 않습니다 — 폴백은 아무도 수행하지 않기로 선택한 권한 상승이기 때문입니다.
도구
도구 | 기능 |
| 남은 컴퓨팅 크레딧. 크레딧 1개는 표준 환경 1개를 1분 동안 실행합니다. |
| 새 환경. 선택적으로 |
| 사용자의 환경과 각각의 포크 수 |
| 부팅 기준: 헤드 스냅샷, 로그 위치, 포크 트리 |
| 하나의 명령, 종료 코드 및 출력. 일시 중지된 환경은 이를 처리하기 위해 재개됩니다. |
| 마지막으로 봉인된 스냅샷에서 포크합니다. 원본은 변경되지 않습니다. |
| 포트를 웹에 열고 해당 포트에 도달하는 링크를 얻습니다. 포트당 멱등적입니다. |
| 이 환경이 연 포트를 오래된 순서대로 링크와 함께 나열합니다. |
| 포트 하나를 닫습니다. 나중에 다시 열면 다른 링크가 생성됩니다. |
| 환경을 보관하고 플랜 슬롯을 해제합니다. 아무것도 삭제되지 않습니다. 스냅샷과 기록은 유지됩니다. |
의도적으로 여기에 없음: 환경 내에서 에이전트를 시작하는 것. 이는 reachpad의 로드맵에 있으며 아직 플릿에 없습니다. 항상 실패하는 도구는 모델에게 한 턴을 소모시키고 나머지를 불신하도록 가르치므로, 이 서버는 제공할 수 없는 것을 광고하지 않습니다.
포트 링크가 무엇이고 무엇이 아닌지
누군가에게 링크를 건네기 전에 읽을 가치가 있습니다. URL에서 전혀 알 수 없기 때문입니다:
링크가 있는 Reachpad에 로그인한 사람은 누구나 열 수 있습니다. 비공개 URL도 안전한 URL도 아닙니다. 미리보기 배포처럼 취급하세요.
링크는 주소이지 사본이 아닙니다. 같은 포트에서 앱을 다시 시작하면 같은 링크가 새 버전을 제공합니다.
실행 중인 프로세스는 일시 중지 후에도 유지되지 않습니다. 환경은 파일이 그대로 있고 아무것도 실행되지 않은 채 콜드 부팅되므로, 일시 중지 후에는 해당 포트에서 무언가가 수신 대기할 때까지 링크가 오류로 응답합니다. 방문자의 요청은 일시 중지된 환경을 깨우지만, 그 안에서 아무것도 다시 시작하지 않습니다.
expose_port는 이후 포트에 연결을 시도하고 아무것도 응답하지 않으면 알려줍니다. 아무것도 제공하지 않는 포트에 대한 링크는 작동하는 링크와 똑같이 보이기 때문입니다.check: false를 전달하여 건너뛸 수 있습니다. 연결은 일시 중지된 환경을 재개합니다.REACHPAD_API_KEY만 있는 경우 키는--role owner여야 합니다.collaborator키는 거부됩니다. 목록은 활성 토큰을 돌려주며, 토큰은 권한이기 때문입니다.
구축된 규칙
다음은 스트리밍 exec API의 순진한 클라이언트가 모델을 오도하는 방식과, 이 서버가 대신 하는 방식입니다.
종료되지 않은 스트림은 UNKNOWN이지 성공이 아닙니다. 응답이 종료 이벤트 없이 끝나면 도구는 그 단어로 말합니다. 0 종료가 아니며, 에이전트는 이를 근거로 비멱등 명령을 재시도해서는 안 됩니다.
서버보다 마감이 느슨합니다. 따라서 서버 측 응답이 항상 경쟁에서 이깁니다. 먼저 포기하는 클라이언트는 "빌드 완료"를 "알 수 없음"으로 바꾸며, 숫자는 추측이 아니라 서버에서 미러링됩니다.
거부에는 코드가 아닌 해결책이 포함됩니다. 플랜 한도에 도달하면 한도, 현재 수, 그리고 해야 할 일을 얻습니다. 숫자는 서버에서 오는데, 클라이언트에 하드코딩된 한도는 플랜이 바뀌는 순간 거짓말이 되기 때문입니다.
결과는 핸들이지 페이로드가 아닙니다. 출력은 삭제된 바이트 수를 명시하여 꼬리 부분만 제공됩니다. 빌드 로그는 수 메가바이트일 수 있으며, 그 크기의 MCP 결과는 호출자의 컨텍스트 창을 파괴합니다.
거부는 전송 오류가 아니라 결과입니다. 모델이 읽고 행동할 수 있기 때문입니다. 알 수 없는 도구만 프로토콜 오류입니다.
테스트
node --test 'test/*.test.mjs'네트워크도 자격 증명도 없습니다. 프로토콜 스위트는 제공된 서버를 자식 프로세스로 실행하고 실제 소켓의 스텁 제어 플레인에 대해 stdio를 통해 실제 JSON-RPC를 말하므로 테스트 중인 것은 내부 가져오기가 아닙니다. 하나의 테스트는 실제 reachpad에 대해 동일한 경로를 실행하며 엔드포인트가 구성되지 않으면 건너뜁니다.
저장소
이 저장소가 소스입니다. 의도적으로 reachpad 백엔드와 분리되어 있습니다. 이 코드는 공개이고 npm에 게시되며, 릴리스 워크플로는 게시 권한을 보유합니다. 이 중 어느 것도 제어 플레인과 같은 저장소에 속하지 않습니다. 여기 있는 어떤 것도 백엔드 소스를 읽을 수 없으며, 백엔드의 어떤 작업도 파일을 여기로 복사하지 않습니다.
두 개의 서버 상수가 src/client.js에 미러링되어 있습니다. 실행 유예 기간과 기본 실행 제한 시간입니다. 미러링된 상수는 일반적으로 썩지만, 이 상수는 그렇지 않습니다. 백엔드 자체 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