MCP 알아보기

김민기·2025년 4월 19일
0

MCP (Model Context Protocol)

MCP란 무엇인가?

MCP는 애플리케이션이 LLM에게 컨텍스트를 제공하는 방식을 표준화한 개방형 프로토콜입니다.
마치 USB-C가 다양한 주변기기를 하나의 표준으로 연결하는 것처럼, MCP는 다양한 데이터 소스 및 도구를 LLM과 연결할 수 있는 통일된 인터페이스 역할을 합니다.


처음 접한 MCP, 혼란스러웠던 점

  • MCP는 React처럼 프레임워크일까?
  • 라이브러리처럼 사용하는 걸까?
  • 무엇을 만들 수 있고, 어떤 용도로 활용되는 걸까?

이러한 의문들을 정리하면서 MCP의 구조와 개념을 이해해보자.


MCP의 구성 요소

MCP Host

  • 사용자 인터페이스 제공
  • LLM과의 통합 담당
  • 여러 개의 MCP 클라이언트 관리
  • 보안 정책 실행

MCP Client

  • MCP 서버와의 통신 담당
  • 메시지 포맷 변환 및 전송 처리
  • 연결 상태 및 에러 관리

MCP Server

  • 리소스 제공 (데이터, 정보 등)
  • 도구 실행 (예: 계산기, DB 조회)
  • 프롬프트 처리
  • 자체 보안 처리

💡 MCP는 프로토콜이기 때문에 각 구성요소는 정의된 역할에 따라 동작해야 합니다.


Host, Client 직접 구현해보기?

📎 Quickstart - Client 개발 가이드

MCP 공식 문서에서는 다양한 언어(Node.js, Python, Kotlin 등)로 MCP 클라이언트를 직접 구현할 수 있도록 가이드를 제공합니다.
문서 내 예시는 Claude LLM을 기준으로 설명하고 있지만, MCP는 특정 모델에 종속되지 않는 모델 독립적인 오픈 프로토콜입니다.
결론적으로 Claude Desktop을 사용함으로써 내부에서 구현된 Client를 사용할 것이기 때문에 직접적으로 Client를 만들않고 MCP Server에 대해 알아봅니다.


MCP Server

Claude Desktop은 Host와 Client 역할을 모두 수행하므로 우리는 서버 구현에 집중하면 됩니다.

반드시 직접 구현해야 하나?

  • 다른 사람이 만들어둔 MCP 서버 사용 가능
  • 직접 MCP 서버를 구현해도 됨

MCP 서버 등록 방법 (Claude Desktop 기준)

  1. Claude Desktop 실행
  2. 설정 → 개발자 탭 → 설정 편집
  3. claude_desktop_config.json 파일 열기
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "C:\Users\YOUR_USERNAME\test.db"
      ]
    }
  }
}

✅ 이미 구현된 MCP 서버라면 위 설정만으로 사용 가능


MCP 서버는 어떻게 호출되는가?

ex) 계산기 MCP 서버

  1. Claude Desktop에 "1+1은?"이라고 프롬프트 입력
  2. Claude가 직접 계산할까? MCP 서버를 호출할까?

→ LLM은 입력된 프롬프트를 바탕으로 자체 처리 또는 MCP 리소스/툴 사용 여부를 스스로 판단

ℹ️ 간단한 연산은 MCP 서버 없이 처리할 가능성 높음


LLM에게 명시적으로 MCP 사용을 유도할 수 있음

프롬프트 예:

  • "MCP 서버를 사용해서 계산해줘"
  • "덧셈 도구를 이용해줘"

결론

  • MCP Host, Client를 직접 구현할 필요 없음
  • Claude Desktop만으로도 다양한 MCP 서버를 연결해 활용 가능

✅ MCP의 장점

  • LLM이 스스로 툴/리소스를 판단해 호출 가능
  • 실시간 외부 데이터 연동 가능

예: 현재 날씨 질의 시 학습된 정보가 아닌 실제 API 호출로 답변 가능


❌ MCP의 한계 및 우려

  • Claude, Cursor 등 일부 기업의 독점 가능성
  • MCP 서버 구현 가능한 도구의 제한
  • 보안 이슈 (파일 시스템 접근 등 MCP 서버에 따라 심각한 결과 초래 가능)

📚 참고 자료

💡 다음 문서에서 MCP 서버를 직접 구현하는 방법은 별도 포스트에서 다룰 예정입니다.

0개의 댓글