AI Briefing

MCP에서 코드 실행으로 더 효율적인 에이전트 만들기

·2025.11.04 00:00

코드 실행을 쓰면 MCP 도구를 필요한 만큼만 불러오고 중간 결과도 모델 밖에서 처리해 토큰을 크게 줄일 수 있다.

**Model Context Protocol(MCP)**은 AI 에이전트가 외부 시스템과 연결되는 표준이지만, 연결된 도구가 많아질수록 도구 정의와 중간 결과가 컨텍스트 윈도우를 빠르게 소모한다. 수백 개에서 수천 개의 MCP 서버를 다루는 환경에서는, 모든 도구를 한꺼번에 로드하고 각 결과를 모델이 다시 넘겨받는 방식이 비용과 지연의 핵심 병목이 된다.

가장 큰 문제는 두 가지다. 첫째, 도구 정의가 많아질수록 모델이 읽어야 할 토큰이 폭증한다. 둘째, 도구의 중간 결과가 다시 모델 컨텍스트를 거치면서 같은 데이터가 여러 번 오가게 된다.

예를 들어 Google Drive에서 회의록을 가져와 Salesforce에 적재하는 작업에서는, 모델이 문서 전체를 읽고 다시 그 내용을 Salesforce 호출에 넣어야 한다. 긴 문서나 대규모 데이터는 이 과정에서 50,000 토큰 수준의 추가 비용을 만들 수 있고, 경우에 따라 컨텍스트 한계를 넘어 작업이 실패할 수도 있다.

해법은 MCP 서버를 직접 툴 호출로 다루는 대신, 코드 실행 환경에서 API처럼 다루는 방식이다. 에이전트는 필요한 서버만 파일시스템에서 찾아 읽고, 실제 데이터 조작은 실행 환경 안에서 처리한 뒤, 결과만 모델에 돌려준다. 글은 TypeScript 예시로 servers/google-drive/getDocument.ts, servers/salesforce/updateRecord.ts 같은 파일 구조를 제시하며, 도구 탐색을 파일 목록 조회와 파일 열람으로 분리하는 방법을 설명한다.

이 접근의 핵심 효과는 다음과 같다.

  • 온디맨드 로딩: 전체 도구 목록을 한 번에 읽지 않고 필요한 정의만 불러온다.
  • 중간 결과 축소: 필터링, 집계, 조인 같은 처리를 코드에서 수행해 모델이 보는 데이터를 최소화한다.
  • 복잡한 제어 흐름 처리: 루프, 조건문, 재시도, 대기 로직을 자연스러운 코드로 작성할 수 있다.
  • 프라이버시 보호: 민감한 데이터가 기본적으로 실행 환경에 머물고, 모델에는 필요한 로그만 노출된다.
  • 상태 지속성: 파일 시스템에 중간 산출물을 저장해 작업을 이어서 수행할 수 있다.

특히 대용량 데이터에서 차이가 크다. 10,000행 스프레드시트를 직접 컨텍스트로 넘기는 대신 실행 환경에서 먼저 pending 주문만 걸러 모델에는 일부 행만 보여줄 수 있다. Slack 메시지를 기다리는 루프처럼, 기존 MCP 툴 체인보다 코드가 훨씬 안정적이고 표현력도 높다.

민감정보 처리도 같은 방식으로 개선된다. 스프레드시트의 이메일, 전화번호, 이름을 읽어 Salesforce에 넣는 작업에서, MCP 클라이언트가 PII를 자동 토큰화해 모델에는 마스킹된 값만 보이게 할 수 있다. 실제 값은 모델을 거치지 않고 MCP 클라이언트 내부에서만 전달되므로, 실수로 로그에 노출되거나 불필요하게 처리될 위험이 줄어든다.

또한 코드 실행은 에이전트의 skills와도 맞닿아 있다. 한 번 만든 유효한 로직을 함수나 파일로 저장해 재사용하면, 에이전트는 작업별로 축적된 도구를 점점 더 잘 활용할 수 있다. 이런 방식은 파일, 스크립트, 지침을 묶은 재사용 가능한 능력 단위로 확장되며, 에이전트의 실행 품질을 체계적으로 끌어올린다.

다만 대가도 있다. 에이전트가 생성한 코드를 안전하게 실행하려면 sandboxing, 자원 제한, 모니터링이 필요하고, 이는 직접 툴 호출보다 운영 복잡도를 높인다. 결국 코드 실행 with MCP는 토큰 절감, 낮은 지연, 더 나은 도구 조합 능력을 얻는 대신, 그에 맞는 실행 인프라를 갖출 수 있는지까지 함께 따져야 하는 접근이다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.