MCP(Model Context Protocol) - AI가 세상과 소통하는 새로운 방법

 

MCP가 왜 필요할까?

AI 챗봇을 사용하다 보면 이런 아쉬움을 느낀 적이 있을 것입니다. "내 구글 드라이브 파일을 직접 읽어줬으면 좋겠는데...", "우리 회사 데이터베이스와 연결해서 답변해줬으면 좋겠는데..." 바로 이런 문제를 해결하기 위해 Anthropic에서 만든 것이 MCP(Model Context Protocol)입니다.

MCP서버와 클라이언트를 구현하는 것이 아니라, MCP가 어떤것이고 어떻게 사용할 수 있을지 insight 관점에서 살펴보겠습니다.

 

MCP란 무엇인가?

쉬운 비유로 이해하기

MCP(Model Context Protocol)는 USB-C 포트에 비유할 수 있습니다.
USB-C가 다양한 기기를 하나의 표준 방식으로 연결해 주듯,
MCP는 AI 모델과 다양한 데이터 소스를 표준화된 방식으로 연결해 줍니다.

기술적 정의

MCP는 개발자가 데이터 소스와 AI 도구 간에 안전하고 양방향적인 연결을 구축할 수 있게 해주는 오픈 표준 프로토콜입니다.
즉, 애플리케이션이 LLM(대규모 언어 모델)에 컨텍스트를 제공하는 방식을 표준화한 규격입니다.


MCP의 핵심 구조

 

  • MCP 호스트 (Host)
    • 하나 이상의 MCP 클라이언트를 관리하는 AI 애플리케이션
    • 예: Claude Desktop, Claude Code, Cursor
  • MCP 클라이언트 (Client)
    • MCP 서버와 연결을 유지하고,
    • 서버에서 받은 컨텍스트를 MCP 호스트가 활용할 수 있도록 전달하는 중간 역할
  • MCP 서버 (Server)
    • MCP 클라이언트에 컨텍스트(데이터·기능)를 제공하는 프로그램
    • 로컬 MCP 서버 (같은 PC에서 실행)와
    • 원격 MCP 서버 (외부 API·서비스 제공) 두 가지 형태 존재
  • MCP 호스트가 MCP 서버에 연결되면, 이를 관리하기 위해 MCP 클라이언트 객체가 인스턴스화됩니다.
  • MCP 클라이언트와 서버는 1:1 연결 구조를 가집니다.

MCP 서버의 제공 기능

  1. 리소스 (Resources)
    • 클라이언트가 읽을 수 있는 데이터
    • 예: 파일, 데이터베이스 레코드, API 응답 등
    • AI가 참조할 수 있는 모든 형태의 정적/동적 데이터
  2. 도구 (Tools)
    • LLM이 호출할 수 있는 실행 기능 (사용자 승인 필요)
    • 예: 이메일 보내기, 파일 생성하기, 계산하기
  3. 프롬프트 (Prompts)
    • 사용자가 특정 작업을 쉽게 수행하도록 돕는 미리 작성된 템플릿/지시문
    • 예: 보고서 작성 템플릿, 번역 요청용 프롬프트

