Remote MCP는 편리하지만, 보안 설계가 없다면 위험합니다. 외부 도구를 에이전트가 직접 호출할 수 있게 만드는 순간, 권한 오남용, 프롬프트 인젝션, 과도한 데이터 조회, 무한 반복 호출 문제가 함께 따라옵니다.
Cloudflare 환경에서 Remote MCP를 다룰 때는 보안을 기능으로 생각하면 안 됩니다. 보안은 아키텍처의 일부여야 합니다. 이 글은 승인, 도구 제한, 네트워크 경계를 중심으로 실무적으로 정리합니다.
개요 #
Remote MCP 보안의 출발점은 “에이전트가 무엇을 할 수 있는가”가 아니라 “에이전트가 무엇을 못 하게 할 것인가”입니다.
- 도구를 전부 노출하지 않습니다.
- 세션별 승인 상태를 분리합니다.
- 네트워크 경계를 분명히 둡니다.
- 로그와 메트릭을 남겨 사후 분석이 가능해야 합니다.
Cloudflare Agents나 Durable Objects를 이미 쓰고 있다면, 이 보안 레이어를 얹는 것이 자연스럽습니다. 관련 배경은 Cloudflare Agents란 무엇인가: 2026년 상태 저장 AI 에이전트 실무 가이드와 OpenAI Remote MCP란 무엇인가: Responses API에서 외부 도구를 연결하는 실무 가이드를 함께 보면 좋습니다.
왜 주목받는가 #
Remote MCP 보안이 중요한 이유는 통합 속도가 빠르기 때문입니다.
- MCP 서버를 붙이는 데 걸리는 시간이 짧습니다.
- 짧은 시간에 도구 수가 급격히 늘어납니다.
- 도구가 늘어나면 통제가 늦어집니다.
즉, “쉽게 붙는 것”이 오히려 리스크가 됩니다. 그래서 처음부터 승인과 allowlist를 넣는 편이 낫습니다.
빠른 시작 #
가장 먼저 할 일은 세 가지입니다.
- 허용할 MCP 도구 목록을 적습니다.
- 민감한 도구는 승인 필요 상태로 둡니다.
- 세션별로 호출 이력을 저장합니다.
이 단계만 지켜도 사고 확률이 크게 내려갑니다. 특히 관리자 권한, 결제, 외부 전송, 파일 삭제 같은 동작은 기본 허용으로 두면 안 됩니다.
설계 포인트 #
보안 관점에서 Remote MCP는 아래처럼 나누는 것이 좋습니다.
- public tools: 검색, 읽기 전용 조회, 문서 수집
- guarded tools: 티켓 생성, 댓글 작성, 초안 저장
- sensitive tools: 결제, 삭제, 외부 전송, 운영 변경
Cloudflare 쪽에서는 각 세션을 Durable Objects 같은 상태 저장 레이어에 묶고, 승인 상태를 함께 저장하는 방식이 실용적입니다. 이렇게 해야 “한 번 승인한 세션”과 “새로운 요청”을 구분할 수 있습니다.
또한 외부 MCP 서버는 가능하면 서로 다른 trust zone으로 나누는 편이 좋습니다. 문서 검색용, 내부 시스템용, 운영용 도구를 한 서버에 몰아넣지 않는 것이 안전합니다. 이 설계는 Cloudflare MCPAgent란 무엇인가: Cloudflare Agents와 Remote MCP를 연결하는 실무 가이드와 이어집니다.
보안 체크리스트 #
- MCP 서버별로 도구 allowlist를 분리합니다.
- 승인 이력은 세션과 사용자 기준으로 저장합니다.
- 민감한 호출에는 수동 승인 단계를 둡니다.
- 토큰은 서버에서만 보관하고 클라이언트로 전달하지 않습니다.
- 로그에 비밀 값이 남지 않도록 마스킹합니다.
- 외부 MCP 응답은 신뢰하지 말고 검증합니다.
- 반복 호출과 무한 루프를 차단합니다.
- 네트워크 정책으로 MCP 서버 접근 대상을 제한합니다.
이 체크리스트는 보수적이지만 현실적입니다. 실무에서는 “편의성”보다 “사고를 막는 기본값”이 훨씬 중요합니다.
결론 #
Remote MCP를 Cloudflare에서 안전하게 쓰려면, 도구 접근을 기본 허용으로 두지 말아야 합니다. 승인, allowlist, 로그, trust zone 분리까지 한 세트로 생각해야 운영이 됩니다.
특히 에이전트가 직접 외부 시스템과 연결되는 순간부터는 보안이 옵션이 아닙니다. 적게 허용하고, 명확하게 기록하고, 필요할 때만 넓히는 방식이 가장 안정적입니다.