WeniVooks

MCP 베이스캠프

MCP 소개

해당 내용을 고도화하여 책을 출간하였습니다. 한국어, 영어, 일본어로 구매 가능합니다. 한국은 아래 링크를 통해 구매하실 수 있습니다. 영어와 일본어는 아마존에서 구매하실 수 있습니다. 많은 관심 부탁드립니다.

리디북스 교보문고 YES24 알라딘

1. MCP 소개

MCP(Model Context Protocol)는 쉽게 말해 LLM에 내가 만든 함수를 연결(하는 표준)하는 것입니다. 이 함수에 메모장이나 한글, 엑셀과 같은 SW를 작동하게 하면 클로드가 이 함수를 통해 우리 컴퓨터를 직접 컨트롤 할 수 있습니다. 또한 다른 LLM을 연결시킬 수도 있고, 웹에 있는 데이터나 DB에 연결시킬 수도 있습니다. 비유를 하자면 LLM에 손과 발을 달아주는 것이죠. 이걸로 아래와 같은 일을 할 수 있습니다.

  1. 한글문서, 엑셀파일 등을 다룰 수 있습니다.
  2. 폴더 만들기, 파일 저장하기가 가능합니다.
  3. 웹사이트를 크롤링해서 데이터를 가져올 수 있습니다.
  4. LLM이 마우스와 키보드를 조작할 수 있습니다.

이를 간단히 도식화 하자면 아래와 같습니다.

공식 문서에 나와있는 아키텍처는 아래와 같이 표현하고 있는데요. Server라고 표현이 되어 있어 어렵게 느껴지지만 hello world부터 하나씩 만들어보면 결국 함수 호출한다는 것입니다.

MCP 공식문서 이미지가 있는 공식문서

공식문서에는 Node 예제로 되어 있는데 이 예제로 시작하게 되면 '그래서 내가 뭘 할 수 있지?'라는 의문이 들 수 있기 때문에 Python으로 'hello world'부터 출력해보는 예제를 준비했습니다.

이 수업에서는 Python으로 가장 간단한 MCP부터 시작해, 폴더 생성하기, 간단한 파일 다루기, 엑셀 파일 다루기, 웹 크롤링하여 데이터 가져오기 등을 차례대로 해보도록 하겠습니다. Python을 다룰 줄 알아야 하며, 전혀 다룰줄 모른다 하더라도 1장은 따라하실 수 있습니다.

MCP는 다양한 언어를 지원합니다.

  • Python
  • TypeScript
  • JAVA
  • Kotlin
  • C#

2. 강의에 대해

코드를 하나씩 설명해드리기 보다는 MCP의 가능성을 보여드리기 위한 강의입니다. 반응이 좋다면 추가로 MCP에 대한 상세한 내용을 다뤄보도록 하겠습니다. 해당 강의는 유튜브와 인프런에 무료로 공개됩니다. 구독과 좋아요는 힘이 됩니다.

유튜브 MCP 플레이리스트

해당 강의는 Window를 사용합니다. mac을 사용하시면 부록으로 가셔서 사용 방법을 숙지하셔야 합니다.

3. 작동 원리

실제 작동하는 C/test/tutorial_1.py 파일을 실행해보며 MCP의 작동원리를 먼저 보도록 하겠습니다. 추후 해당 코드에 대한 자세한 설명을 드리도록 하겠습니다.

from mcp.server.fastmcp import FastMCP
import sys
 
# MCP 서버 생성
mcp = FastMCP(name="tutorial_1", host="127.0.0.1", port=5000, timeout=30)
 
 
# 간단한 에코 도구
@mcp.tool()
def echo(message: str) -> str:
    return message + " 라는 메시지가 입력되었습니다. 안찍어 볼 수 없죠! hello world!"
 
if __name__ == "__main__":
    mcp.run()
 
# pip install mcp
from mcp.server.fastmcp import FastMCP
import sys
 
# MCP 서버 생성
mcp = FastMCP(name="tutorial_1", host="127.0.0.1", port=5000, timeout=30)
 
 
# 간단한 에코 도구
@mcp.tool()
def echo(message: str) -> str:
    return message + " 라는 메시지가 입력되었습니다. 안찍어 볼 수 없죠! hello world!"
 
if __name__ == "__main__":
    mcp.run()
 
# pip install mcp
{
    "mcpServers": {
        "tutorial_1": {
            "command": "python",
            "args": [
                "C:\\test\\tutorial_1.py"
            ]
        }
    }
}
{
    "mcpServers": {
        "tutorial_1": {
            "command": "python",
            "args": [
                "C:\\test\\tutorial_1.py"
            ]
        }
    }
}

4. 한 장의 이미지로 100초만에 이해하는 MCP

플레이 리스트와 별건으로 찍은 영상이 있어 4번으로 할당했습니다.

한 장의 이미지로 100초만에 이해하는 MCP

이미지는 2개를 첨부합니다. 같은 내용이지만 하나는 모바일에서 볼 수 있도록 구조를 옮겨두었습니다. 이 영상에 언급된 것처럼 MCP는 마치 서버처럼 request와 response를 주고받는 구조입니다. 구조는 FastAPI 비슷하다고 생각하신 분이 있으실텐데 컨트리뷰터 중 FastAPI 익스퍼트가 있으셔서 영향을 받은 것이 아닌가 생각해봅니다.

  • 모바일 이미지
  • PC 이미지
이전 1장 MCP 소개와 간단한 실습다음 1.2 MCP 환경세팅