MCP - 1일차

Jun·2026년 1월 14일

MCP

목록 보기
1/20

🌐 Model Context Protocol (MCP) 완벽 정리

1. MCP란 무엇인가?

Model Context Protocol(MCP)은 앤스로픽(Anthropic)에서 발표한
AI 모델과 데이터 소스 간의 연결 표준 규격입니다.

쉽게 말해, AI가 내 컴퓨터의 파일, 데이터베이스, 혹은 외부 서비스(GitHub, Slack 등)에 있는 정보를 읽거나 제어할 수 있도록 해주는 "AI 전용 USB 포트"라고 이해하면 쉽습니다.


2. MCP가 등장한 이유 (Problem & Solution)

  • 기존의 문제: AI 모델(Claude, ChatGPT 등)에게 내 로컬 데이터를 보여주려면 매번 파일을 업로드하거나, 각 서비스마다 복잡한 API 연동 코드를 새로 짜야 했습니다.
  • MCP의 해결책: 모든 데이터 소스를 동일한 규격(Protocol)으로 통일하여, AI가 어떤 데이터든 즉시 이해하고 접근할 수 있는 공통 인터페이스를 제공합니다.

3. MCP의 핵심 구성 요소

MCP 아키텍처는 크게 세 가지 계층으로 나뉩니다:

  1. MCP Host (호스트): AI 모델이 구동되는 클라이언트 앱 (예: Claude Desktop, IDE)
  2. MCP Client (클라이언트): 서버와 통신하며 AI에게 도구를 제공하는 인터페이스
  3. MCP Server (서버): 특정 데이터(SQLite, Google Drive, 로컬 파일 등)를 읽어서 AI에게 전달해주는 실제 프로그램

4. MCP 도입 시 장점

장점상세 내용
확장성한 번 만든 MCP 서버는 클로드뿐만 아니라 다른 AI 모델에서도 그대로 사용 가능
보안데이터를 AI 서버에 전송하지 않고, 로컬에서 필요한 정보만 선택적으로 제공
실시간성학습 데이터가 아닌, 현재 내 컴퓨터에 있는 최신 정보를 실시간으로 참조
개발 효율복잡한 연동 코드 없이 오픈소스 MCP 서버를 내려받아 바로 연결 가능

5. 실제 활용 사례

  • 로컬 파일 분석: "다운로드 폴더에 있는 모든 PDF 파일을 요약해줘."
  • 데이터베이스 연동: "내 SQL 데이터베이스에서 지난주 매출 데이터를 가져와서 그래프로 그려줘."
  • 개발 도구 자동화: "GitHub 저장소에서 이슈 목록을 가져와서 코드를 수정하고 PR을 올려줘."


🐍 Python 기초에서 MCP 활용까지: 단계별 가이드

MCP(Model Context Protocol) 서버를 구축하거나 커스텀 도구를 만들 때 Python은 가장 강력하고 표준적인 언어입니다. AI 환경에 친숙한 파이썬의 기초부터 MCP 연결까지의 과정을 정리합니다.


1단계: 왜 MCP 개발에 파이썬인가?

  • 풍부한 라이브러리: AI 및 데이터 처리에 특화된 라이브러리가 가장 많습니다.
  • 공식 SDK 지원: Anthropic에서 MCP 개발을 위한 Python SDK를 공식 제공합니다.
  • 낮은 진입장벽: 문법이 간결하여 AI 모델이 코드를 생성하거나 수정하기에 최적화되어 있습니다.

2단계: 파이썬 기초 핵심 요약

MCP 서버 개발을 위해 반드시 알아야 할 최소한의 파이썬 개념입니다.
먼저 구글 코랩(colab)에서 사용하는 마크다운 언어부터 학습하겠습니다.

velog와 마찬가지로 마크다운(Markdown) 언어를 사용합니다.



마크다운(Markdown)


헤더(Headers)

#제목1
##제목2
###제목3
####제목4
#####제목5

마치 책의 목차처럼 큰 주제에서 세부 주제로 내려가는 구조를 가집니다.


제목1 (H1): 문서 전체의 제목

제목2 (H2): 대주제 / 장(Chapter)

제목3 (H3): 중주제 / 절(Section)

제목4 (H4): 소주제 / 항목

제목5 (H5): 세부 항목

