콘텐츠로 이동

13. MCP (Model Context Protocol)

온라인 강의 수강 (인프런)

본 내용은 인프런에서 온라인으로 수강 가능합니다. 👉 인프런 강의 바로가기

MCP 란

  • Model Context Protocol의 약자
  • 표준화된 LLM 모델의 Tools 프로토콜로 Claude의 Anthropic에서 개발하여 오픈소스로 공개

MCP가 가지는 의미

  • 다른 사람이 만든 Tool을 공유하여 사용 가능

    MCP는 툴을 실행하는 서버를 별도로 운영하기 때문에 외부 사용자가 접근 가능하게 할 수 있음.

  • 플랫폼을 교체하더라도 Tool의 호환성을 보장

    즉, MCP로 만든 툴은 OpenAI 플랫폼에서 Anthropic 플랫폼으로 교체하더라도 호환 됨.

MCP 서버 위치

  1. 로컬 기반 MCP 서버

    • MCP 서버가 로컬에서 실행 됨
    • 비공개적이고 나만 사용하고자 할 때
  2. 호스팅 기반 MCP 서버

    • MCP 서버가 외부에 호스팅 됨 (https URL로 접근 가능)
    • 공개적이고 여러 유저들이 공유해서 사용 가능
    • OpenAI MCP는 호스팅 기반 MCP 서버만 지원

MCP 인증 방식

  • 일반적으로 API Key 및 Access Token 방식을 사용 (MCP 서버 제공 업체마다 다름)
  • API Key와 Access Token은 URL 자체에 포함되기도 하고, 별도의 인증 헤더로 전달되기도 함
  • URL 자체에 포함되는 방식은 보안에 취약할 수 있으므로 주의 필요

호스팅 기반 MCP 서버 제공 업체

Zapier MCP

  • https://zapier.com/mcp
  • 난이도: 쉬움
  • 비용: 프리 티어 제공 (베타 버전)
  • 인증 방식: 인증 헤더에 API Key 전달
  • 연결 방법: + Server 클릭 후 아래 정보 입력
    • URL: https://mcp.zapier.com/api/mcp/mcp
    • Authentication: Access token / API Key 선택 후 API Key 입력
  • 실습: 구글 캘린더

Smithery AI

  • https://smithery.ai
  • 난이도: 종종 어려움
  • 비용: 무료
  • 직접 만든 MCP 서버 배포 가능
  • 인증 방식: URL에 API Key 및 Profile 정보 포함
  • 연결 방법: + Server 클릭 후 아래 정보 입력
    • URL: https://server.smithery.ai/@{namespace}/{server}/mcp?api_key={api_key}&profile={profile}
    • Authentication: None
  • 실습 1: Stock Price
  • 실습 2: Google Drive

Smithery AI에서 URL 노출 금지

위의 Smithery AI 예시에서 MCP 서버 URL 안에 API Key 정보가 포함되어 있으므로 타인에게 절대 노출해서는 안됩니다.

구글 계정에서 CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN 발급 받는 방법
  1. Google Cloud Console에서 CLIENT_ID, CLIENT_SECRET 발급
    1. 새 프로젝트 생성, 선택 후 대시보드로 이동
    2. 사용할 서비스 등록
      • API 및 서비스 > 사용 설정된 API 및 서비스
      • 사용하고자 하는 API 사용 설정 (예: Google Drive API)
    3. 동의화면 구성
      • API 및 서비스 > OAuth 동의 화면
      • 시작하기 (동의 화면 구성)
        • 사용자 지원 이메일: 본인 이메일
        • 앱 이름: Smithery Test
        • 대상: 외부
        • 연락처 정보: 본인 이메일
      • 대상 (테스트 사용자 추가): 본인 이메일 추가
    4. 사용자 인증 정보 생성
      • API 및 서비스 > 사용자 인증 정보 > + 사용자 인증 정보 만들기 > OAuth 클라이언트 ID
      • 애플리케이션 유형: 웹 애플리케이션
      • 승인된 리디렉션 URI: https://developers.google.com/oauthplayground 추가
      • 생성 후 CLIENT_ID, CLIENT_SECRET 확인 및 복사
  2. OAuth 2.0 Playground에서 REFRESH_TOKEN 발급
    1. 우측 상단 톱니바퀴 > Use your own OAuth credentials 체크
      • 위에서 만든 CLIENT_ID, CLIENT_SECRET 입력
    2. 왼쪽 메뉴에서 필요한 scope 체크 후 인증 (Authorize APIs 버튼) 진행
      • scope 예: Google Drive API에 대한 모든 권한을 부여하고자 하면 Drive API v3 > https://www.googleapis.com/auth/drive 체크
      • Google에서 확인하지 않은 앱이라는 경고가 뜰 수 있으나 무시하고 계속 진행
    3. 인증 코드 교환 (Exchange authorization code) 후 REFRESH_TOKEN 생성, 확인 및 복사
연결된 구글 계정 엑세스 권한 삭제 방법
  • 구글 계정 연동 실습이 끝나면 보안을 위해 엑세스 권한을 삭제하는 것을 권장합니다.
  • 연결된 구글 계정 엑세스 권한 삭제는 아래 링크를 통해 가능합니다.
  • https://myaccount.google.com/connections