실생활에서의 MCP 활용 사례

  • 📁 업무용 파일 관리
    사용자: “어제 작성한 마케팅 계획서를 요약해줘”
    AI: (구글 드라이브 MCP 서버를 통해 파일 검색·열람)
    → “2024 Q4 마케팅 전략.docx 문서를 확인했습니다. 주요 요약은…”
  • 💬 팀 커뮤니케이션
    사용자: “이번 주 프로젝트 관련 슬랙 대화 정리해줘”
    AI: (Slack MCP 서버로 #프로젝트-알파 채널 대화 조회)
    → “이번 주 핵심 논의사항은 일정 조율, 기능 A 확정, 버그 B 해결…”
  • 💾 데이터베이스 조회
    사용자: “지난달 매출 데이터 분석해줘”
    AI: (PostgreSQL MCP 서버로 데이터베이스 질의)
    → “지난달 총 매출은 1,200만 원이며, 전월 대비 +12% 성장했습니다.”
  • 🧾 금융·업무 자동화 (추가 예시)
    사용자: “이번 달 법인카드 사용 내역을 정리해서 PDF로 만들어줘”
    AI: (은행 API MCP + PDF Writer MCP 연동)
    → “총 42건의 거래 내역을 정리했습니다. 2025-09 법인카드내역.pdf 파일을 생성했습니다.”
  • 🌐 웹 브라우저 자동화 (추가 예시)
    사용자: “우리 경쟁사 홈페이지의 신규 제품 정보를 찾아줘”
    AI: (Puppeteer MCP 서버 활용)
    → “경쟁사 사이트에 ‘Pro X2’라는 신제품이 공개되었으며, 주요 기능은…”

MCP의 장점

  • 🔧 표준화
    • 모든 AI 애플리케이션이 동일한 방식으로 외부 시스템에 연결
    • 개발자는 각 AI마다 별도의 커넥터를 만들 필요 없음
  • 🔒 보안성
    • 안전한 양방향 통신 구조
    • 권한 관리·접근 제어 내장 → 기업 환경에서도 활용 가능
  • 🚀 확장성
    • 새로운 데이터 소스나 툴을 쉽게 추가 가능
    • 기존 시스템에 영향을 주지 않고 기능 확장
  • 🛠️ 개발 편의성
    • Google Drive, Slack, GitHub, Git, PostgreSQL, Puppeteer 등 미리 구축된 MCP 서버 제공
    • Python, TypeScript, C# 등 다양한 SDK 지원

 


 

Claude에서 MCP 연동하기

MCP(Model Context Protocol)는 현재 Claude 데스크톱, Cursor, Cline 등 여러 AI 툴과 연동되고 있으며, OpenAI도 조만간 지원할 것이라는 소식이 있습니다.
여기서는 Claude 데스크톱과 Cursor를 예시로 간단히 MCP 연동 과정을 살펴본 뒤, 왜 MCP가 주목받는지 정리해 보겠습니다.


1. Node.js 설치

MCP 서버 실행을 위해 Node.js가 필요합니다.

  • 다운로드: Node.js 공식 사이트
  • 설치 후 확인:버전이 출력되면 정상 설치 완료입니다.
  • node --version

https://nodejs.org/ko/download

 

Node.js — Node.js® 다운로드

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

nodejs.org


2. Claude Desktop에서 MCP 설정

먼저 Claude Desktop을 설치합니다.

 

 

Claude desktop에서 MCP를 설정합니다. (현재는 유료 계정에서 MCP설정 없이 connect방식으로 제공됩니다. 무료버전에서는 아래와 같이 수동 설정이 필요합니다)

  1. 설정 열기
    • Ctrl + , 또는 메뉴 → 파일 → 설정
    • 좌측 메뉴에서 개발자 → 구성 편집 선택
  2. 구성 파일 수정
    • 탐색기가 열리면 claude_desktop_config.json을 메모장 등으로 편집
    • 아래 내용을 추가 후 저장합니다.
    {
      "mcpServers": {
        "filesystem": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "/Users/username/Desktop",
            "/Users/username/Download",
          ]
        }
      }
    }
    "/user/username/Desktop" 부분이 MCP로 접근 가능한 폴더목록들입니다. 윈도우에서는 c:\\work등으로 경로를 지정해야합니다.
     
  3. Claude 재시작단순 종료가 아닌 윈도우 트레이 아이콘까지 완전히 종료 후 다시 실행

 

 

3. Filesystem MCP 사용

재시작하면 Claude에 Filesystem MCP가 추가된 것을 확인할 수 있습니다.

  • Filesystem을 클릭하면 권한 요청이 표시되며, 허용 시 로컬 디렉토리 접근이 가능합니다.
  • 이제 Claude가 직접 로컬 PC에 파일을 생성·편집할 수 있게 됩니다.


4. 실행 예시

예: mcstest 폴더를 만들고, 그 안에 MCP 설명 HTML 파일 생성 요청

  1. Claude에게 프롬프트 입력:
  2.  
    mcstest 폴더에 MCP를 설명하는 글을 html 파일로 생성해 주세요.
  3. Claude가 폴더 생성 → 파일 생성 → 권한 요청 단계를 거치며 HTML 파일을 작성
  4. 결과:
    • C:\mcptest\mcstest\mcp_explanation.html 파일 생성
    • 열어보면 MCP 정의, 기능, 장점이 정리된 HTML 페이지가 표시됨


  • 과거라면 로컬 코드 실행/스크립트 작성이 필요했던 작업을 Claude + MCP 조합만으로 간단히 처리 가능
  • 보안·권한 제어가 내장되어 있어 사용자가 승인한 디렉토리와 동작만 실행됨
  • 업무 자동화, 문서 생성, 테스트 코드 작성 등 다양한 분야로 확장 가능

Cursor와 MCP 연동하기

