MCP(Model Context Protocol)

Ruah·2025년 4월 3일
0

MCP 란?

MCP서버는 다양한 시스템과 도구에 대한 접근을 표준화된 방식으로 AI 애플리케이션에게 제공하는 Interface Wrapper이다.

MCP 서버가 노출하는 3가지 주요 인터페이스

1. Tool(도구)

AI가 직접 호출할 수 잇는 함수 기반 기능이다. 예를 들어, getWeatehr(), getForecast(), getAlerts() 등 모든 기능을 함수로 구현할 수 있기 때문에, 읽기/쓰기/시스템 제어 등모든 작업이 가능하다. AI가 컨텍스트에 따라 필요시 도구를 선택해 사용하게 된다.

2. Resource(자원)

AI가 접근할 수 있는 데이터라고 할 수있다. PDF, txt, Image, json 등 파일, DB, API 응답 등 정적(static) 혹은 동적(dynamic) 자원에 접근할 수있다.

  • 정적 데이터 : 고정된 파일
  • 동적 데이터 : 실행 시 마다 업데이트되거나 가져오는 데이터

3. Prompt(프롬프트)

사용자 정의 템플릿으로서, 반복적이고 복잡한 상호작용을 표준화한다.
사용자나 애플리케이션이 사전에 정의해 둔 템플릿으로 AI가 유연하게 동작 가능하다.

MCP 서버 개발 방법

MCP 서버 개발 방법에는 4가지가 있다고 볼수있다.
1. 직접 구현
2. AI로 생성
3. 커뮤니티 MCP 서버 활용
4. 공식 MCP 서버 사용

Tip : 이미 존재하는 MCP 서버가 잇을 가능성이 높기 때문에 먼저 찾아보고 서버포트를 정해야 한다.

MCP 서버 실행 방식

  1. Stdio 로컬 실행 방식 : stdin/stdout 채널 통해 실행
  2. SSE 원격 실행 (Remote) : Sever-Sent Events 방식 지원
  3. Docker Container 도커 컨테이너 실행 : Docker 기반으로도 MCP 서버 구동 가능

Composability(조합 가능성)

MCP를 이용한다면 하나의 애플리케이션이나 에이전트가 MCP 클라이언트이자 서버가 될 수 있을 것이다. 또한 이를 통해 전문화 된 하위 에이전트 조합이 가능해져 다층적 시스템 구축이 가능해 질것으로 예상된다.

Future of MCP

  1. 중앙 MCP 레지스트리 : MCP 서버 목록을 모아 놓은 중앙 디렉터리.
  • 현재 여러 언어로된 MCP SDK가 개발되고 있고, MCP는 점점 AI 생태계에서 표준화 되어지고 있다.
  1. 공식 서버 인증

MCP 서버는 오픈소스로 배포되기 때문에, 누가 어떤 코드를 올려도 가능하다. 만약 어떤 사람이 stripe-mcp-server라는 이름으로 악성코드가 심긴 서버를 올려놓는다면 이건 보안이 노출될 수 있는 큰 위험에 놓일 것이다.
따라서, 앞으로는 신뢰된 회사나 팀이 만들었다는 걸 보증하는 공식 인증 마크 같은게 붙을 예정이라고 한다.

  1. 에이전트 친화적 웹사이트

현재는 웹사이트가 사람이 쓰는걸 기준으로 만들어졌지만, 앞으로는 AI 에이전트도 그 웹사이트의 기능을 자동으로 이해하고 사용할 수 있도록 만들어져야한다.
예를 들어,

// https://example.com/.well-known/app.json
{
  "mcp_tools": ["getWeather", "getForecast"],
  "auth": {
    "type": "OAuth2",
    "token_url": "/oauth/token"
  }
}

처럼 에이전트가 자동으로 사이트 기능을 인식하고 사용할수 있도록 말이다.

  1. 인증/보안 강화

민감한 시스템(결제, 개인정보, 사내 db 등)에 접근하면, 보안은 필수이다.

따라서, 앞으로는 아래와 같은 보안 기능들이 지원될 것이다.

  1. OAuth 2.0
    • 구글 로그인, 깃허브 로그인등에 사용하는 표준 인증방식
    • AI 도 사용자처럼 인증받고 특정 권한 내에서만 접근하게 됨
  2. 세션 토큰
    • 로그인 후 유지되는 세션을 통해, 매번 로그인 하지 않아도 유지.
    • 안전하면서도 사용자 경험 좋게 만드는 방법
profile
집요한 주니어 개발자의 호되게 당했던 기록

0개의 댓글