본문으로 건너뛰기

Code Mode MCP: AI 에이전트에게 수천 개의 API를 효율적으로 제공하는 방법

Code Mode MCP. Give Your AI Agent an Entire API in… | by Obie Fernandez | ZAR Engineering | Feb, 2026 | Medium

작성자
Ruby AI News
발행일
2026년 02월 22일
https://medium.com/zar-engineering/code-mode-mcp-ac17c2a1038b

핵심 요약

  • 1 MCP 환경에서 수십 개의 도구 정의를 모두 컨텍스트에 로드하는 대신, 검색과 실행을 위한 단 두 개의 메타 도구만 노출하여 토큰 소모를 획기적으로 줄일 수 있습니다.
  • 2 Ruby의 BasicObject를 활용한 샌드박스 환경을 구축하여 AI가 직접 코드를 작성하고 실행하게 함으로써 복잡한 워크플로우를 단일 라운드 트립으로 처리할 수 있습니다.
  • 3 정규식 기반의 가드와 LLM(Gemini)을 이용한 사전 스캔 단계를 결합하여 보안성을 확보하면서도 AI 개발의 유연성과 성능을 극대화하는 실무적인 접근법을 제시합니다.

도입

최근 AI 에이전트 개발에서 MCP(Model Context Protocol)는 도구 호출의 표준으로 자리 잡고 있습니다. 하지만 도구의 개수가 늘어날수록 JSON 스키마 정의가 차지하는 컨텍스트 윈도우 비중이 커져 비용과 성능 문제가 발생합니다. 본 글에서는 수십 개의 도구를 일일이 정의하는 대신, AI가 직접 코드를 실행하여 도구를 검색하고 호출하는 'Code Mode' 패턴을 Ruby와 ActionMCP를 통해 구현하는 혁신적인 방법을 소개합니다.

기존 MCP 방식의 한계와 토큰 낭비 문제

MCP(Model Context Protocol)는 AI 모델이 외부 도구를 호출할 수 있게 해주는 훌륭한 규격이지만, 도구의 개수가 많아질수록 치명적인 문제에 직면합니다. 각 도구는 이름, 설명, 복잡한 JSON 스키마를 포함하며, 이는 모델의 컨텍스트 윈도우를 대량으로 점유합니다. 예를 들어, 42개의 도구를 가진 시스템에서는 유용한 작업을 시작하기도 전에 약 18,000개의 토큰이 소모됩니다. Cloudflare와 같은 대규모 시스템에서는 수백만 토큰이 낭비될 수 있는 심각한 비효율성이 발생합니다. 모델은 이 방대한 스키마를 모두 이해하고 적절한 도구를 선택해야 하므로 추론 비용이 증가하고 정확도가 떨어질 위험이 있습니다. 또한, 도구가 많아질수록 모델이 잘못된 도구를 선택하거나 인자를 혼동할 가능성도 높아집니다.

Code Mode의 핵심 개념: 두 개의 도구로 모든 기능 제어

이러한 문제를 해결하기 위해 제시된 ‘Code Mode’는 수십 개의 도구 정의를 단 두 개의 메타 도구로 대체합니다.

  • code_search: AI가 Ruby 코드를 작성하여 전체 도구 카탈로그를 필터링하고 탐색할 수 있는 읽기 전용 샌드박스를 제공합니다.
  • code_execute: AI가 직접 Ruby 코드를 실행하여 필요한 도구들을 호출(call_tool)하고, 결과를 가공하며, 여러 도구 호출을 하나의 워크플로우로 묶어 실행할 수 있게 합니다.

이 방식의 핵심 통찰은 최신 LLM들이 거대한 JSON 스키마를 탐색하는 것보다 코드를 작성하는 능력이 훨씬 뛰어나다는 점에 있습니다. 프로그래밍 환경을 제공함으로써 AI는 스스로 최적의 경로를 찾아내고 복잡한 로직을 서버 측에서 한 번에 처리하도록 유도합니다.

Ruby를 이용한 안전한 샌드박스 구현 전략

Ruby의 BasicObject는 최소한의 메서드만 가진 ‘클린 룸’ 환경을 제공하여 안전한 코드 실행의 기반이 됩니다. Kernel, File, Dir 등 시스템 접근이 가능한 모듈을 차단하고, 정규식을 이용해 eval, system, require와 같은 위험한 패턴을 사전에 필터링합니다. 또한 실행 시간 제한(Timeout)을 설정하여 무한 루프와 같은 자원 고갈 공격을 방지합니다. SearchSandbox는 도구 레지스트리에 접근할 수 있게 하고, ExecuteSandbox는 사용자 컨텍스트를 유지하면서 실제 도구 호출을 수행할 수 있도록 설계되었습니다. 이러한 다중 계층 보안 설계는 AI가 생성한 코드가 시스템에 해를 끼치지 않도록 보장하면서도 개발에 필요한 유연성을 제공합니다.

LLM 기반 보안 스캔 및 프로필 기반 라우팅

단순한 정규식 필터링을 넘어, Google의 Gemini 3 Flash 모델을 활용한 사전 보안 스캔 단계를 추가합니다. AI가 제출된 코드를 실행하기 전에 해당 코드가 안전한지(SAFE) 아니면 위험한지(UNSAFE)를 판단하게 함으로써 의미론적인 보안 계층을 구축합니다. 또한 Rack 미들웨어를 사용하여 기존의 일반 MCP 엔드포인트와 Code Mode 엔드포인트를 분리하고, 설정 파일(mcp.yml)을 통해 노출할 도구를 프로필별로 관리합니다. 이를 통해 기존 시스템과의 호환성을 유지하면서도 새로운 효율적인 인터페이스를 동시에 제공할 수 있습니다. 이는 개발자가 점진적으로 시스템을 전환하거나 특정 클라이언트에게만 최적화된 모드를 제공할 수 있게 합니다.

실무 적용 사례 및 성능 향상 결과

실제 적용 사례에서, 20개의 항목을 업데이트해야 하는 작업의 경우 기존 방식으로는 21번의 라운드 트립(목록 조회 1회 + 업데이트 20회)이 필요했습니다. 각 라운드 트립마다 모델은 결과를 분석하고 다음 행동을 결정해야 하므로 지연 시간과 비용이 누적됩니다. 하지만 Code Mode를 사용하면 AI가 반복문을 포함한 단일 Ruby 코드를 작성하여 한 번의 호출로 모든 작업을 완료할 수 있습니다. 이는 응답 속도를 비약적으로 향상시킬 뿐만 아니라, 각 단계마다 모델이 다시 추론해야 하는 부담을 없애주어 전체적인 작업 성공률을 높입니다. 도구가 20개 이상이거나 복잡한 연쇄 작업이 빈번한 시스템에서 Code Mode는 단순한 최적화를 넘어 필수적인 아키텍처 선택이 됩니다.

결론

결론적으로 Code Mode MCP는 대규모 API를 다루는 AI 에이전트의 효율성을 극대화하는 강력한 패턴입니다. 수십 번의 추론 단계를 단일 코드 실행으로 압축함으로써 비용 절감과 응답 속도 향상을 동시에 달성할 수 있습니다. 특히 Ruby의 유연한 메타프로그래밍 특성은 이러한 샌드박스 환경을 구축하는 데 최적이며, 도구가 20개 이상인 시스템이라면 반드시 고려해야 할 아키텍처적 진화라고 할 수 있습니다.

댓글0

댓글 작성

댓글 삭제 시 비밀번호가 필요합니다.

이미 계정이 있으신가요? 로그인 후 댓글을 작성하세요.

0/1000
정중하고 건설적인 댓글을 작성해 주세요.