피드로 돌아가기
Dev.toBackend
원문 읽기
stdio와 HTTPS 간 Transport 계층 불일치를 해결한 MCP Proxy 설계
Bridging IFTTT to Your Local AI Assistant with an MCP Proxy
AI 요약
Context
Local AI Assistant의 stdio 기반 JSON-RPC 통신 방식과 IFTTT MCP Server의 Streamable HTTP Transport 방식 간의 프로토콜 불일치 발생. 특정 AI 서비스(Claude, ChatGPT) 외의 로컬 클라이언트는 원격 MCP 서버에 직접 접근할 수 없는 제약 존재.
Technical Solution
- stdio-to-HTTPS 브릿지 역할을 수행하는 Node.js 기반 Proxy 서버 설계
- OAuth 2.1 및 PKCE 도입을 통한 클라이언트 시크릿 노출 없는 보안 인증 체계 구축
- Token 만료 60초 전 자동 갱신 로직을 구현하여 요청 도중 세션 끊김 방지
- HTTP 202 Accepted 응답 시 Content-Type을 검사하여 SSE(Server-Sent Events) 스트림을 감지하는 스트리밍 클라이언트 구현
- 원격 서버의 비표준 응답 구조(structuredContent)를 로컬 클라이언트 규격에 맞게 정규화하는 Transformation 레이어 적용
- 외부 의존성 없는 Zero-dependency 설계를 통해 런타임 오버헤드 최소화 및 이식성 확보
실천 포인트
- 원격 API 통합 시 HTTP 202 응답이 빈 본문을 의미하는지, SSE 스트림의 시작인지 Content-Type 헤더를 통해 반드시 검증 - 로컬 도구의 원격 인증 구현 시 보안성 향상을 위해 OAuth
2.1 PKCE 흐름 검토 - 토큰 기반 인증 시스템 설계 시 네트워크 지연 및 처리 시간을 고려한 버퍼 시간(Buffer Time) 설정