# 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) - 프로덕션 환경 설정