MCP 서버 LLM 호출 완전 추적

AI 에이전트 디버깅하다 도구 지연 90%가 추적 불가 LLM 호출에 숨어 있다고 상상해 보세요. MCP 서버에 이 패치가 적용되면서 개발자들이 진짜 관측성을 손에 쥐게 됐습니다.

MCP 서버가 LLM 호출까지 직접 추적… 에이전트 도구 사각지대 끝장 — theAIcatchup

Key Takeaways

  • MCP 샘플링 호출 완전 스팬화로 도구 내 80%+ 숨은 LLM 지연 드러남.
  • 대시보드 한눈에 메트릭스: 도구별 비율, P95, 에러 — 빠른 최적화.
  • 초기 마이크로서비스 추적 닮음; 에이전트 스웜 프로덕션 전에 표준화될 전망.

AI 에이전트가 ‘요약’ 도구에서 걸리네요. 2초가 그냥 사라집니다. 코드 문제인가요? API인가요? 아니면 서버가 넘긴 LLM(대규모 언어 모델)에 숨은 거?

에이전트 워크플로를 짜는 개발자라면 MCP 서버 때문에 매일 이런 고생입니다. 샘플링 호출에 관측성 없으니 성능 문제는 추측 게임일 뿐. 이제? 트레이스가 그 유령들을 밝히고, 메트릭스 대시보드가 진실을 보여주며, 최적화가 더 이상 주술이 아닙니다.

왜 MCP 샘플링이 트레이스를 망쳤나

MCP 스펙은 서버가 API 키 없이 LLM 작업을 클라이언트로 되돌리는 걸 허용합니다. 영리하죠? 오케스트레이터가 ‘요약’ 호출, 서버가 GPT-4o로 텍스트 씹느라 클라이언트 LLM 샘플링. 응답이 돌아옵니다. 깔끔한 위임.

하지만 트레이스는? 침묵. 미들웨어는 도구 호출 잘 잡지만, 샘플링은 핸들러 깊숙이 숨은 메서드 호출. 스팬 없음. 2.1초 도구 중 1.8초가 생성에 타버렸는데 — 보이지 않음. 잘못된 300ms만 고칩니다.

“도구 호출이 LLM 호출을 트리거하는데 트레이스에 안 보입니다. 7번 기사 미들웨어는 tools/call summarize를 추적하지만, 그 안 샘플링 호출? 유령. 스팬도, 지속 시간도, 모델 이름도 없음.”

지난번에 그 블랙박스를 뚫었죠. 이번은 데모 레벨로 완성된 속편입니다.

이 영화 본 적 있죠. 초기 마이크로서비스가 추적 안 된 RPC로 숨넘어가던 때 — Zipkin 떠오르시죠? MCP 샘플링이 에이전트 AI의 RPC입니다. 무시하면 도구들이 분산 미스터리 돼요. 지금 고치면 멀티 에이전트 무리 앞서갑니다.

유령 호출 어떻게 포획했나

네 가지 수정. 초간단.

먼저 toadEyeMiddleware로 기본 — 모든 도구에 스팬.

그다음 traceSampling 래퍼로 ctx.mcpReq.requestSampling() 감싸기. 모델, 토큰 전달. 쾅: SpanKind.CLIENT 스팬 “chat gpt-4o” 이름. 지속 시간(1834ms!) 잡고, gen_ai.request.model, 심지어 mcp.server.name까지.

중첩 완벽:

tools/call summarize 2.1s └── chat gpt-4o (샘플링) 1.8s

실제 로직? 300ms. 그걸 최적화하세요, 유령 말고.

코드 한 줄 임포트. 핸들러 본문: 샘플링 감싸기. 5분이면 테스트 — 서버 띄우고 클라이언트 에이전트 핑, OTel 백엔드로 트레이스 쏟아짐.

메트릭스? 여기서 블룸버그급 날카로움. Prometheus 쿼리 내장. 모호한 카운터 아님.

‘뭐가 문제야?’ 답해주는 대시보드

상단 한눈에 테이블:

Tool Call Rate | Avg Duration | Error Rate | Resource Reads 12.4 req/s | 45.2 ms | 2.3% | 3.1 req/s

