본문 바로가기
Tech Notes

Remote MCP 연결 방식: 1) Legacy: HTTP+SSE

by miracle-tech 2026. 1. 13.
728x90
반응형

MCP 서버 아키텍처: Render + Vercel 조합으로 AI 플랫폼 연동하기

들어가며

MCP(Model Context Protocol) 서버를 만들었다면, 다음 단계는 Claude나 ChatGPT 같은 AI 플랫폼에 연결하는 것이다. 하지만 여기서 많은 개발자들이 혼란을 겪는다. "MCP 서버"와 "실제 비즈니스 로직을 처리하는 API 서버"는 다른 역할을 하기 때문이다.

이 글에서는 Render에 MCP 서버를, Vercel에 REST API를 배포한 실제 구조를 정리한다.


전체 아키텍처 개요

 
┌─────────────────┐      ┌─────────────────┐      ┌─────────────────┐
│   AI 클라이언트  │      │   MCP Server    │      │    REST API     │
│  (Claude/GPT)   │◄────►│    (Render)     │◄────►│    (Vercel)     │
│                 │ SSE  │   프로토콜 변환  │ HTTP │   비즈니스 로직  │
└─────────────────┘      └─────────────────┘      └─────────────────┘

각 컴포넌트의 역할

구분MCP                                                       Server (Render)                                 REST API (Vercel)

 

역할 AI 플랫폼과의 통신 프로토콜 처리 실제 기능 수행 (번역, 조회 등)
통신 방식 HTTP+SSE (MCP 프로토콜) 일반 REST API (JSON)
엔드포인트 /sse, /messages /api/translate, /api/xxx
상태 관리 세션 기반 연결 유지 Stateless
배포 이유 SSE 영구 연결 필요 → 서버 필요 Serverless로 충분
비용 Render Free tier Vercel Free tier

왜 서버를 분리했는가?

1. MCP 서버는 SSE 연결이 필수

HTTP+SSE 스펙(2024-11-05)은 클라이언트와 서버 간 영구 연결(persistent connection)을 요구한다. Vercel 같은 Serverless 환경은 요청-응답 후 즉시 종료되므로 SSE를 유지할 수 없다.

 

2. 비즈니스 로직은 Serverless가 효율적

번역 API나 데이터 조회 같은 작업은 요청이 올 때만 실행하면 된다. Vercel의 Edge Function으로 처리하면 cold start도 빠르고 비용도 절감된다.

 

3. 관심사의 분리

MCP 서버는 "AI 플랫폼과 어떻게 대화할 것인가"에만 집중하고, REST API는 "무엇을 할 것인가"에 집중한다. 이렇게 분리하면 MCP 스펙이 변경되어도 비즈니스 로직은 영향받지 않는다.


실제 통신 흐름

 
1. 사용자가 Claude에서 "이 자막 번역해줘" 요청

2. Claude → MCP Server (Render)
   GET /sse (SSE 연결 수립)
   POST /messages (도구 호출 요청)

3. MCP Server → REST API (Vercel)
   POST /api/translate
   Body: { "text": "...", "targetLang": "ko" }

4. REST API → MCP Server
   Response: { "translated": "..." }

5. MCP Server → Claude
   SSE 이벤트로 결과 전송

6. Claude가 사용자에게 번역 결과 표시

Render 설정

render.yaml 파일에 다음과 같이 기술해준다.

호출할 Rest API 의 값은 환경변수로 따로 등록해준다.

 

플랫폼별 MCP 서버 연결 설정

플랫폼연결 URL설정 위치
Claude https://your-app.onrender.com/sse Settings → MCP Servers
ChatGPT https://your-app.onrender.com/sse Actions → Add Action
PlayMCP https://your-app.onrender.com/sse 서버 등록 시 URL 입력

* PlayMCP 는 Streamable HTTP 을 사용하므로 다음 장에 기술한다.

 

 


MCP Server의 핵심 엔드포인트

엔드포인트메서드역할
/sse GET SSE 연결 수립, 서버→클라이언트 이벤트 스트림
/messages POST 클라이언트→서버 JSON-RPC 메시지 전송
/health GET 헬스체크 (선택사항)


마치며

MCP 서버를 만드는 것보다 실제로 배포하고 연결하는 과정이 더 까다로웠다. 특히 "왜 Vercel에 바로 올리면 안 되는지"를 이해하는 데 시간이 걸렸다.

핵심은 이것이다:

  • MCP Server = AI와 대화하는 "통역사"
  • REST API = 실제 일을 하는 "실무자"

이 두 역할을 분리하면 각각 최적의 플랫폼에 배포할 수 있고, 유지보수도 훨씬 수월해진다.

728x90