본문 바로가기

인공지능

MCP Python SDK: AI 모델과 효율적으로 상호작용하는 방법

728x90
반응형

 

AI 기반 애플리케이션을 개발할 때, LLM(대형 언어 모델)과의 효과적인 상호작용이 중요합니다. 하지만 기존의 API를 직접 구현하는 것은 복잡하고 시간이 많이 걸립니다. MCP(Model Context Protocol) Python SDK는 LLM과의 상호작용을 표준화하고 쉽게 만들도록 설계된 강력한 도구입니다.

이 블로그에서는 MCP Python SDK의 개념과 역할, 주요 기능, 사용 방법을 살펴보고, 간단한 예제를 통해 직접 MCP 서버를 구축하는 방법까지 소개하겠습니다.

반응형

🛠️ MCP Python SDK란?

✅ MCP(Model Context Protocol) 개요

MCP는 LLM과 상호작용하는 애플리케이션을 구축할 때 컨텍스트 관리와 모델 인터페이스를 분리할 수 있도록 해주는 프로토콜입니다. 이를 통해 개발자는 복잡한 LLM 인터페이스를 직접 다룰 필요 없이, 표준화된 방식으로 데이터를 제공하고 기능을 노출할 수 있습니다.

✅ MCP Python SDK의 역할

MCP Python SDK는 MCP 프로토콜을 간편하게 구현할 수 있는 도구입니다. 이를 활용하면 다음과 같은 기능을 쉽게 구현할 수 있습니다.

✔️ MCP 클라이언트 개발 – MCP 서버와 연결할 수 있는 애플리케이션 개발
✔️ MCP 서버 구축 – 데이터, 도구 및 프롬프트를 노출하는 서버 개발
✔️ 표준 전송 방식 지원 – stdio 및 SSE(Server-Sent Events) 사용 가능
✔️ MCP 프로토콜 메시지 및 라이프사이클 관리


🚀 MCP Python SDK 설치 및 실행

✅ 설치 방법

MCP Python SDK는 pip 또는 uv를 이용해 간편하게 설치할 수 있습니다.

🔹 uv를 이용한 설치

uv add "mcp[cli]"

🔹 pip을 이용한 설치

pip install mcp

✅ MCP 개발 도구 실행

설치 후 MCP 개발 도구를 실행하려면 다음 명령어를 사용합니다.

🔹 uv를 이용한 실행

uv run mcp

이제 MCP를 활용하여 간단한 MCP 서버를 구축해보겠습니다.


🏗️ MCP 서버 구축하기

✅ 기본적인 MCP 서버 만들기

MCP 서버는 리소스(Resources), 도구(Tools), 프롬프트(Prompts) 를 정의하여 LLM이 데이터를 활용할 수 있도록 합니다. 아래 예제는 덧셈 연산을 수행하는 MCP 서버를 구현하는 방법을 보여줍니다.

📌 server.py 예제 코드

from mcp.server.fastmcp import FastMCP

# MCP 서버 생성
mcp = FastMCP("Demo")

# 덧셈 기능 추가
@mcp.tool()
def add(a: int, b: int) -> int:
    """두 숫자를 더하는 기능"""
    return a + b

# 개인화된 인사 메시지 리소스 추가
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """사용자에게 개인화된 인사 메시지를 제공"""
    return f"Hello, {name}!"

위 코드를 실행하면, MCP 서버가 add 함수(덧셈 기능)와 get_greeting 리소스(개인화된 인사 메시지)를 제공하게 됩니다.

✅ MCP 서버 실행

mcp install server.py
mcp dev server.py

이제 LLM이 MCP 서버에 연결하여 위 기능을 활용할 수 있습니다.


🔧 MCP의 핵심 개념

📌 1. 리소스(Resources)

리소스는 정적 또는 동적 데이터를 제공하는 기능으로, REST API의 GET 요청과 유사합니다.

📌 예제: 정적 및 동적 리소스 추가

@mcp.resource("config://app")
def get_config() -> str:
    """앱의 기본 설정을 반환"""
    return "App configuration here"

@mcp.resource("users://{user_id}/profile")
def get_user_profile(user_id: str) -> str:
    """사용자 프로필 정보 반환"""
    return f"Profile data for user {user_id}"

📌 2. 도구(Tools)

도구는 LLM이 직접 실행할 수 있는 기능을 제공합니다. REST API의 POST 요청과 유사합니다.

📌 예제: BMI 계산 기능 추가

@mcp.tool()
def calculate_bmi(weight_kg: float, height_m: float) -> float:
    """몸무게(kg)와 키(m)를 입력받아 BMI를 계산"""
    return weight_kg / (height_m**2)

📌 3. 프롬프트(Prompts)

프롬프트는 LLM과의 상호작용을 최적화하기 위한 재사용 가능한 템플릿입니다.

📌 예제: 코드 리뷰 요청 프롬프트

@mcp.prompt()
def review_code(code: str) -> str:
    """코드 리뷰 요청 프롬프트"""
    return f"Please review this code:\n\n{code}"

🖥️ MCP 서버 배포 및 실행

✅ MCP 서버 실행 방법

MCP 서버를 실행하려면 다음과 같이 실행합니다.

mcp dev server.py

또한, Claude Desktop 환경에서 실행하려면 다음 명령어를 사용할 수 있습니다.

mcp install server.py

728x90

MCP Python SDK는 LLM과의 상호작용을 간소화하고, 표준화된 방식으로 데이터 및 기능을 제공할 수 있도록 도와줍니다. 이를 통해 AI 애플리케이션 개발자는 효율적으로 MCP 서버를 구축하고, AI 모델과 상호작용할 수 있습니다.

✔️ 쉽고 빠른 LLM API 구축 – 복잡한 API 설계 없이 AI 모델과 직접 연결
✔️ 표준화된 데이터 및 기능 제공 – 리소스, 도구, 프롬프트를 통해 AI와 유연한 인터페이스 구축
✔️ 확장성과 유연성 – ASGI 서버와 결합하여 다양한 환경에 적용 가능

이제 MCP Python SDK를 활용하여 여러분만의 AI 애플리케이션을 개발해 보세요! 🚀

https://github.com/modelcontextprotocol/python-sdk?fbclid=IwZXh0bgNhZW0CMTEAAR3ll2TBs4ta89cRipYMxl9Z-HcY5whEPh8ACieGIEoWIFTgfahD4ywEKrk_aem_IUqXAim4L7vKHfQiGWJD0A

 

GitHub - modelcontextprotocol/python-sdk: The official Python SDK for Model Context Protocol servers and clients

The official Python SDK for Model Context Protocol servers and clients - modelcontextprotocol/python-sdk

github.com

728x90
반응형