← 블로그로 돌아가기

Claude Desktop과 Rockxy MCP 서버 연결하기 — 3분이면 끝

· 6분 읽기

Rockxy 0.9.0에는 Model Context Protocol(MCP) 서버가 내장돼 있어요. 연결하기만 하면 Claude Desktop은 캡처된 HTTP 플로우를 읽고, 요청을 다시 보내고, 응답의 차분을 낼 수 있어요. curl 출력을 채팅창에 붙여넣을 필요가 없어요. 이 가이드에서는 3분이면 끝나는 설정 절차와, 연결 후 Claude가 트래픽에서 실제로 할 수 있는 일들을 소개해요.

Claude Desktop을 HTTP 트래픽에 연결하는 이유

HTTP 디버깅은 오랫동안 복붙의 문제였어요. 프록시에서 실패한 요청을 찾고, 헤더와 본문을 복사하고, 채팅창이나 문서에 붙여넣고, 그 주위에 사람이 읽을 수 있는 질문을 쓰고. 이 컨텍스트 스위칭이 시간을 잡아먹어요. 게다가 어시스턴트에게는 붙여넣은 범위만 보여요.

MCP는 이 구도를 뒤집어요. 복붙 대신 Claude에 프록시로 가는 직통 경로를 넘겨줘요. Claude는 list_flows를 호출해 필요한 플로우를 읽고, 실제 바이트를 보면서 추가 질문을 던져요. 실패한 요청은 더 이상 스크린샷이 아니라, 모델이 수정안을 낸 뒤 다시 실행해 볼 수 있는 도구 호출이 돼요.

두 가지를 이으면 디버깅 루프가 짧아져요. 눈앞에서 벌어지는 일을 평범한 한국어로 적으면, Claude는 말로 풀어쓴 요청이 아니라 진짜 요청을 읽어요. Claude가 수정을 제안하면, 그대로 변경된 요청을 리플레이해 검증할 수 있어요. 어시스턴트와 프록시가 같은 페이지에 있고, 그 페이지는 당신의 기기 위에 있어요. Mac 밖으로는 아무것도 나가지 않아요.

사전 준비

  • macOS 14 (Sonoma) 이상. Rockxy의 MCP 바이너리는 유니버설 빌드(Apple Silicon + Intel)예요.
  • MCP를 지원하는 Claude Desktop(2024년 말 이후 빌드면 지원해요).
  • Rockxy 0.9.0 이상. 그 이전 빌드에는 MCP 서버가 포함되어 있지 않아요.
  • 여유 5분. 실제 작업은 3분이면 충분하지만, 첫 실행 시 Gatekeeper 대화상자를 위해 여유를 두세요.

Step 1: Rockxy 설치

DMG을 rockxy.io/ko/download에서 받아 마운트하고 Rockxy.app/Applications로 드래그하세요. 한 번 실행해서 macOS가 신뢰하는 앱으로 등록되게 해요.

첫 실행 시 Gatekeeper 대화상자가 나타나요. Rockxy는 서명과 공증이 돼 있어서 "Rockxy 열기" 대화상자가 표시돼야 정상이에요. 만약 "확인할 수 없음" 대화상자가 뜨면 시스템 설정 → 개인정보 보호 및 보안을 열어 보안 섹션까지 스크롤한 뒤 그대로 열기를 클릭하세요.

Rockxy가 동작 중이면, MCP 바이너리는 다음 경로에 있어요.

/Applications/Rockxy.app/Contents/MacOS/rockxy-mcp

Step 3에서 이 경로를 그대로 쓰니 메모해 두세요.

Step 2: Rockxy에서 MCP 서버 활성화

Rockxy → 설정 → MCP을 열거나(또는 Cmd+,를 누르고 MCP 탭 클릭), Enable MCP Server를 켜 주세요.

Rockxy의 MCP 서버는 MCP 클라이언트가 필요할 때 생성하는 자식 프로세스로 동작해요. Claude Desktop과는 표준 입력·출력(stdio)으로 통신하므로 MCP 전송 자체는 네트워크 소켓이 아니에요. Rockxy는 stdio를 쓰지 않는 클라이언트를 위해 루프백 전용 로컬 HTTP 포트도 함께 제공해요. 어느 경로든 Mac 밖으로 나가지 않아요.

MCP를 켜면 Rockxy는 네 가지 도구를 노출해요: list_flows, get_flow_detail, replay_request, diff_flows. 각 도구는 현재 열린 세션 파일에 한정되므로, 어떤 세션을 여느냐에 따라 Claude에게 보여줄 범위를 고를 수 있어요.

각 도구를 간단히 설명할게요. list_flows는 선택적 필터(호스트, 메서드, 상태 코드, 시간 범위, 건수 상한)를 받아 플로우 요약 배열을 돌려줘요. get_flow_detail은 플로우 ID 하나를 받아 요청 전체(헤더, 본문), 응답 전체(헤더, 본문), 타이밍 분해(DNS, TCP, TLS, TTFB, 전송)를 반환해요. replay_request는 플로우 ID와 선택적 오버라이드를 받아 원래 호스트에 요청을 다시 보낸 뒤 새 플로우 ID를 돌려줘요. diff_flows는 두 플로우 ID를 받아 구조적 차분(경로, 헤더, 본문 필드)을 반환해요. 덕분에 Claude는 두 JSON을 눈으로 비교하지 않고도 변경점을 요약할 수 있어요.

Step 3: claude_desktop_config.json 편집

Claude Desktop은 MCP 설정을 단일 JSON 파일에서 읽어요.

~/Library/Application Support/Claude/claude_desktop_config.json

