FastMCP로 10분 만에 MCP 서버 구축하기
지난 글에서 MCP가 뭔지 알아봤다. 이번엔 진짜 만들어본다. Python만 알면 10분이면 충분하다.
FastMCP란
Python으로 MCP 서버를 만드는 가장 빠른 방법. Flask처럼 데코레이터로 도구를 정의하고, CLI 하나로 테스트·배포까지 가능하다.
설치는 pip 한 줄:
pip install fastmcp5분: 첫 MCP 서버 만들기
다음 코드를 my_server.py로 저장한다:
from fastmcp import FastMCP
mcp = FastMCP("내 첫 MCP 서버")
@mcp.tool
def add(a: int, b: int) -> int:
"""두 수를 더합니다"""
return a + b
@mcp.tool
def get_weather(city: str) -> str:
"""도시의 현재 날씨를 반환합니다 (데모)"""
temps = {"서울": 23, "부산": 25, "제주": 27}
temp = temps.get(city, 20)
return f"{city}: {temp}도, 맑음"
if __name__ == "__main__":
mcp.run()이게 끝이다. @mcp.tool 데코레이터만 붙이면 함수가 AI가 호출 가능한 도구가 된다.
2분: 테스트
# 서버가 어떤 도구를 제공하는지 확인
fastmcp list my_server.py --json
# 실제 도구 호출 테스트
fastmcp call my_server.py add a=3 b=5add 함수가 정상 호출되면 8이 반환된다. 서버 준비 완료.
3분: AI 클라이언트에 연결
Hermes Agent에 연결하는 경우:
hermes mcp add my-tools --command python3 --args "/path/my_server.py"Claude Desktop이면:
fastmcp install claude-desktop my_server.py연결 즉시 AI가 add, get_weather 도구를 인식하고 필요할 때 알아서 호출한다.
실전: ERP API 래핑하기
실무에서 가장 흔한 MCP 사용처는 내부 API 래핑이다. 예를 들어 영림원 ERP의 전표 조회 API를 MCP로 감싸면:
@mcp.tool
def search_slips(keyword: str, limit: int = 10) -> list:
"""ERP 전표를 키워드로 검색합니다"""
resp = requests.get(
f"{ERP_URL}/api/slips",
params={"q": keyword, "limit": limit},
headers={"Authorization": f"Bearer {ERP_TOKEN}"}
)
return resp.json()이제 AI 비서한테 "지난주 매출 전표 중에 500만원 이상인 것만 보여줘"라고 말하면 된다. SQL 몰라도, API 문서 몰라도 된다.
다음 글에서는 이걸 실제 ERP 환경에 붙였을 때 어떤 일이 벌어지는지 이야기한다.