최근 Google 트렌드에서 mCP 서버에 대한 검색량이 폭발적으로 증가하고 있습니다. 개발자로서 mCP를 이해하고 mCP 서버를 구축하는 방법을 배우는 것은 앞으로 매우 가치 있는 기술이 될 것입니다. 이번 글에서는 mCP가 무엇인지, 어떻게 작동하는지, 그리고 직접 mCP 서버를 구축하는 방법에 대해 알아보겠습니다.
mCP(Model Context Protocol)란?
mCP는 AI 애플리케이션이 외부 시스템과 연결되는 방식을 표준화하기 위해 Anthropic에서 개발한 프로토콜입니다. 쉽게 말해, AI 애플리케이션을 위한 USB-C 포트와 같은 역할을 합니다. 기존에는 각 AI 개발자가 개별적으로 시스템을 구축해야 했지만, mCP를 통해 표준 인터페이스를 사용하여 다른 시스템과 쉽게 연결할 수 있습니다.
mCP의 핵심 개념
mCP는 두 가지 주요 요소로 구성됩니다.
mCP 서버: 데이터, 도구 및 프롬프트를 노출하는 서버
mCP 클라이언트: mCP 서버에 연결하여 제공된 리소스를 활용하는 AI 애플리케이션 (예: Claude, Csor)
mCP의 주요 기능
리소스(Resources): 서버에서 노출하는 데이터(파일, 데이터베이스 레코드, API 응답 등)
도구(Tools): 서버에서 실행되는 함수 (예: 메시지 전송, 데이터베이스 업데이트)
프롬프트(Prompts): AI 모델이 더 나은 질문을 할 수 있도록 돕는 템플릿
이미 Claude, Stripe, Neon 등 주요 기업들이 공식적인 mCP 서버를 발표했으며, Smith.ai에서는 2,000개 이상의 커뮤니티 기반 mCP 서버를 탐색하고 설치할 수 있습니다.
mCP 서버 구축하기
이제 Python SDK를 사용하여 간단한 mCP 서버를 만들어 보겠습니다. 예제로 주식 거래 시스템을 구축해보겠습니다.
1. Python SDK 설치
pip install mcp-server
2. mCP 서버 생성
from mcp_server import FastMCP
app = FastMCP(name="Stock Trading Server")
app.run()
3. 리소스 추가 (시장 상태 확인)
from mcp_server import resource
@app.resource("market/state")
def get_market_state():
return {"status": "open" if is_market_open() else "closed"}
4. 도구 추가 (주식 매수 및 매도)
from mcp_server import tool
@app.tool("stock/buy")
def buy_stock(symbol: str, quantity: int):
return {"message": f"{quantity} shares of {symbol} bought."}
@app.tool("stock/sell")
def sell_stock(symbol: str, quantity: int):
return {"message": f"{quantity} shares of {symbol} sold."}
5. 프롬프트 추가 (주식 분석 템플릿 제공)
from mcp_server import prompt
@app.prompt("stock/analyze")
def analyze_stock(symbol: str):
return f"Analyze the stock {symbol} and provide financial insights."
이번에 중고거래하면서 OS 새로 설치하게 되었는데, 잘 안되는 부분이 있어서 이렇게 글 적어 봅니다...
"응용 프로그램의 복사본 손상" 문제는 macOS Sierra(10.12.x) 이후 버전에서 USB를 이용한 설치 시 발생하는 오류로, 2019년 10월 20일경 도입된 새로운 인증 정책 이후 나타나기 시작했습니다. 따라서, 시스템 날짜를 일시적으로 2019년 10월 이전으로 변경한 후 macOS 설치를 진행하면 문제없이 완료할 수 있습니다.
해당되는 버전 : Sierra ~ 현재 버전
시스템 날짜 변경은 USB로 부팅한 상태, 즉 macOS 유틸리티에 진입한 후에 수행해야 합니다. 변경 방법은 다음과 같습니다.
1. 인터넷 연결을 끊습니다. 공유기의 전원을 잠시 꺼두는 것이 가장 간단한 방법입니다. → 이유: 시스템에 따라 인터넷을 통해 현재 시간을 자동으로 다시 설정할 수 있기 때문입니다.
2. 터미널을 실행합니다. → 터미널은 메뉴바 → 유틸리티에서 찾을 수 있습니다.
3. 날짜를 2019년 10월 이전으로 설정합니다.
date 0930093019
⇒ 위와 같이 입력하면 시스템 날짜/시간이 2019년 9월 30일 9시 30분으로 설정됩니다.
⇒ 만약 9/1 9시30분으로 설정하겠다면 date 0901093019 을 입력하면 됩니다.