작성 시 주의사항

  • 띄어쓰기: 반드시 # 뒤에 한 칸을 띄우고 글자를 적어야 정상적으로 적용됩니다.

  • (O) # 제목

  • (X) #제목 (일부 에디터에서는 인식하지 못함)


줄바꿈 (Line break)

일반 줄비꿈이 동작하지 않는 환경(설정 및 버전에 따라)의 경우,
‘2번의 띄어쓰기’나 <br>를 활용할 수 있습니다.


밑줄, 강조

이탤릭은 별표 혹은 언더바 사용합니다.

두껍게는 별표 혹은 언더바 2개 사용합니다.

취소선 은 ~~물결~~ 사용합니다.

밑줄 은 <u>밑줄</u> 사용합니다.

강조는 `back tick` 사용합니다.

윗첨자는 0(*n*<sup>2</sup>) 사용합니다.

아래첨자 0(*n*<sub>2</sub>) 사용합니다.


링크

문서 안에서 [참조 링크]를 그대로 사용할 수도 있습니다.

[링크 이름](링크 주소 "링크 설명")

Google

Naver

GitHub


다음과 같이 문서 내 일반 URL이나 꺾쇠 괄호(< >)안의 URL은 자동으로 링크를 사용합니다.

https://google.com
<https://naver.com>

구글 홈페이지 : https://google.com
네이버 홈페이지 : https://naver.com


이미지(images)

1. ![대체 텍스트](사진 주소 "링크 설명")

2. ![name][girl]
[girl]: https://www.w3schools.com/html/img_girl.jpg "Girl in the Jacket."

대체 텍스트는 이미지가 화면에 정상적으로 표시되지 않거나,
시각 장애인이 화면 낭독기(Screen Reader)를 사용할 때 이미지 대신 읽어주는 설명글입니다.

name

이미지에 링크

[![대체 텍스트](사진 주소)](링크 주소)

Vue



코드강조

인라인 코드 강조

background혹은 background-image 속성으로 요소에 배경 이미지를 삽입할 수 있습니다.

블록 코드 강조

`를 3번 이상 입력하고 코드 종류도 적습니다.

```python
s = "Python syntax highlighting"
print s

s = "Python syntax highlighting"
print s

표(table)

<table> 태그로 변환됩니다.
헤더 셀을 구분할 때 3개 이상의 -(dash) 기호가 필요합니다.
헤더 셀을 구분하면서 :(Colons) 기호로 셀(열/칸) 안에 내용을 정렬할 수 있습니다.
가장 좌측과 가장 우측에 있는 |(vertical bar) 기호는 생략 가능합니다.

|aa|bb|
|--|--|
|1|2|
|2|3|
aabb
12
23

목록

1. 순서가 필요한 목록
3. 순서가 필요한 목록
  - 순서가 필요하지 않은 목록(서브)
  - 순서가 필요하지 않은 목록(서브)
    - 순서가 필요하지 않은 목록(서브)
    - - 순서가 필요하지 않은 목록(서브)
3. 순서가 필요한 목록
  1. 순서가 필요한 목록(서브)
  1. 순서가 필요한 목록(서브)
9. 순서가 필요한 목록

- 순서가 필요하지 않은 목록에 사용 가능한 기호
  - 대쉬(hyphen)
  * 별표(asterisks)
  + 더하기(plus sign)

  1. 순서가 필요한 목록
  2. 순서가 필요한 목록
  • 순서가 필요하지 않은 목록(서브)
  • 순서가 필요하지 않은 목록(서브)
    • 순서가 필요하지 않은 목록(서브)
      • 순서가 필요하지 않은 목록(서브)
  1. 순서가 필요한 목록
    1. 순서가 필요한 목록(서브)
    2. 순서가 필요한 목록(서브)
  2. 순서가 필요한 목록
  • 순서가 필요하지 않은 목록에 사용 가능한 기호
    • 대쉬(hyphen)
    • 별표(asterisks)
    • 더하기(plus sign)

LaTex (레이텍)

x=y+1

$x=y+1$

$pe_3$

$y=x^2+z$

$PE_3^{alpha}$


$y=x^{2+z}$

$α \alpha \lambda$

$\frac{1}{2}$

$\sqrt{x}$

x=y+1

x=y+1x=y+1

pe3pe_3

y=x2+zy=x^2+z

PE3alphaPE_3^{alpha}

y=x2+zy=x^{2+z}

ααλα \alpha \lambda

12\frac{1}{2}

x\sqrt{x}


profile
Hard Trying

0개의 댓글