7 MCP 게이트웨이 버그: 세션 누수, 중단된 SSE, 게이트웨이 모드의 OAuth

해피 패스 데모 이후, 한 Reddit 사용자가 실제 클라이언트와 서버 사이에 MCP 게이트웨이를 배치했을 때 7가지 특정 버그를 겪었습니다. 수정 방법은 프롬프트 엔지니어링이 아니라 명시적인 세션 경계, 도구별 타임아웃, 멱등성, 구조화된 액션 로그, 게이트웨이 수준의 추적, 동시 도구 호출에 대한 테스트였습니다. 그 결과 병렬 도구 소요 시간이 크게 줄었지만, 더 큰 성과는 실패가 어디에 있는지 알게 된 점이었습니다.
실제로 중요했던 7가지 버그
- 클라이언트 간 세션 상태 누출 — 세션 간 공유 상태로 인한 데이터 오염.
- SSE 연결이 조용히 끊김 — 서버 전송 이벤트 연결이 끊어져도 오류가 표시되지 않음.
- 로컬 테스트에서는 잘 작동하던 OAuth 흐름이 게이트웨이 모드에서 실패 — 리디렉션 URI나 토큰 검증이 프록시 뒤에서 실패.
- 탐색 프로브가 오래된 서버 메타데이터 반환 — 캐시된 기능이 서버 업데이트를 반영하지 않음.
- SQLite 쓰기가 병렬 도구 호출을 차단 — 데이터베이스 잠금으로 인해 동시 요청이 직렬화됨.
- 재시도 로직이 도구의 부작용을 중복 실행 — 재시도가 쓰기나 API 호출과 같은 변경 작업을 다시 실행.
- 도구 지연 시간이 모델 호출 대신 게이트웨이 내에 숨겨짐 — 모니터링이 시간을 잘못된 계층에 귀속시킴.
해결책: 더 나은 프롬프트가 아닌 지루한 인프라
작성자가 각 버그에 접근한 방법:
- 명시적인 세션 경계 — 클라이언트별로 분리된 상태, 공유 객체 없음.
- 도구별 타임아웃 정책 — 개별 타임아웃으로 느린 도구가 다른 도구를 지연시키는 것을 방지.
- 가능한 경우 멱등성 — 중복 제거 키나 트랜잭션 동작으로 재시도를 안전하게 만듦.
- 구조화된 액션 로그 — 디버깅을 위한 모든 게이트웨이 액션의 상세하고 파싱 가능한 로그.
- 게이트웨이 수준 추적 — 계층 간 지연 시간을 정확하게 할당하기 위한 분산 추적.
- 동시 도구 호출에 대한 테스트 — 경합 조건을 발견하기 위해 병렬 요청을 발사하는 통합 테스트.
이것들은 프로덕션에서 MCP 게이트웨이를 운영하는 모든 사람을 위한 구체적이고 실용적인 패턴입니다. 게시물의 핵심 통찰력: 어려운 문제는 상태 격리, 조용한 실패, 그리고 관찰 가능성이며, 모델 프롬프트가 아닙니다.
📖 전체 출처 읽기: r/ClaudeAI
👀 See Also

클로드 코드는 모호한 지시가 아닌 구체적인 프롬프트가 필요합니다
한 개발자가 Claude Code가 모호한 지시보다 상세한 프롬프트로 더 나은 결과를 생성한다고 보고하며, 5개월 동안 40억 토큰을 사용한 경험을 인용했습니다.

$200 최대 요금제에서 Claude 속도 제한을 피하는 실용적인 전략
한 개발자가 SQLite 데이터베이스 쿼리, 컨텍스트 인계 시스템, 전략적 하드웨어 배포를 포함한 특정 기술을 통해 Claude의 $200 최대 요금제에서 한 달 이상 제한을 피한 방법을 공유합니다.

애매한 프롬프트가 모델보다 진짜 문제다 — 50회 테스트 결과 프롬프트 품질이 모델 선택보다 중요함
한 Reddit 사용자가 ChatGPT 4, Claude Sonnet, Gemini 1.5 Pro에 동일한 열 가지 프롬프트를 각각 다섯 번씩(총 150개 출력) 실행한 결과, 세 모델 모두 비슷하게 사용 가능하거나 비슷하게 평범한 결과를 생성했습니다. 결정적인 요소는 모델이 아니라 프롬프트의 구체성이었습니다.

3주간의 오픈클로우: 토큰 비용, 루프, 압축 — 현장에서 얻은 교훈
Opus로 하트비트 체크 토큰을 태우고, 에이전트 루프와 싸우고, 컨텍스트 압축으로 결정을 잃어버린 후, Reddit 사용자가 어렵게 얻은 해결책을 공유합니다: 간단한 작업에는 저렴한 모델을 사용하고, 안티루프 규칙을 작성하며, 결정 로그를 저장하세요.