13. MCP (Model Context Protocol)
온라인 강의 수강 (인프런)
본 내용은 인프런에서 온라인으로 수강 가능합니다. 👉 인프런 강의 바로가기
MCP 란
- Model Context Protocol의 약자
- 표준화된 LLM 모델의 Tools 프로토콜로 Claude의 Anthropic에서 개발하여 오픈소스로 공개
MCP가 가지는 의미
-
다른 사람이 만든 Tool을 공유하여 사용 가능
MCP는 툴을 실행하는 서버를 별도로 운영하기 때문에 외부 사용자가 접근 가능하게 할 수 있음.
-
플랫폼을 교체하더라도 Tool의 호환성을 보장
즉, MCP로 만든 툴은 OpenAI 플랫폼에서 Anthropic 플랫폼으로 교체하더라도 호환 됨.
MCP 서버 위치
-
로컬 기반 MCP 서버
- MCP 서버가 로컬에서 실행 됨
- 비공개적이고 나만 사용하고자 할 때
-
호스팅 기반 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 입력
- URL:
- 실습: 구글 캘린더
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
- URL:
- 실습 1: Stock Price
- 실습 2: Google Drive
Smithery AI에서 URL 노출 금지
위의 Smithery AI 예시에서 MCP 서버 URL 안에 API Key 정보가 포함되어 있으므로 타인에게 절대 노출해서는 안됩니다.
구글 계정에서 CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN 발급 받는 방법
- Google Cloud Console에서
CLIENT_ID,CLIENT_SECRET발급- 새 프로젝트 생성, 선택 후 대시보드로 이동
- 사용할 서비스 등록
- API 및 서비스 > 사용 설정된 API 및 서비스
- 사용하고자 하는 API 사용 설정 (예: Google Drive API)
- 동의화면 구성
- API 및 서비스 > OAuth 동의 화면
- 시작하기 (동의 화면 구성)
- 사용자 지원 이메일: 본인 이메일
- 앱 이름:
Smithery Test - 대상: 외부
- 연락처 정보: 본인 이메일
- 대상 (테스트 사용자 추가): 본인 이메일 추가
- 사용자 인증 정보 생성
- API 및 서비스 > 사용자 인증 정보 > + 사용자 인증 정보 만들기 > OAuth 클라이언트 ID
- 애플리케이션 유형:
웹 애플리케이션 - 승인된 리디렉션 URI:
https://developers.google.com/oauthplayground추가 - 생성 후
CLIENT_ID,CLIENT_SECRET확인 및 복사
- OAuth 2.0 Playground에서
REFRESH_TOKEN발급- 우측 상단 톱니바퀴 > Use your own OAuth credentials 체크
- 위에서 만든
CLIENT_ID,CLIENT_SECRET입력
- 위에서 만든
- 왼쪽 메뉴에서 필요한 scope 체크 후 인증 (Authorize APIs 버튼) 진행
- scope 예: Google Drive API에 대한 모든 권한을 부여하고자 하면
Drive API v3>https://www.googleapis.com/auth/drive체크 - Google에서 확인하지 않은 앱이라는 경고가 뜰 수 있으나 무시하고 계속 진행
- scope 예: Google Drive API에 대한 모든 권한을 부여하고자 하면
- 인증 코드 교환 (Exchange authorization code) 후
REFRESH_TOKEN생성, 확인 및 복사
- 우측 상단 톱니바퀴 > Use your own OAuth credentials 체크
연결된 구글 계정 엑세스 권한 삭제 방법
- 구글 계정 연동 실습이 끝나면 보안을 위해 엑세스 권한을 삭제하는 것을 권장합니다.
- 연결된 구글 계정 엑세스 권한 삭제는 아래 링크를 통해 가능합니다.
- https://myaccount.google.com/connections