이번에는 Playwright MCP를 Cursor와 연동해 보았습니다.

Playwright는 Selenium과 같은 브라우저 자동화 도구이지만, Microsoft가 만든 최신 버전으로 속도·안정성·모던 웹 지원 측면에서 Selenium보다 개선된 점이 많습니다.
Playwright MCP 관련 내용은 공식 GitHub 저장소에서 확인할 수 있습니다.

https://github.com/microsoft/playwright-mcp

 

GitHub - microsoft/playwright-mcp: Playwright MCP server

Playwright MCP server. Contribute to microsoft/playwright-mcp development by creating an account on GitHub.

github.com

 

 


1. MCP 설정하기

  1. Cursor 설정 메뉴에서 Tools & Integrations → Add Custom MCP를 선택합니다.
    (앞으로는 클릭 한 번으로 연동되는 방식도 제공될 것으로 보입니다.)
  2. mcp.json 파일을 열고, GitHub에 안내된 설정 내용을 붙여 넣습니다. (위 링크에서 아래 내용을 복사 붙여넣기합니다)
  3. 저장 후 실행하면 아래와 같이 Playwright가 MCP 서버로 추가되고 활성화됩니다.


2. 프롬프트 실행하기

Cursor에서 다음과 같은 프롬프트를 입력했습니다. (ID/비밀번호는 가렸습니다.)

www.naver.com에 접속해서 id=OOOO, 비밀번호=XXXX 로 로그인 후 https://mail.naver.com/v2/folders/-1/unread 로 이동해서 제목 10개만 출력해주세요.
 

3. 실행 결과

놀랍게도 실제 브라우저가 열리면서:

  • 로그인 페이지로 이동 → 아이디/비밀번호 입력 → 로그인 버튼 클릭
  • 네이버 메일 페이지 이동 → 메일 제목 10개 추출

까지 자동으로 수행했습니다.


Selenium으로는 반나절 가까이 걸리던 작업이 Playwright MCP + Cursor 환경에서는 단 1분 만에 완료되었습니다.

“AI + MCP + Playwright” 조합이 업무 자동화와 테스트에 얼마나 큰 잠재력을 가지는지 실감할 수 있었습니다.

 

 

 

Figma MCP 서버 연동

 

Figma는 최근 앱과 웹의 UI/UX 디자인에서 가장 널리 사용되는 프로그램입니다.
Figma MCP는 요즘 주목받는 ‘바이브 코딩(Vibe Coding)’과 비슷하게, ‘바이브 디자인(Vibe Design)’으로 볼 수 있습니다.
전문적인 디자인 지식이 없어도 자연어를 통해 Figma 데스크톱을 활용해 손쉽게 디자인을 생성할 수 있습니다.


1. 환경 준비

bun 설치
Windows PowerShell(관리자 모드)에서 아래 명령어 실행:설치가 완료되면 bunx 명령어를 사용할 수 있습니다.

powershell -c "irm bun.sh/install.ps1|iex"

이후 아래를 실행합니다.

powershell -c "irm bun.sh/install.ps1|iex"

 

