# MCP (Model Context Protocol) 개념 가이드
## MCP란?
Model Context Protocol (MCP)는 대규모 언어 모델(LLM)이 외부 애플리케이션과 표준화된 방식으로 상호작용할 수 있도록 하는 프로토콜입니다.
MCP를 통해 LLM은 실시간으로 외부 데이터에 접근하고, 다양한 도구를 실행하며, 동적인 컨텍스트를 활용할 수 있습니다.
## MCP 주요 구성 요소
```mermaid
graph LR
A[사용자] --> B[Claude Desktop]
B --> C[MCP 서버]
C --> D[Jira]
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#e8f5e8
style D fill:#fff3e0
```
### 호스트(Host)
LLM 기반 애플리케이션으로, MCP 클라이언트를 내장하고 있습니다.
- **Claude Desktop**: Anthropic의 데스크톱 애플리케이션
- **Cursor**: AI 기반 코드 에디터
- **Docker AI**: 컨테이너 기반 AI 환경
- **커스텀 애플리케이션**: MCP 클라이언트를 통합한 사용자 정의 앱
### 클라이언트(Client)
호스트 내에서 MCP 서버와 통신을 담당하는 구성 요소입니다.
- **프로토콜 관리**: MCP 메시지 송수신 처리
- **연결 관리**: 서버와의 연결 설정 및 유지
- **도구 호출**: 서버의 도구를 LLM 대신 실행
- **데이터 변환**: 서버 응답을 LLM이 이해할 수 있는 형태로 변환
### 서버(Server)
실제 기능을 제공하는 구성 요소입니다.
- **도구 제공**: LLM이 사용할 수 있는 기능들을 정의
- **리소스 관리**: 읽기 전용 데이터 제공
- **비즈니스 로직**: 실제 작업을 수행하는 코드
- **외부 서비스 연동**: API, 데이터베이스 등과의 통신
## MCP 서버 핵심 구성 요소
```mermaid
graph TB
A[MCP 서버] --> B[도구
Tools]
A --> C[리소스
Resources]
B --> D[이슈 생성
✏️ 쓰기]
B --> E[이슈 검색
🔍 읽기+쓰기]
C --> F[프로젝트 목록
📖 읽기만]
C --> G[설정 정보
📋 읽기만]
style A fill:#e8f5e8
style B fill:#ffecb3
style C fill:#e3f2fd
style D,E fill:#fff2cc
style F,G fill:#f0f8ff
```
### 도구(Tools)
LLM이 작업을 수행할 수 있도록 기능을 제공합니다.
- **특징**: 사이드 이펙트를 포함할 수 있음 (데이터 생성, 수정, 삭제)
- **비유**: REST API의 POST, PUT, DELETE 엔드포인트와 유사
- **예시**:
- 파일 생성/수정/삭제
- 이메일 발송
- 데이터베이스 업데이트
- 외부 API 호출
### 리소스(Resources)
LLM에 읽기 전용 데이터를 제공합니다.
- **특징**: 읽기 전용, 사이드 이펙트 없음
- **비유**: REST API의 GET 엔드포인트와 유사
- **예시**:
- 파일 내용 조회
- 데이터베이스 쿼리 결과
- 외부 API 데이터 조회
- 설정 정보
## MCP 통신 플로우
```mermaid
sequenceDiagram
participant Host as LLM Host
participant Client as MCP Client
participant Server as MCP Server
Host->>Client: "Jira 이슈를 검색해줘"
Client->>Server: list_tools()
Server-->>Client: Available tools
Client->>Server: call_tool("jira_search_issues", args)
Server->>Server: Execute Jira API call
Server-->>Client: Tool result
Client-->>Host: Formatted response
Host->>Host: Generate natural language response
```
## CQA Test App에서의 MCP 구현
### 우리가 만드는 것
CQA Test App에서 **Jira 티켓 조회 및 관리 기능**을 MCP 서버로 구현합니다.
### 제공하는 MCP Tools
1. **jira_list_projects**: 프로젝트 목록 조회
2. **jira_search_issues**: JQL을 사용한 이슈 검색
3. **jira_get_issue**: 특정 이슈 상세 정보 조회
4. **jira_get_comments**: 이슈 댓글 조회
5. **jira_create_issue**: 새 이슈 생성
### 연동 방식
- **Flava MCP Hub**: Hub를 통한 중앙 관리
- **직접 연결**: Claude Desktop 등에서 직접 연결
- **HTTP API**: REST API 형태로 접근
- **Web UI**: 브라우저 기반 테스트 인터페이스
## 다음 단계
MCP 서버 구현에 대한 자세한 내용은 다음 문서들을 참고하세요:
- [MCP 서버 구현 가이드](mcp-implementation.md) - 실제 코드 구현 방법
- [Jira Tools 상세 가이드](jira-tools.md) - 각 도구의 사용법
- [배포 및 설정 가이드](deployment-guide.md) - 프로덕션 환경 설정