MCP(Model Context Protocol)

가온·2025년 4월 26일

저번에도 MCP에 대해 적었지만 아직 정확히 이해를 못했다.
그래서 다시 적어보는 MCP에 대한 글
(이 글은 소정의 gpt의 도움을 받아 작성되었습니다...)

1. MCP란 무엇인가?

MCP(Model Context Protocol) 는 대형 언어 모델(LLM)이 도구·데이터·서비스와 통신할 때 사용하는 HTTP + JSON 기반 표준이다.

  • MCP 서버 : REST·클라우드 API·로컬 파일 시스템 같은 리소스를 ‘Tool’이라는 함수 단위로 노출

  • MCP 호스트(클라이언트) : Claude Desktop, Cursor IDE, 특정 백엔드 에이전트 등. 서버를 발견-호출-표시한다

  • 목적 : 임시 스크래핑·프롬프트 삽입 대신 안전‧재사용 가능한 통신층 제공

-> 서버와 클라이언트로 이루어져있고, 프로토콜(규약)이다. 라고 이해함

2. 왜 필요한가?

기존 방식

  • 프롬프트에 “검색해서 붙여 넣어” → 예측 불가능·보안 취약
  • 서비스별 비공개 SDK·애드온
  • 결과가 HTML·텍스트로 뒤섞임

MCP 방식

  • Tool 스키마 를 명시 → 검증 가능·권한 제어
  • 공통 JSON 계약 → 한 번 구현, 모든 MCP 호스트에서 재사용
  • 응답도 JSON → LLM이 후처리·의사결정에 바로 활용

--> 결국엔 json 형식(아닐수도 있지만 대부분 json)으로 통일했다는 게 핵심인 것 같음.

3. 핵심 구조 & 흐름

sequenceDiagram
actor User
participant Host as LLM 호스트
participant Server as MCP 서버
User->>Host: “거실 불 파랑으로”
Host->>Server: POST /invoke {tool:setColor, args:{room:"living", color:"blue"}}
Server-->>Host: {"status":"ok"}
Host-->>User: “완료! 거실 조명이 파랑이에요”
  1. Discovery Host가 GET /schema 로 Tool 목록 수신
  2. Planning LLM이 자연어 → Tool + args 결정
  3. Invocation POST /invoke
  4. Execution & Response 서버가 실제 작업 수행 후 JSON 반환
  5. Rendering Host가 사용자에게 결과 표시

-> 정해진 구조가 있고 LLM 클라이언트와 MCP 서버를 통해 원하는 서비스에 적용하는 것 같음

4. 스키마 맛보기

{
  "tools": {
    "perform_ocr": {
      "description": "Extract raw text from an image",
      "parameters": {
        "type": "object",
        "properties": { "source": { "type": "string" } },
        "required": ["source"]
      },
      "returns": {
        "type": "object",
        "properties": {
          "text": {"type": "string"},
          "confidence": {"type": "number"}
        }
      }
    }
  }
}
  • JSON Schema 기반 → 언어 독립, 타입 안전
  • 모든 Tool이 입력·출력 계약을 갖기 때문에 LLM이 “파라미터 파악→안전 호출” 가능

5. 활용 예시

  • 이미지 OCR
  • 스마트홈
  • 개발 IDE
  • 시장 예측
  • AI 비서
    등등
    거의 전범위에서 활용 가능한 듯...?

6. 장점

  • 표준화 : USB-C처럼 “한 케이블”로 모든 도구 연결
  • 보안·투명성 : Host가 입력값·Tool 목록 검증 → 프롬프트 주입·임의 코드 실행 위험 감소
  • 관찰 가능성 : 호출 로그·메트릭 엔드포인트 권장
  • 플러그-앤-플레이 : Server 한 번 배포 → Claude, ChatGPT, CLI 등 다중 UI에서 재사용
  • 멀티 LLM 친화적 : Server는 모델 무관; Host만 교체하면 Anthropic·OpenAI·Mistral 자유 스위칭

LLM 사용을 표준화했다는 게 핵심인가 싶음

7. 현재 제약 및 이슈

  • 게이트키핑 “어떤 MCP를 호출·노출할지” 결정 권한이 Host(Claude·ChatGPT)에 있어 플랫폼 파워 우려
  • 초기 UX 수동 설치·권한 팝업 난발 등 일반 사용자 진입장벽 높음
  • 보안 모델 미성숙 OAuth 범위·샌드박스는 초안 수준
  • 버전 변동성 0.x 단계라 SDK·Host 간 호환 이슈 잦음

아무래도 LLM 활용 도구다 보니 LLM 의존성이 큰 것 같고, MCP 서버가 접근할 수 있어야하니 보안이 약한 것 같다.

8. 비즈니스 전망

  • MCP 앱스토어+검색 : Host가 “기본 MCP 슬롯”을 유료로 판매할 가능성 → 새 배치 경제학 탄생
  • API → MCP 변환 SaaS : 레거시 REST를 자동 래핑
  • 보안 프록시 : “Cloudflare for MCPs”
  • 버티컬 Host : 의료, 여행, 법률에 특화된 전용 LLM 클라이언트

스미더리가 앱스토어, 플레이스토어가 될 거라던데 정말 그렇게 될까?

궁금했던 점

  • MCP는 챗봇 전용인가?
    -> 아님. IDE, 모바일 앱, 음성 어시스턴트 등 LLM을 활용한 서비스에서는 모두 사용가능한 듯
  • 꼭 GPT랑 Clude만 써야하나?
    -> 아님. Host가 필요하지만 로컬 LLM을 붙인 CLI 툴도 가능함.

LLM의 수익모델을 MCP가 바꿔놓으려나
어떻게 확장될지 궁금하고 생태계에 들어가고 싶다는 생각...
흠 신기한데

0개의 댓글