MCP는 OpenClaw 게이트웨이와 실제 도구 사이의 허리입니다. 팀은 stdio(파이프 자식)와 Streamable HTTP(원격 세션)을 오갑니다. stdio는 EOF·stdin 정지, HTTP는 프록시·클라이언트 타임아웃 불일치로 408/504류가 납니다. 재현 모델·타임아웃 드릴·ENOENT 순서를 정리합니다. 경로·데몬은 2026 OpenClaw 원격 Mac 배포 실무: 설치 경로 대조, Docker와 로컬 상주, 흔한 오류와 워크플로 사례와 함께 보세요.
1. stdio와 Streamable HTTP: 프로덕션에서 달라지는 것
stdio는 동일 호스트에 둘 때 단순합니다 — TLS·리버스 프록시 없이 파이프로 자식을 정리하기 쉽고, 대신 게이트웨이의 사용자·환경·cwd를 그대로 물립니다. 런처 셸로 HOME·저장소 루트를 고정하는 패턴이 흔합니다. Streamable HTTP는 원격·인그레스·독립 헬스에 유리하고, 이중 타임아웃과 프록시 버퍼링(스트림이 멈춘 듯 보임)을 감수합니다. stdio는 OS 정체를 암시하고, HTTP는 토큰·mTLS를 엣지에 박아야 합니다.
2. 재현 가능한 도구 타임아웃 드릴
느린 도구(예: sleep 스텁)로 두 전송을 각각 호출하고 클라이언트·게이트웨이·서버 타임아웃을 적습니다. 가운데만 짧게 두어 요청 ID가 남은 결정적 실패를 만든 뒤, 실제로 터진 층만 넓히세요. 배포마다 드릴을 반복합니다. HTTP는 청크 끈 프록시 구성도 시험하고, stdio는 종료 시 SIGTERM과 고아 프로세스를 봅니다. 첫 도구 청크 전·후 중 어디서 끊겼는지 로그에 남기면 원인이 갈립니다.
3. ENOENT: 티켓 대부분을 닫는 다섯 가지
ENOENT는 서버 계정 기준 경로·실행 파일 부재입니다. (1) 절대/상대와 cwd, (2) 셸 PATH vs launchd PATH, (3) 컨테이너 마운트 vs Mac 네이티브, (4) 대소문자, (5) arm64/Rosetta 혼선입니다. argv·getcwd()를 한 번 로그에 남기세요. launchd 이슈는 2026 OpenClaw 게이트웨이 launchd 안정성 핸드북: doctor·status·로그 대조, 포트 점유와 이중 LaunchAgent 충돌 — 원격 상주 Mac 실무와 맞춥니다.
4. 전송 선택 워크시트
서버가 게이트웨이 재시작과 무관해야 하나요? 프록시가 SSE를 버퍼링하나요? Aqua·AppleScript가 필요하나요? 단일 OS 사용자로 stdio를 고정할 수 있나요, 아니면 HTTP 엣지 토큰이 필요하나요? 답이 전송을 고릅니다. 이유가 없으면 stdio에 머무는 편이 안전합니다.
5. 온콜 필드 체크리스트
- 실패한 trace id에 대해 타임아웃 세 값(클라이언트·게이트웨이·서버)을 수집합니다.
- HTTP면 엔드투엔드 chunked 인코딩과, 클라이언트에 가장 가까운 홉의 응답 버퍼링 해제를 확인합니다.
- stdio면 자식 stderr를 어딘가에 남깁니다 — 조용한 크래시는 타임아웃으로 위장합니다.
ENOENT면 argv·cwd·uid를 로그하고 같은 호스트의 정상 대화형 셸과 비교합니다.- 수정 후에는 반드시 느린 도구 드릴을 다시 돌려 다음 사고와 사과 비교할 수 있게 합니다.
MCP 게이트웨이에 조용한 Apple Silicon Mac mini가 여전히 맞는 이유
게이트웨이는 지연·로컬 I/O에 민감합니다. Mac mini(Apple Silicon)와 macOS는 NVMe·발열·launchd·코드사인을 한 묶음으로 설명하기 쉽고, Gatekeeper·SIP·FileVault로 무인 노드 설명이 단순해집니다.
Mac mini M4는 유휴 전력이 낮고 stdio 서버 여럿에도 통합 메모리가 여유롭습니다. 지금 기기를 알아보려면 Macstripe 홈 페이지에서 리전·대역폭·기종을 비교한 뒤 주문 흐름까지 이어 보세요.