파일이 없으면 새로 만들어요. 이미 다른 MCP 서버가 등록돼 있다면 기존 mcpServers 객체에 Rockxy 블록을 추가해 주세요. Rockxy만 등록하는 최소 구성은 다음과 같아요.

{
  "mcpServers": {
    "rockxy": {
      "command": "/Applications/Rockxy.app/Contents/MacOS/rockxy-mcp",
      "args": []
    }
  }
}

파일을 저장하세요. 이 시점에서는 다시 불러오기가 필요 없어요. Claude Desktop은 실행 시에만 설정을 다시 읽어요.

Step 4: Claude Desktop 재시작

Cmd+Q로 Claude Desktop을 완전히 종료해요. 창만 닫으면 충분하지 않아요 — 앱이 백그라운드에 남아 있어요. 백그라운드에서 동작 중인 프로세스는 설정을 다시 읽지 않아요. Launchpad나 Spotlight에서 다시 열어 주세요.

Claude Desktop이 실행되면 Rockxy MCP 프로세스를 자식 프로세스로 띄우고, stdio로 연결한 뒤, 도구 매니페스트를 읽어 들여요. Claude Desktop의 채팅 화면에 작은 플러그 아이콘이 보이면 MCP 서버가 연결됐다는 신호예요.

Step 5: 연결 확인

Claude Desktop에서 새 채팅을 열고 이렇게 보내 보세요.

Rockxy가 캡처한 최근 HTTP 플로우 5건을 목록으로 보여 줘.

기대 동작은 이래요. Claude는 list_flows 도구를 limit=5로 호출해요. 채팅에는 도구 호출 블록이(보통은 접힌 상태로) 표시돼요. 입출력 원본을 펼쳐 볼 수 있어요. 이어서 Claude가 플로우를 텍스트로 요약해 줘요. 메서드, 호스트, 경로, 상태 코드, 크기까지.

목록이 비었다면, 먼저 트래픽을 발생시켜 주세요. Rockxy의 시스템 프록시를 켜고, 브라우저 탭을 열어 새로고침하세요. 그런 다음 같은 질문을 다시 던지세요.

트러블슈팅

바이너리를 못 찾는 경우. Claude Desktop 로그에 command not found가 뜨거나 MCP 플러그가 켜지지 않으면 설정 파일의 경로를 다시 확인해 주세요. 정확한 경로는 항상 /Applications/Rockxy.app/Contents/MacOS/rockxy-mcp예요. Rockxy를 ~/Applications에 두었다면 그에 맞춰 경로를 조정하세요.

Rockxy 쪽에서 MCP가 꺼져 있는 경우. 설정에서 활성화하지 않으면 MCP 서버는 stdio를 받아도 mcp_disabled 오류를 돌려줘요. 스위치를 켠 뒤 Claude Desktop을 재시작하세요.

도구가 인식되지 않는 경우. 플러그는 켜져 있는데 Claude가 "그 도구를 가지고 있지 않다"고 답한다면, Claude Desktop의 개발자 콘솔(최근 빌드에서는 Cmd+Option+I)을 열어 주세요. claude_desktop_config.json의 JSON 파싱 오류가 대표적인 원인이에요. 빠진 콤마, 끝에 붙은 잉여 콤마, 문서 편집기에서 복사한 스마트 따옴표 등이 후보예요.

Claude가 트래픽으로 무엇을 할 수 있나

연결됐다면 다음 같은 프롬프트를 시도해 보세요.

  • "/api/auth로 보낸 최근 요청이 왜 실패했어?" — Claude는 list_flows를 호출하고, 호스트·경로로 좁히고, 401 상세를 가져온 뒤 WWW-Authenticate 헤더를 읽어 설명해 줘요.
  • "최근 GraphQL mutation 두 건 차분을 떠 줘." — Claude는 플로우를 목록화하고 mutation 두 건을 골라 diff_flows를 호출하고, 어떤 필드가 바뀌었는지 요약해 줘요.
  • "플로우 42를 Authorization 헤더 Bearer eyJ...로 리플레이해 줘." — Claude는 오버라이드를 지정해 replay_request를 호출하고, 새 응답을 읽고, 여전히 401인지 알려 줘요.
  • "이 세션에서 가장 느린 엔드포인트는?" — Claude는 플로우 목록을 훑고, 각 상세에서 타이밍 데이터를 뽑아 랭킹을 만들어 줘요.

MCP 서버의 도구 표면은 단 4개이고, 이는 의도된 설계예요. 표면이 좁을수록 모델이 다루기 쉬워지고, 명시적으로 허용한 작업 범위 안에 트래픽을 가둬 둘 수 있어요.

알아 두면 좋은 동작이 하나 있어요. 모든 도구 호출은 Claude Desktop 채팅 안에 접을 수 있는 블록으로 표시돼요. 블록을 펼치면 모델이 보낸 정확한 입력과 도구가 돌려준 정확한 출력을 볼 수 있어요. Claude가 지시대로 동작하는지 불안할 때, 여기서 답을 확인할 수 있어요. 프롬프트가 잘 안 먹힐 때의 디버깅에도 유용해요. list_flows를 올바른 호스트로 필터링하는지, get_flow_detail에 잘못된 플로우 ID를 넘기지는 않는지 눈으로 확인할 수 있어요.

다음 단계

연결이 끝나면 재미있는 건 프롬프트 설계예요. Stripe webhook 사례 연구 (영문)에서는 실제 디버깅 세션을 처음부터 끝까지 따라가요. 홈페이지의 MCP 섹션에는 최신 도구 레퍼런스가 있어요.

Rockxy는 AGPL-3.0 오픈소스이며 무료예요. MCP 서버의 소스는 앱 본체와 같은 저장소에 있으므로, 어느 어시스턴트에 연결하기 전에도 공개된 내용을 정확히 읽어볼 수 있어요.