본문 바로가기
Claude

[Claude] MCP - 토큰 최적화 및 지능형 리소스 활용

by coding_whale 2026. 4. 20.
반응형

많은 수의 MCP 서버를 운영할 때 발생하는 성능 저하와 컨텍스트 창 낭비를 막기 위한 최적화 기술이다.

1. Tool Search (지능형 도구 검색)

모든 도구의 스키마를 처음에 다 불러오지 않고, 작업에 필요할 때만 검색하여 로드하는 기술이다. (Sonnet 4/Opus 4 모델 이상 지원)

  • 환경 변수 ENABLE_TOOL_SEARCH 설정값:
    • unset (기본): 자동 모드. 프록시 환경에서는 꺼질 수 있다.
    • true: 항상 도구 검색 사용 (컨텍스트 창 절약 극대화)
    • auto: 도구 리스트가 전체 컨텍스트의 10%를 넘지 않으면 로드, 넘으면 검색 모드로 전환.
    • auto:N: 임계값을 N%로 사용자 정의 (예: auto:5)
    • false: 항상 모든 도구를 사전에 로드.
{
  "env": {
    "ENABLE_TOOL_SEARCH": "auto:5",
    "MAX_MCP_OUTPUT_TOKENS": "50000",
    "MCP_TIMEOUT": "10000"
  },
  "permissions": {
    "allow": ["ToolSearch"]
  }
}

 

2. 출력량 제한 및 토큰 제어

  • 경고 임계값: 도구 출력물이 10,000 토큰을 초과하면 경고가 표시된다.
  • MAX_MCP_OUTPUT_TOKENS: export MAX_MCP_OUTPUT_TOKENS=50000 (기본 25,000)으로 한도를 늘릴 수 있다.
  • 서버 측 힌트: 서버 개발자는 _meta["anthropic/maxResultSizeChars"]를 도구 리스트에 추가하여 텍스트 출력 임계값을 개별적으로 높일 수 있다 (최대 500,000자). 단, 이미지 데이터에는 적용되지 않는다.

 

3. 리소스(@)와 프롬프트(/) 활용

  • 리소스 (@ Mentions): 외부 파일이나 데이터를 직접 참조한다. fuzzy-search를 지원한다.
    • 예: Can you analyze @github:issue://123?
  • 프롬프트 (Commands): 서버가 정의한 복잡한 작업을 하나의 명령어로 실행한다.
    • 형식: /mcp__servername__promptname
    • 예: /mcp__github__pr_review 456 (PR 456번 리뷰 실행)

 

4. Elicitation (중간 요청) 및 채널

  • Elicitation: 작업 중 서버가 추가 입력(비밀번호, 폼 입력 등)을 요구하면 대화형 UI가 나타난다.
  • 채널: 서버가 비동기적으로 메시지를 세션에 밀어넣는 기능이다. --channels 플래그로 명시적 승인이 필요하다.
반응형