✨ 공부하며 성장하는 기록 공간입니다.
아직 부족한 점이 많고 배워야 할 것도 많지만, 그만큼 배우는 즐거움도 큽니다.
틀리거나 부족한 내용이 있다면 언제든지 편하게 지적해 주세요 😁
이 블로그는 오픈소스 프로젝트 githru-vscode-extension에 기여하면서 공부한 내용을 정리한 공간입니다.
처음보다 성장해 있는 나 자신을 기대하며 꾸준히 기록해나가겠습니다!
MCP 개요
최근 AI에 발전과 더불어 AI hallucination에 대한 부분이 두각되었습니다.
"Chat GPT가 오히려 더 멍청해졌다."
"사용을 하면 할 수록 별로다"
라는 의견들이 몇몇 들려오곤 했다.
AI를 잘 모르는 저에게는 꽤나 납득이 되는 결과라고 생각했습니다.
사람들의 질문에 대해 계속해서 답변을 하다보면 모호한 질문에 답변을 이상하게 낼 때도 있고, 잘못된 답변에 대해 짚고 가지 않아.
잘못된 학습이 될 수도 있다고 생각했습니다.(지극히 개인적인 의견입니다..)
MCP(Model Context Protocol)의 등장
이러한 배경 속에서 2024년 말 공개된 개방형 표준 MCP(Model Context Protocol)가 등장하였습니다.
MCP는 애플리케이션이 대형언어모델(LLM)에 컨텍스트 정보를 제공하는 방식을 표준화하는 개방적이고 보편적인 프로토콜입니다.
간단하게
┌──────────────┐ JSON-RPC 2.0 ┌──────────────┐
│ LLM App │ <─── standardized ───> │ MCP Server │
│ (Client) │ messages │ (Your tool) │
└─────┬────────┘ └─────┬────────┘
│ tools.call() │ exposes tools/resources
│ resources.read() │ enforces permissions
▼ ▼
사용자 질문 ──▶ "이 PR들 요약해줘"
답변 + 실행 ──▶ GitHub/Jira/DB/FS 등에 안전 접근
이라고 생각할 수 있습니다
이를 통해서 다양한 AI 모델이 다양한 데이터 소스와 도구에 표준화된 방식으로 연결할 수 있습니다.
또한 AI 애플리케이션을 더 쉽게 구축할 수 있게 만들기에 사용자에게 편리함 및 정확성을 극대화 해 줄 수 있습니다.
MCP가 필요한 이유
LLM의 한계
최근 대형언어모델(LLM, Large Language Model)은 놀라운 수준의 자연어 이해·생성 능력을 보여주고 있지만,
“기본적으로 닫힌 지식 시스템” 이라는 한계를 가지고 있습니다.
- 지식의 한계와 업데이트 문제
- 대형 언어 모델(LLM)을 훈련하는 데에는 엄청난 컴퓨팅 자원과 시간이 필요하므로 해당 훈련된 데이터만 알고 있음.
- 따라서 모델 지식은 항상 구식이고, 비용이 많이 드는 작업
- 전문 도메인 지식 부족
- LLM은 공개적인 데이터만 사용 가능
- 특정 비즈니스 로직에 대해 이해를 할 수 없음.
- 외부 데이터에 액세스할 통일된 표준이 없음
- LLM에 추가 정보를 제공하는 방법은 다양함(RAG(검색기반생성), 인터넷 검색 등)
- 모든 것은 표준화가 없기에 사용 정의 개발이 필수.
핵심 목적
이러한 이유들로, ANTHROPIC에서는 24년 말 Model Context Protocol을 개발을 하였습니다.🎉
- 컨텍스트 공유 표준화
- LLM 애플리케이션과 데이터 소스 간의 인터페이스를 JSON-RPC 기반으로 통일
- “어떤 데이터가 어떤 의미로 전달되는가”를 구조화된 컨텍스트로 정의
- 다양한 서버(파일, DB, SaaS 등) 간에도 일관된 접근 방식 보장
- 도구와 기능 노출
- MCP 서버는 특정 작업(예: “이슈 생성”, “PR 요약”)을 도구(tool) 로 정의
- 각 도구는 입력 스키마, 출력 형식, 실행 권한을 명확히 기술
- LLM은 “사용 가능한 도구 목록”을 질의하고, 사용자의 동의 하에 호출 가능
- 통합 워크플로우 구축
- 여러 데이터 소스와 도구를 조합한 워크플로우 생성
- 재사용 가능한 프롬프트 템플릿 제공
- 모듈식 구성을 통한 유연한 확장

주요 특징
MCP(Model Context Protocol)는 단순한 API 포맷이 아니라,
AI와 외부 시스템이 안전하게 협력할 수 있도록 설계된 통신 표준입니다.
- JSON-RPC 기반 통신
- 표준 JSON-RPC 2.0 메시지 포맷 사용
- JSON(JavaScript Object Notation)을 데이터 형식으로 사용하는 상태가 없는 경량 원격 프로시저 호출(Remote Procedure Call) 프로토콜
- AI 애플리케이션과 MCP 서버 간의 양방향 통신을 단순하고 일관된 방식으로 수행
- 상태기반 연결관리
- 서버와 클라이언트 간 능력 협상
- 표준 JSON-RPC 2.0 메시지 포맷 사용
// LLM → MCP Server
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools.call",
"params": {
"name": "summarizePRs",
"arguments": { "repo": "githru/core", "limit": 10 }
}
}
// MCP Server → LLM
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"summary": "10개의 PR이 병합되었으며 주요 변경사항은 UI 개선입니다."
}
}
- 보안 중심 설계
- 사용자 동의와 제어를 최우선으로 고려
- 데이터 프라이버시 보호
- 도구 사용에 대한 명시적 승인 필요
- MCP 서버는 명시적으로 정의된 기능만 노출.
- 유연한 확장성
- 다양한 리소스 타입 지원(image/ json 등..)
- 커스텀 도구 및 프롬프트 정의 가능

마무리
이제까지 MCP의 등장 배경, 간단하게 어떻게 동작하는 지를 살펴보았습니다.
지금까지 살펴본 JSON-RPC 기반 통신 구조와 보안, 확장성 설계를 통해 MCP 서버는 AI 시대에 진화할 수 있는 기반을 마련했습니다.
다음은 MCP의 아키텍처와 구성요소에 대해 살펴보겠습니다.
'OSSCA > 2025' 카테고리의 다른 글
| [OSSCA2025] MCP Server (0) | 2025.10.26 |
|---|---|
| [OSSCA2025] 2025 OSSCA 발대식 후기 (0) | 2025.07.14 |