Tool, Resource, Prompt의 차이점과 활용법을 파악한다
MCP server의 연결 방식과 설치 방법을 이해한다
MCP (Model Context Protocol) server는 AI 애플리케이션이 외부 기능과 데이터에 접근할 수 있도록 표준화된 인터페이스를 제공하는 서버입니다.
MCP는 마치 USB-C 포트와 같습니다. USB-C 케이블을 내 컴퓨터에도 꽂을 수 있고, 맥북에도 꽂을 수 있고, 다른 사무실의 서버에도 꽂을 수 있듯이, MCP는 호환성이 높은 Tool 인터페이스입니다.
이전에는 각 AI 애플리케이션마다 Tool(Function)을 다르게 구현해야 했습니다. 하지만 MCP는 약속된 규격으로 Tool을 정의하여, 한 번 만든 MCP server를 여러 AI 애플리케이션에서 재사용할 수 있게 만들었습니다.
MCP server는 세 가지 핵심 구성 요소를 통해 AI와 외부 세계를 연결합니다:
Tool은 AI가 직접 호출하여 특정 작업을 수행하는 함수입니다.
AI 주도: 모델이 필요에 따라 능동적으로 선택하고 호출
명확한 입출력: JSON Schema로 정의된 파라미터 검증
실행 기능: 데이터 조회부터 API 호출, 파일 조작까지 다양한 작업 수행
구성 요소:
description: AI가 언제 이 Tool을 사용해야 하는지 판단하는 설명 (매우 중요!)
inputSchema: JSON Schema 형식의 입력 파라미터 정의
AI는 name과 description을 보고 어떤 Tool을 선택할지 결정합니다.
예를 들어, 사용자가 "2025년 손흥민이 어떤 팀에 있는지 알려줘"라고 요청하면:
AI가 search_web Tool의 description을 확인
inputSchema를 바탕으로 입력값 생성:
tools/list: 사용 가능한 Tool 목록 조회
tools/call: 특정 Tool을 실행하고 결과 반환
2. Resource: 읽기 전용 데이터 소스
Resource는 AI가 참조할 수 있는 수동적인 데이터 제공자입니다.
수동적 접근: Tool과 달리 데이터를 제공만 함
읽기 전용: 데이터를 변경하지 않고 조회만 가능
URI 기반: 고유한 URI로 각 리소스를 식별
resources/list: 사용 가능한 Resource 목록
resources/templates/list: 동적 Resource를 위한 URI 템플릿
resources/read: 특정 Resource의 내용 읽기
resources/subscribe: Resource 변경 감지 (옵션)
3. Prompt: 재사용 가능한 지시 템플릿
Prompt는 사용자가 반복적으로 사용할 수 있는 구조화된 지시사항 템플릿입니다.
재사용성: 자주 사용하는 워크플로우를 템플릿화
prompts/list: 사용 가능한 Prompt 템플릿 목록
prompts/get: 특정 Prompt의 전체 내용 가져오기
MCP Server 연결 방식
MCP server는 두 가지 방식으로 AI 클라이언트와 연결됩니다.
로컬 프로세스로 실행되는 방식
특징:
2. HTTP (Server-Sent Events)
원격 서버로 실행되는 방식
특징:
주로 인증이 필요한 서비스에 사용 (예: Notion, Linear, Figma)
stdio vs HTTP 비교
MCP Server 설치 방법
MCP server는 일반적으로 패키지 매니저를 통해 설치하고 실행합니다.
MCP Server 식별하기
MCP server를 설치할 때, 어떤 방식으로 설치해야 하는지는 패키지 이름으로 구분할 수 있습니다:
npx로 되어 있는 MCP server → Node.js 기반으로 설치
uvx로 되어 있는 MCP server → Python 기반으로 설치
의미:
npx: npm 패키지를 설치 없이 직접 실행
@modelcontextprotocol/server-filesystem: npm 패키지 이름
/path/to/directory: 서버 실행 시 전달할 인자
장점:
uvx로 설치 (Python 기반)
의미:
uvx: uv 도구를 통한 Python 패키지 실행
mcp-server-sqlite: PyPI 패키지 이름
장점:
MCP Server의 사용자 제어와 보안
MCP는 사용자의 명시적 제어와 감독을 강조합니다.
MCP 아키텍처의 보안 원칙
MCP 프로토콜 자체는 보안을 강제할 수 없지만, 다음과 같은 핵심 원칙을 제시합니다:
1. 사용자 동의와 제어 (User Consent and Control)
데이터 접근 전 동의: 호스트는 사용자 데이터를 MCP server에 노출하기 전에 반드시 사용자 동의를 받아야 합니다
명시적 승인: 중요한 작업은 사용자의 명시적 승인이 필요합니다
2. 데이터 프라이버시 (Data Privacy)
최소 권한: 필요한 최소한의 데이터만 접근 허용
데이터 보호: 사용자 데이터는 승인 없이 서버로 전달되지 않습니다
샘플링 요청 제어: LLM 샘플링 요청이 있을 때만 서버가 데이터를 볼 수 있습니다
투명성: AI가 어떤 Tool을 사용하는지 사용자가 확인 가능
안전한 실행: 모든 데이터 접근 및 작업은 안전하게 실행됩니다
활동 로그: 모든 Tool 실행 기록을 남깁니다
MCP 프로토콜 수준에서는 보안을 강제할 수 없지만, 구현자는 다음을 반드시 고려해야 합니다:
강력한 동의 및 권한 플로우 구축: 사용자가 명확히 이해하고 승인할 수 있는 UI 제공
보안 영향에 대한 명확한 문서화: 각 Tool이 어떤 권한을 요구하는지 명시
적절한 접근 제어 및 데이터 보호: 파일 시스템 접근 범위 제한 등
통합 시 보안 모범 사례 준수: 인증, 암호화, 로깅 등
기능 설계 시 프라이버시 고려: 개인정보 최소 수집 원칙
MCP Server: AI가 외부 기능과 데이터에 접근하는 표준화된 인터페이스
Tool: AI가 호출하는 능동적 기능 (예: 파일 작성, API 호출)
Resource: AI가 참조하는 수동적 데이터 (예: 문서, 데이터베이스)
Prompt: 재사용 가능한 지시 템플릿 (예: 코드 리뷰, 문서 생성)
연결 방식: stdio (로컬) 또는 HTTP (원격)
설치 방법: npx (Node.js) 또는 uvx (Python)로 간편하게 실행
LinkedIn: https://www.linkedin.com/in/gb-jeong/
강의 자료: https://goobong.gitbook.io/fastcampus
Github: https://github.com/Koomook/fastcampus-ai-agent-vibecoding
FastCampus 강의 주소: https://fastcampus.co.kr/biz_online_vibeagent
Last updated