Figma 데스크톱 설치
Figma 다운로드 페이지에서 앱을 설치하고 로그인합니다.( https://www.figma.com/ko-kr/downloads/ )

 


2. Figma 프로젝트 생성

  • Figma 실행 후 만들기 버튼을 눌러 빈 화면을 생성합니다.
  • 프로젝트 이름을 예시로 mcptest로 변경합니다.


3. Figma MCP 플러그인 실행

  1. Figma에서 Cursor Talk To Figma MCP Plugin을 설치합니다.
  2. 플러그인 실행 후 WebSocket 서버 포트를 확인합니다. (예: 3055)
  3. 녹색 상태 표시(Connected to server in channel ...)가 보이면 정상 연결된 것입니다.
  4. Copy to Clipboard 버튼을 눌러 MCP 설정 내용을 복사합니다.
  5. 아래 채널로 Cursor에 연결됩니다. 채널 내용도 복사합니다.


4. Cursor에서 MCP 서버 설정

  1. Cursor → Settings → MCP & Integrations → New MCP Server 선택
  2. 복사한  MCP 설정 내용을 붙여넣고 mcp.json 파일을 아래와 같이 수정합니다:

 

설정 후 TalkToFigma 항목이 Enable로 전환되면 연결 완료입니다.


5. 실제 사용 예시

  • Cursor에서 프롬프트 예시:
  • “Figma와 연결된 fknnxdti 채널을 사용해 순양그룹 모바일 웹 디자인을 만들어줘.”
  • 이후 Cursor가 Figma와 실시간으로 연동되어,
    텍스트 프롬프트 기반으로 UI 요소를 생성하고 화면을 완성해 줍니다.


  • Figma MCP + Cursor 조합은 텍스트 지시만으로 UI/UX 디자인을 자동 생성·수정할 수 있는 강력한 워크플로우입니다.
  • 디자이너뿐 아니라 비전문가도 손쉽게 프로토타입을 제작할 수 있으며, 개발 과정과 자연스럽게 이어집니다.

 

MCP 서버 허브: punkpeye/awesome-mcp-servers


https://github.com/punkpeye/awesome-mcp-servers
MCP의 client와 server등을 직접 만들어보고 싶거나, MCP(Model Context Protocol) 서버 목록을 찾는다면 가장 먼저 참고할 곳은 GitHub 저장소 punkpeye/awesome-mcp-servers입니다.
오픈소스 커뮤니티에서 사실상 표준 카탈로그처럼 활용되고 있습니다.
다양한 MCP 서버를 카테고리별로 정리 (예: 데이터베이스, 클라우드, 브라우저 자동화, 개발도구, 커뮤니케이션 툴 등)되고 각 서버는 설치 방법, 사용 예시, 관련 문서 링크가 포함되어 있어 바로 활용 가능
GitHub 스타 수만 수만 개에 달하며, MCP 관련 자료 중 가장 주목받는 저장소입니다.

1000개이상의 MCP가 등록되어있으며, 새롭게 계속 추가되고 있습니다.

MCP의 구현은 https://modelcontextprotocol.io/docs/getting-started/intro 에 구현 내용에 대한 설명이 있고, awsome-mcp-servers의 코드를 보고 참조할 수 있습니다.

 

Server code example 개요

  • 공식 문서의 예제로, NWS(미국 기상청) API를 호출하는 MCP 서버입니다.
  • 레포: weather-server-python
  • 등록되는 tool (2개)
    • get_alerts(state: str): 주(state)별 활성 기상 경보 조회
    • get_forecast(lat: float, lon: float): 위도/경도로 예보 조회(포인트 조회 → forecast URL 호출)
  • 통신 방식
    • StdioServerTransport를 사용해 JSON-RPC over STDIO로 Host(예: Claude Desktop)와 통신합니다.
  • 실행 진입점
    • async def main()에서 서버를 초기화하고 서버 루프를 시작합니다.
  • (선택) 실행 예시
    • uv run weather.py (의존성/환경 자동 준비)
    • Claude Desktop 설정에 mcpServers.weather로 등록하면 툴 패널에서 두 tool이 노출됩니다.

레포:

https://github.com/modelcontextprotocol/quickstart-resources/tree/main/weather-server-python

 

quickstart-resources/weather-server-python at main · modelcontextprotocol/quickstart-resources

A repository of servers and clients from the Model Context Protocol tutorials - modelcontextprotocol/quickstart-resources

github.com

 

from typing import Any
import httpx
from mcp.server.fastmcp import FastMCP

# Initialize FastMCP server
mcp = FastMCP("weather")

# Constants
NWS_API_BASE = "https://api.weather.gov"
USER_AGENT = "weather-app/1.0"

async def make_nws_request(url: str) -> dict[str, Any] | None:
    """Make a request to the NWS API with proper error handling."""
    headers = {
        "User-Agent": USER_AGENT,
        "Accept": "application/geo+json"
    }
    async with httpx.AsyncClient() as client:
        try:
            response = await client.get(url, headers=headers, timeout=30.0)
            response.raise_for_status()
            return response.json()
        except Exception:
            return None

def format_alert(feature: dict) -> str:
    """Format an alert feature into a readable string."""
    props = feature["properties"]
    return f"""
Event: {props.get('event', 'Unknown')}
Area: {props.get('areaDesc', 'Unknown')}
Severity: {props.get('severity', 'Unknown')}
Description: {props.get('description', 'No description available')}
Instructions: {props.get('instruction', 'No specific instructions provided')}
"""

@mcp.tool()
async def get_alerts(state: str) -> str:
    """Get weather alerts for a US state.

    Args:
        state: Two-letter US state code (e.g. CA, NY)
    """
    url = f"{NWS_API_BASE}/alerts/active/area/{state}"
    data = await make_nws_request(url)

    if not data or "features" not in data:
        return "Unable to fetch alerts or no alerts found."

    if not data["features"]:
        return "No active alerts for this state."

    alerts = [format_alert(feature) for feature in data["features"]]
    return "\n---\n".join(alerts)

@mcp.tool()
async def get_forecast(latitude: float, longitude: float) -> str:
    """Get weather forecast for a location.

    Args:
        latitude: Latitude of the location
        longitude: Longitude of the location
    """
    # First get the forecast grid endpoint
    points_url = f"{NWS_API_BASE}/points/{latitude},{longitude}"
    points_data = await make_nws_request(points_url)

    if not points_data:
        return "Unable to fetch forecast data for this location."

    # Get the forecast URL from the points response
    forecast_url = points_data["properties"]["forecast"]
    forecast_data = await make_nws_request(forecast_url)

    if not forecast_data:
        return "Unable to fetch detailed forecast."

    # Format the periods into a readable forecast
    periods = forecast_data["properties"]["periods"]
    forecasts = []
    for period in periods[:5]:  # Only show next 5 periods
        forecast = f"""
{period['name']}:
Temperature: {period['temperature']}°{period['temperatureUnit']}
Wind: {period['windSpeed']} {period['windDirection']}
Forecast: {period['detailedForecast']}
"""
        forecasts.append(forecast)

    return "\n---\n".join(forecasts)

if __name__ == "__main__":
    # Initialize and run the server
    mcp.run(transport='stdio')

 

Claude 연결 예

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": ["--directory", "/ABSOLUTE/PATH/weather", "run", "weather.py"]
    }
  }
}

