Skip to main content

🤖 MCP (Model Context Protocol) Tutorial

입문자를 위한 체계적인 Model Context Protocol 학습 가이드

📋 프로젝트 개요

이 튜토리얼은 Model Context Protocol(MCP) 을 처음 접하는 개발자들을 위한 실습 중심 학습 자료입니다. LangGraph와 MCP를 통합하여 다양한 외부 도구와 서비스를 활용하는 강력한 AI 에이전트를 구축하는 방법을 단계별로 학습합니다.

🎯 학습 목표

  • MCP의 핵심 개념과 아키텍처 이해
  • FastMCP를 활용한 MCP 서버 개발
  • LangGraph와 MCP의 효과적인 통합
  • 다중 MCP 서버 관리 및 오케스트레이션
  • 실전 RAG 시스템 구현

🚀 주요 기능

  • 표준화된 프로토콜: MCP 표준을 따르는 도구 인터페이스 구현
  • 다양한 전송 방식: stdio 및 Streamable HTTP 지원
  • 동적 도구 검색: 런타임 도구 자동 검색 및 로드
  • 확장 가능한 아키텍처: 여러 MCP 서버 동시 연결 지원
  • 실습 중심 학습: Jupyter Notebook을 통한 인터랙티브 학습

📁 프로젝트 구조

mcp-tutorial/
├── 01-LangGraph-MCP-Tutorial.ipynb  # 메인 튜토리얼 노트북
├── server/                           # MCP 서버 구현체
│   ├── mcp_server_local.py         # 로컬 날씨 서비스 (stdio)
│   ├── mcp_server_remote.py        # 원격 시간 서비스 (HTTP)
│   ├── mcp_server_rag.py           # RAG 서비스 (벡터 검색)
│   └── rag/                        # RAG 관련 유틸리티
│       ├── base.py
│       ├── pdf.py
│       └── utils.py
├── assets/                          # 이미지 및 리소스
├── pyproject.toml                   # 프로젝트 설정
└── .env.example                     # 환경 변수 예시

🛠 설치 방법

사전 요구사항

설치 단계

  1. 저장소 클론
git clone https://github.com/teddynote-lab/mcp-tutorial.git
cd mcp-tutorial
  1. 환경 변수 설정
cp .env.example .env
# .env 파일을 열어 필요한 API 키 입력
  1. 의존성 설치
# UV를 사용한 가상환경 생성 및 패키지 설치
uv sync

# 가상환경 활성화
source .venv/bin/activate  # macOS/Linux
# 또는
.venv\Scripts\activate  # Windows

🎓 학습 경로

Part 1: MCP 기본 개념

  • MCP 프로토콜 이해
  • 기본 아키텍처 학습

Part 2: 기본 MCP 서버 생성

  • FastMCP를 활용한 서버 구현
  • stdio 전송 방식 이해

Part 3: MultiServerMCPClient 설정

  • 다중 서버 관리 방법
  • 도구 동적 로드

Part 4: React Agent와 MCP 통합

  • LangGraph React Agent 구성
  • MCP 도구 바인딩

Part 5: ToolNode와 MCP 통합

  • 커스텀 워크플로우 구축
  • 세밀한 제어 구현

Part 6: 외부 MCP 서버 활용

  • Smithery AI 플랫폼 연동
  • 서드파티 도구 통합

Part 7: Dify MCP 서버 연동

  • Dify 플랫폼 활용
  • 실전 통합 예제

💻 실행 방법

MCP 서버 실행

# 로컬 날씨 서버 (stdio)
uv run python server/mcp_server_local.py

# 원격 시간 서버 (HTTP, 포트 8002)
uv run python server/mcp_server_remote.py

# RAG 서버 (문서 검색)
uv run python server/mcp_server_rag.py

MCP Inspector로 테스트

# 브라우저에서 MCP 서버 테스트
npx @modelcontextprotocol/inspector

튜토리얼 실행

# Jupyter Notebook 실행
jupyter notebook 01-LangGraph-MCP-Tutorial.ipynb

🔧 환경 설정

.env 파일에 다음 환경 변수 설정이 필요합니다:

# 필수
OPENAI_API_KEY=your_openai_api_key
TAVILY_API_KEY=your_tavily_api_key

# 선택 (추가 기능)
LANGCHAIN_API_KEY=your_langchain_api_key
CONTEXT7_API_KEY=your_context7_api_key

📚 핵심 의존성

  • LangGraph: AI 에이전트 워크플로우 구축
  • FastMCP: MCP 서버 개발 프레임워크
  • langchain-mcp-adapters: LangChain-MCP 통합
  • FAISS: 벡터 스토리지 (RAG용)
  • PyMuPDF: PDF 문서 처리

🤝 기여 방법

이 프로젝트는 교육 목적으로 제작되었습니다. 개선 사항이나 버그를 발견하시면 Issue를 등록해 주세요.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📖 참고 자료

🎥 학습 리소스

📄 라이선스

이 프로젝트는 교육 목적으로만 사용 가능합니다. 자세한 내용은 LICENSE 파일을 참조하세요.

✨ 제작

Made by TeddyNote LAB


MCP와 LangGraph로 차세대 AI 에이전트를 구축하세요! 🚀

Metadata

Release files for iflow-mcp_teddynote-lab-mcp-tutorial 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_teddynote-lab-mcp-tutorial 0.1.1
File Size Uploaded
iflow_mcp_teddynote_lab_mcp_tutorial-0.1.1.tar.gz 7.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_teddynote-lab-mcp-tutorial 0.1.1
File Interpreter ABI Platform
iflow_mcp_teddynote_lab_mcp_tutorial-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 15.9 kB

Release files / iflow_mcp_teddynote_lab_mcp_tutorial-0.1.1.tar.gz

Download URL iflow_mcp_teddynote_lab_mcp_tutorial-0.1.1.tar.gz
Size 7.2 kB
Tags Source
SHA-256 checksum
How to use checksums
99cc8605bf80005beab4273154a7c4e86681d3f54cb7517cb5bcf36e01f3914a
BLAKE2b-256 checksum
How to use checksums
5bd19ef979198f1aa84fc8fb85185d3fd1905e2f3688324f9ce7426050297137
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_teddynote_lab_mcp_tutorial-0.1.1-py3-none-any.whl

Download URL iflow_mcp_teddynote_lab_mcp_tutorial-0.1.1-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f4d57a923008c5fd588c57556edc2a7ab6044eed3ab25ad7d83d308764fd4ca
BLAKE2b-256 checksum
How to use checksums
3699c6bb371065a65c5cb89f29c58493c4df2c60f6d20b251081d48a17ee5cfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page