Documentation Index
Fetch the complete documentation index at: https://translations.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
작동 방식
weave.op() 데코레이터를 패치하여 Model Context Protocol(MCP)의 주요 구성 요소를 자동으로 추적합니다. 구체적으로는 mcp.server.fastmcp.FastMCP 클래스와 mcp.ClientSession 클래스의 메서드를 패치합니다.
이 통합을 통해 Weave는 다음 MCP 구성 요소를 추적합니다:
통합 사용하기
weave를 import하는 코드이고, 다른 하나는 Weave를 초기화하는 코드입니다.
사전 준비 사항
구성
MCP_TRACE_LIST_OPERATIONS: 서버와 클라이언트 양쪽에서 목록 작업(list_tools,list_resources,list_prompts)을 추적하려면true로 설정합니다.
서버 측 통합
FastMCP 설정에 두 줄을 추가합니다. 하나는 Weave를 import하는 코드이고, 다른 하나는 클라이언트를 초기화하는 코드입니다. 이 두 줄을 추가하면 도구, 리소스, 프롬프트 관련 작업이 자동으로 추적됩니다.
클라이언트 측 통합
튜토리얼: mcp_demo 예제
mcp_demo 예제는 Model Context Protocol (MCP)과 Weave를 연동하여 트레이싱하는 방법을 보여줍니다. 클라이언트와 서버 컴포넌트 모두를 계측해 상호작용에 대한 자세한 트레이스를 기록하는 방법을 시연합니다.
예제 실행하기
-
docs 저장소를 클론하고
mcp_demo예제로 이동합니다:이 예제는 다음 두 개의 주요 파일로 구성됩니다:example_server.py:FastMCP로 구현된 데모 MCP 서버입니다. 도구, 리소스, 프롬프트를 정의합니다.example_client.py: 서버에 연결해 해당 구성 요소들과 상호작용하는 클라이언트입니다.
-
필요한 의존성을 수동으로 설치합니다:
-
데모를 실행합니다:
이 명령은 클라이언트와 서버를 모두 실행합니다. 클라이언트는 다양한 기능을 테스트할 수 있는 대화형 CLI를 시작합니다.
클라이언트 CLI 명령어
| Command | Description |
|---|---|
tools | 사용 가능한 도구 목록을 표시합니다 |
resources | 사용 가능한 리소스 목록을 표시합니다 |
prompts | 사용 가능한 프롬프트 목록을 표시합니다 |
add <a> <b> | 두 숫자를 더합니다 |
bmi <weight> <height> | 체질량지수(Body Mass Index)를 계산합니다 |
weather <city> | 지정한 도시에 대한 날씨 데이터를 가져옵니다 |
greeting <name> | 사용자 맞춤 인사말을 반환합니다 |
user <id> | 사용자 프로필을 조회합니다 |
config | 앱 구성 정보를 가져옵니다 |
code-review <code> | 코드 리뷰용 프롬프트를 생성합니다 |
debug <error> | 디버깅용 프롬프트를 생성합니다 |
demo | 사용 가능한 모든 기능의 전체 데모를 실행합니다. 각 기능을 순차적으로 실행하고 Weave UI에서 상호작용의 전체 트레이스 타임라인을 생성합니다. |
q | 세션을 종료합니다 |
예제 이해하기
example_server.py 서버는 다음을 정의합니다:
- 도구(Tools):
add(),calculate_bmi(),fetch_weather()같은 함수 - 리소스(Resources):
greeting://{name},config://app,users://{id}/profile같은 엔드포인트 - 프롬프트(Prompts):
review_code()및debug_error()같은 템플릿
weave.init()으로 초기화하면, 모든 서버 측 작업은 Weave에 의해 자동으로 추적됩니다.
example_client.py 클라이언트는 다음을 보여줍니다:
- MCP 서버에 연결하기
- 사용 가능한 도구, 리소스, 프롬프트 검색하기
- 매개변수를 사용해 도구 호출하기
- 리소스 URI에서 읽기
- 인자를 사용해 프롬프트 생성하기
- 사용자 정의 메서드/함수와 함께
weave.op()를 사용하는 방법
자주 묻는 질문
왜 MCP 트레이싱이 필요한가요?
- MCP 서버 측 개발자: MCP 클라이언트에 여러 도구, 리소스, 프롬프트를 노출하려고 합니다. 기존 애플리케이션의 도구, 리소스 등을 노출하거나 에이전트를 구축했으며, 여러 에이전트를 오케스트레이션하는 오케스트레이터 에이전트를 사용하고 있을 수 있습니다.
- MCP 클라이언트 측 개발자: 클라이언트 측 애플리케이션을 여러 MCP 서버에 연결하려고 합니다. 클라이언트 측 로직의 핵심은 어떤 도구를 호출할지, 어떤 리소스를 가져올지를 결정하기 위해 LLM 호출을 수행하는 것입니다.
- MCP 서버 및 클라이언트 개발자: 서버와 클라이언트를 모두 개발하고 있습니다.
- 애플리케이션을 빠르게 반복 개선
- 워크플로 또는 실행 로직 감사
- 병목 구간 식별