MCP 끝판왕 Zapier

1. Zapier란?

  • 7,000개 이상의 SaaS(슬랙, 지메일, 노션 등)를 연결해주는 자동화 플랫폼
  • “트리거 → 액션” 구조로 업무 흐름을 자동화 (예: “이메일이 오면 슬랙 알림 보내기”)
  • 비개발자도 GUI로 쉽게 사용 가능

2. Zapier와 MCP의 만남

  • MCP(Model Context Protocol)는 AI가 외부 리소스와 안전하게 연결되도록 하는 표준 프로토콜
  • Zapier에 이미 연결된 7,000여 개 서비스 전체를 AI에서 바로 활용 가능

 

3. 장점

  • 범용성: 한 번 연결로 대부분의 SaaS 지원
  • 생산성: AI가 Zapier를 통해 “Slack 메시지 보내기”, “Trello 카드 만들기” 같은 액션을 수행
  • 개발 부담↓: 개별 MCP 서버를 직접 만들 필요 없음

4. 한계

  • Zapier가 지원하지 않는 서비스는 불가능 (특히 사내용, 로컬 시스템)
  • 요금제 제약: 무료 플랜은 제한적, 실제 자동화는 유료 필요
  • 세부 제어 한계: Zapier가 제공하는 액션 범위까지만 실행 가능

5. 사용 예시

  • “이번 주 새 이메일 중 ‘계약서’ 키워드가 들어간 파일을 Dropbox에 저장하고 Slack에 알림 보내줘”
    → AI 프롬프트 → MCP → Zapier → Gmail + Dropbox + Slack 자동 실행
  • “고객 문의(구글폼 제출)를 Notion 데이터베이스에 정리하고, Trello 카드 생성해줘”
    → AI가 Zapier 액션 호출 → 전 과정 자동화

 

MCP를 떠올리면 자연스럽게 영화 아이언맨의 ‘자비스(J.A.R.V.I.S.)가 생각납니다.
주인공이 말 한마디만 하면 수많은 시스템을 제어하고, 정보를 수집하며, 복잡한 작업을 동시에 수행하는 궁극의 AI 비서.

MCP는 AI가 다양한 서비스·데이터·도구와 표준화된 방식으로 연결될 수 있도록 해줍니다.

MCP를 통해 LLM이라는 두뇌에, MCP라는 손발을 달아주었습니다.
여러 MCP 서버가 확장되고 결합된다면, ‘자비스’는 더 이상 영화 속 상상이 아니라 현실에서 구현 가능한 AI 어시스턴트가 될 것입니다.

'LLM' 카테고리의 다른 글

Gpt oss 20B 파인튜닝  (0) 2025.09.28
GPT-OSS  (1) 2025.09.22
NotebookLM  (3) 2025.08.29
Vibe coding과 Cursor - 2.Cursor  (3) 2025.08.03
Vibe coding과 Cursor - 1. Vibe Coding이란?  (2) 2025.08.02

+ Recent posts