PART 12 · 강의 4/5

MCP 프로토콜

Model Context Protocol - AI의 USB 표준

01

MCP란?

AI 모델과 데이터를 연결하는 표준

MCP (Model Context Protocol)는 Anthropic이 개발한 오픈 프로토콜로, LLM 애플리케이션과 외부 데이터 소스/도구 간의 표준화된 통신 방법을 제공합니다. USB가 다양한 기기를 컴퓨터에 연결하는 표준이 되었듯이, MCP는 AI 모델과 데이터/도구를 연결하는 표준이 되고자 합니다.

Model Context Protocol
"하나의 프로토콜로 모든 AI 애플리케이션을 모든 데이터 소스에 연결"
Build once, use everywhere

MCP 아키텍처

Host Application
(Claude Desktop, IDE, Custom App)
↕ MCP Protocol
MCP Client
↕ JSON-RPC
MCP Server 1
MCP Server 2
MCP Server 3
(Files, Database, APIs, Slack, GitHub...)
02

MCP의 핵심 기능

Tools, Resources, Prompts, Sampling

01
Tools
LLM이 호출할 수 있는 함수/액션을 노출. 예: 파일 읽기, API 호출, 데이터베이스 쿼리 등.
02
Resources
LLM에게 컨텍스트로 제공할 수 있는 데이터. 파일, 문서, 웹페이지 등의 읽기 전용 데이터.
03
Prompts
재사용 가능한 프롬프트 템플릿. 특정 작업에 최적화된 프롬프트를 서버에서 제공.
04
Sampling
서버가 클라이언트를 통해 LLM 호출을 요청. 양방향 상호작용 지원.
03

MCP 서버 예시

다양한 데이터 소스 연결

다양한 데이터 소스와 도구에 대한 MCP 서버가 이미 개발되어 있습니다.

Files
Filesystem
로컬 파일 시스템 읽기/쓰기. 디렉토리 탐색, 파일 검색.
Git
Git
Git 저장소 조작. 커밋, 브랜치, 히스토리 조회.
DB
PostgreSQL/SQLite
데이터베이스 쿼리 실행. 스키마 탐색.
Slack
Slack
Slack 메시지 읽기/쓰기. 채널 정보 조회.
GH
GitHub
이슈, PR 관리. 코드 검색, 리포지토리 정보.
Web
Fetch/Puppeteer
웹 페이지 스크래핑. 동적 콘텐츠 추출.
04

MCP 서버 구현

Python으로 MCP 서버 만들기

Python (MCP Server Example)
from mcp.server import Server
from mcp.types import Tool, TextContent

# MCP 서버 인스턴스 생성
server = Server("my-custom-server")

# Tool 정의
@server.list_tools()
async def list_tools():
    return [
        Tool(
            name="get_weather",
            description="지정된 도시의 날씨를 조회합니다",
            inputSchema={
                "type": "object",
                "properties": {
                    "city": {"type": "string"}
                },
                "required": ["city"]
            }
        )
    ]

# Tool 실행 핸들러
@server.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "get_weather":
        city = arguments["city"]
        # 실제 날씨 API 호출
        weather = fetch_weather(city)
        return [TextContent(text=f"{city}: {weather}")]

# 서버 실행
if __name__ == "__main__":
    server.run()

Claude Desktop에서 MCP 설정

JSON (claude_desktop_config.json)
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxx"
      }
    }
  }
}
05

MCP의 장점

표준화된 AI 통합의 이점

표준화
다양한 AI 앱과 데이터 소스 간 통일된 인터페이스. 한 번 개발하면 어디서든 사용.
보안
권한 제어, 인증 메커니즘 내장. 민감한 데이터 접근을 안전하게 관리.
확장성
새로운 서버 추가가 간편. 생태계 성장에 따라 기능 확장.
오픈 소스
누구나 MCP 서버를 개발하고 공유 가능. 커뮤니티 기반 발전.
💡 멀티에이전트와 MCP

MCP는 개별 Agent가 외부 도구/데이터에 접근하는 표준 방법을 제공합니다. 멀티에이전트 시스템에서 각 Agent가 MCP를 통해 필요한 리소스에 접근하면, 일관된 인터페이스로 다양한 도구를 활용할 수 있습니다.

REF

참고 자료

SUMMARY

핵심 요약

  • MCP: Anthropic이 개발한 AI-데이터 연결 표준 프로토콜
  • 핵심 기능: Tools, Resources, Prompts, Sampling
  • 아키텍처: Host Application <-> MCP Client <-> MCP Servers
  • 기존 서버: Filesystem, Git, Database, Slack, GitHub 등
  • 장점: 표준화, 보안, 확장성, 오픈 소스