본문 바로가기
AI 공부/AI 에이전트 (AI Agents)

⚙️ Sampling과 Root — 서버가 모델을 호출하고, 파일에 접근하는 법

by 데이터 벌집 2025. 4. 4.
반응형

⚙️ Sampling과 Root — 서버가 모델을 호출하고, 파일에 접근하는 법

🧠 1. Sampling — 서버가 LLM 호출 요청하는 방법

 

MCP에서 Sampling이란, 서버가 "나 대신 Claude/GPT에게 이 질문 좀 던져줘"라고 요청하는 행위입니다.

🧪 예시 시나리오

서버가 내부 데이터로 전략 요약을 만들고 싶을 때:

{
  "method": "sample",
  "params": {
    "prompt": "이 전략을 5줄로 요약해줘",
    "context": {
      "resources": ["strategy_detail.json"]
    }
  }
}

 

🎯 특징

  • 서버는 LLM에 직접 접근할 수 없음
  • 대신, 클라이언트가 모델을 호출하고 응답을 받아 전달
  • 따라서 사용자 동의 및 권한 제어는 클라이언트(Host)가 수행

🛡️ MCP는 의도적으로 서버가 전체 프롬프트를 못 보게 설계되어 있음.
사용자 동의 없이 아무런 샘플링도 일어나지 않음.


📂 2. Root — 서버가 접근 가능한 파일 범위

MCP에서 root는 서버가 접근 가능한 디렉토리의 범위를 정의합니다. 이는 마치 "서버에게 열어주는 내 파일 시스템의 창문"과 같습니다.

🗂️ Root 구성 예시

{
  "roots": [
    {
      "uri": "file:///Users/laila/trading-strategies/",
      "name": "내 전략 폴더"
    }
  ]
}

서버는 이 Root 아래의 파일만 탐색 가능
MCP는 보안상 전체 파일 접근을 허용하지 않음

 


🔄 Root & Resource 연결 흐름

서버는 Root 안에 있는 파일을 Resource로 노출할 수 있습니다.

 

예를 들어 Root 디렉토리에 BTC_30d.csv가 있다면, 이걸 /resources/price_data로 노출 가능. 이후 Claude나 GPT는 이 리소스를 읽고 전략을 만들거나 분석할 수 있게 됩니다.


🧩 예시 시나리오 전체 흐름

sequenceDiagram
    participant User
    participant Host
    participant Client
    participant Server

    User->>Host: 전략 요약 요청
    Host->>Client: 전략 요청 전달
    Client->>Server: 필요한 파일이 뭔지 물어봄
    Server->>Client: Root 목록 요청
    Client->>Server: 파일 시스템 열람 권한 전달
    Server->>Client: 샘플링 요청 (LLM 호출)
    Client->>Host: 모델 호출, 응답 받음
    Host->>User: 요약 결과 반환

정리하면...

⚙️ Sampling과 Root — 서버가 모델을 호출하고, 파일에 접근하는 법

 

 

개념 역할 통제 주체
🧠 Sampling LLM 호출 요청 서버 → 클라이언트가 실행
📂 Root 서버의 파일 접근 범위 정의 클라이언트/호스트가 설정
🔐 보안 서버는 전체 시스템을 볼 수 없음 사용자 동의 + 제한된 범위

✨ 요약: 서버가 AI 모델에게 "이거 해줘" 하는 방식

  • Sampling은 서버가 모델에게 질문하는 방식이지만, 항상 호스트(클라이언트)가 중개자 역할을 함.
  • Root는 서버가 볼 수 있는 디렉토리를 제한하여 보안과 투명성을 확보함.

 

반응형