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 # 환경 변수 예시
```
## 🛠 설치 방법
### 사전 요구사항
- Python 3.11 이상
- UV 패키지 매니저 ([설치 가이드](https://docs.astral.sh/uv/))
### 설치 단계
1. **저장소 클론**
```bash
git clone https://github.com/teddynote-lab/mcp-tutorial.git
cd mcp-tutorial
```
2. **환경 변수 설정**
```bash
cp .env.example .env
# .env 파일을 열어 필요한 API 키 입력
```
3. **의존성 설치**
```bash
# 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 서버 실행
```bash
# 로컬 날씨 서버 (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로 테스트
```bash
# 브라우저에서 MCP 서버 테스트
npx @modelcontextprotocol/inspector
```
### 튜토리얼 실행
```bash
# Jupyter Notebook 실행
jupyter notebook 01-LangGraph-MCP-Tutorial.ipynb
```
## 🔧 환경 설정
`.env` 파일에 다음 환경 변수 설정이 필요합니다:
```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
## 📖 참고 자료
- [MCP 공식 문서](https://modelcontextprotocol.io/)
- [LangGraph 문서](https://langchain-ai.github.io/langgraph/)
- [FastMCP GitHub](https://github.com/jlowin/fastmcp)
- [Smithery AI](https://smithery.ai/)
## 🎥 학습 리소스
- [테디노트 YouTube 채널](https://www.youtube.com/@teddynote)
- [RAG 심화 온라인 강의](https://teddylee777.github.io/)
## 📄 라이선스
이 프로젝트는 교육 목적으로만 사용 가능합니다. 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요.
## ✨ 제작
**Made by [TeddyNote LAB](https://github.com/teddynote-lab)**
---
<p align="center">
<i>MCP와 LangGraph로 차세대 AI 에이전트를 구축하세요! 🚀</i>
</p>
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
Sequential Thinking
A structured MCP server for dynamic problem-solving and reflective thinking.
git
A Model Context Protocol server for Git automation and interaction.