MCP 트레이싱
MCP 트레이싱 (MCP Tracing)
Model Context Protocol(MCP)을 사용하면 AI 에이전트가 외부 도구와 데이터 소스와 상호작용할 수 있어요. MCP 애플리케이션을 트레이싱할 때 클라이언트와 서버 작업은 기본적으로 별도의 trace를 생성하는데, 이는 서비스 경계를 설정하는 데 유용할 수 있어요.
출처: 문서
본문
Model Context Protocol(MCP)은 AI 에이전트가 외부 도구와 데이터 소스와 상호작용할 수 있게 해줘요. MCP 애플리케이션을 트레이싱할 때 클라이언트와 서버 작업은 기본적으로 별도의 trace를 생성하는데, 서비스 경계를 설정하는 데 유용할 수 있어요.
하지만 trace 메타데이터를 클라이언트에서 서버로 전파하면 이 trace들을 연결해 전체 요청 흐름의 통합된 뷰를 만들 수 있어요.
별도 trace vs 연결된 trace (Separate vs. Linked Traces)
- 별도 trace(Separate traces): MCP 클라이언트와 서버가 독립적인 trace를 생성해요. 명확한 서비스 경계가 필요하거나 클라이언트와 서버를 다른 팀이 관리할 때 유용해요.
- 연결된 trace(Linked traces): MCP의
_meta필드를 사용해 클라이언트에서 서버로 trace 컨텍스트를 전파해요. 클라이언트에서 서버를 거쳐 외부 API까지의 완전한 요청 흐름을 보여주는 단일 연결 trace를 만들어요.
Trace 컨텍스트 전파 (Propagating Trace Context)
MCP는
_meta필드 규약을 통해 컨텍스트 전파를 지원해요. OpenTelemetry 컨텍스트(W3C Trace Context 형식)를 도구 호출에 주입하면 클라이언트와 서버 trace를 연결할 수 있어요:
- 클라이언트 측에서 현재 trace 컨텍스트를 추출하세요.
- MCP 도구 호출의
_meta필드에 주입하세요.- 서버 측에서 컨텍스트를 추출하고 복원하세요.
- 모든 서버 작업이 클라이언트의 trace 컨텍스트를 상속해요.

Langfuse의 예시 trace 링크
구현 (Implementation)
OpenAI, Exa API, Langfuse를 사용한 end-to-end MCP 트레이싱을 보여주는 완전한 구현은 langfuse-examples 저장소를 참고하세요.
더 알아보기 (Learn more)
- 출처 문서: MCP 트레이싱 (MCP Tracing)