에러 빨간색? 드릴 다운.

도구별 호출률 타임시리즈. 에이전트가 calculate에서 search로 옮기면? 라인 보임. 도구별 P50/P95 지속 시간 — search P95가 2초 치솟으면? 페이저 울림.

에러 스택: search RateLimitError(8.7%), calculate Validation(0%). URI별 리소스 — 핫 데이터 소스 비명.

하단: 도구별 통합 테이블.

Tool Rate Avg (ms) P95 (ms) Errors
calculate 8.2 12.3 24.1 0%
get-weather 3.1 145.2 312.8 3.2%
search 1.1 890.4 2134 8.7%

이건 장식 아님. 이사회 뷰: 비용은 지속 시간과 상관, 에러는 수익 누출. 에이전트 스케일? 이 네 통계 감사할 겁니다.

AI 에이전트의 Zipkin 순간인가

제 의견: 아무도 안 하지만 MCP 관측성은 LangChain보다 한참 뒤처짐 — 그쪽은 뭐든 추적, 과대광고든. MCP의 순수 스펙 빛나지만, 샘플링 같은 보석 숨김.

예측? 에이전트가 서버 체인(멀티 MCP 온다)할 때 이 추적 표준. 무시하면 프로덕션 에이전트 로드에 블랙아웃. 내 베팅: toad-eye Q2에 포크 만발, 표준 기관 고개 끄덕, OpenAI 클라이언트 의무화.

의심? 코퍼레이트 스핀 아님 — 오픈소스, 재현 가능. 하지만 지켜보세요: 벤더들이 ‘엔터프라이즈 에이전트 메쉬’로 1만 달러/월 재브랜딩. 무료 버전 먼저 잡으세요.

스택에 완전 MCP 추적이 왜 중요한가

Claude나 GPT 에이전트 개발자 — MCP가 커스텀 도구 브릿지. 이거 없인 샘플링 리스크: 비용 폭등 안 보임, 체인 지연 쌓임.

시장 계산: GPT-4o 입력 토큰 100만 개당 5달러. 요약 도구 호출당 500토큰 샘플링? 12 req/s면 한 달 3.6k 달러 블라인드. 트레이스 드러내고 대시보드 조절.

실제 사람들? 인디 개발자 에이전트 출시 후 스케일 고통 먼저. ‘내 머신에선 돼’ 끝 — 트레이스 증명.

팀? SRE들 푹 잠. P95 알림 하나가 유저 티켓 50개.

클라이언트? 빠른 에이전트, 낮은 청구. 승.

하지만 — 주의 — OTel 우선. Grafana 준비? 좋음. Raw Prometheus? 셋업 빡셈. 그래도 베이스라인 > 제로.


🧬 Related Insights

Frequently Asked Questions

What is MCP sampling?

MCP 서버가 API 키 없어 LLM 호출을 클라이언트로 위임할 때 씁니다. 요약기 같은 생성 필요한 도구 필수.

How do you trace MCP server LLM calls?

ctx.mcpReq.requestSampling()을 traceSampling({model: ‘gpt-4o’})로 감싸세요. 미들웨어가 나머지 — 도구 아래 스팬 중첩.

Does this dashboard work out-of-box?

네, Prometheus 쿼리 제공. Grafana에 꽂아 테이블, 차트, 호출률·지속 시간·에러 알림.

Priya Sundaram
Written by

Hardware and infrastructure reporter. Tracks GPU wars, chip design, and the compute economy.

Frequently asked questions

What is MCP sampling?
MCP 서버가 API 키 없어 LLM 호출을 클라이언트로 위임할 때 씁니다. 요약기 같은 생성 필요한 도구 필수.
How do you trace MCP server LLM calls?
ctx.mcpReq.requestSampling()을 traceSampling({model: 'gpt-4o'})로 감싸세요. 미들웨어가 나머지 — 도구 아래 스팬 중첩.
Does this dashboard work out-of-box?
네, Prometheus 쿼리 제공. Grafana에 꽂아 테이블, 차트, 호출률·지속 시간·에러 알림.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by dev.to