FastAPI-MCP, FastAPI로 만든 API 서버를 MCP 도구로 자동 노출하는 도구

FastAPI-MCP 프로젝트 소개

FastAPI-MCP는 FastAPI로 작성한 API 서버의 모든 엔드포인트(Endpoints)를 MCP 도구(tool)로 자동 변환해주는 라이브러리입니다. 별도의 설정 없이 FastAPI 앱에 바로 연결해 MCP 서버를 실행할 수 있으며, 요청/응답 모델의 스키마와 Swagger 문서까지 그대로 유지합니다. MCP(Model Context Protocol)는 Claude, Cursor 같은 AI 도구와 쉽게 통합되도록 고안된 프로토콜로, MCP 도구로 변환된 후에는 Claude Desktop 또는 Cursor 같은 도구에서 바로 사용할 수 있습니다.

FastAPI-MCP 사용 예시

기존에는 FastAPI 앱을 외부 시스템에서 도구화하려면 별도 API 문서나 SDK 생성, 커넥터 개발이 필요했습니다. 하지만 FastAPI-MCP를 쓰면 앱을 그대로 MCP 서버로 확장할 수 있어 개발 생산성을 크게 끌어올릴 수 있습니다. 특히 LLM 기반 툴과의 연동이 필요한 프로젝트에서 큰 힘을 발휘합니다.

FastAPI-MCP의 주요 기능

  • FastAPI 앱에 MCP 서버를 직접 Mount 가능
  • 자동 엔드포인트 탐색 및 MCP 툴 변환
  • 요청/응답 모델의 JSON 스키마 유지
  • Swagger 문서에서 정의한 설명 및 정보 그대로 노출
  • 사용자 정의(Custom) MCP 도구 추가 지원

설치 및 사용 방법

설치 방법

# uv를 사용하는 경우
uv add fastapi-mcp  
# pip를 사용하는 경우
pip install fastapi-mcp

기본 사용법

from fastapi import FastAPI
from fastapi_mcp import add_mcp_server

app = FastAPI()

add_mcp_server(app, mount_path="/mcp", name="My API MCP")

고급 설정 예시

add_mcp_server(
    app,
    mount_path="/mcp",
    name="My API MCP",
    describe_all_responses=True,
    describe_full_response_schema=True
)

사용자 정의(Custom) MCP 도구 추가하기

@mcp_server.tool()
async def get_server_time() -> str:
    from datetime import datetime
    return datetime.now().isoformat()

Claude Desktop에서 사용하기 (mcp-proxy 활용)

  1. mcp-proxy 설치: uv tool install mcp-proxy
  2. MCP 서버 URL을 설정(JSON config)
  3. 자동으로 모든 툴을 인식하고 실행 가능!

라이선스

FastAPI-MCP 프로젝트는 MIT License로 공개 및 배포되고 있습니다. 상업적 사용에 제약이 없습니다.

:github: FastAPI-MCP 프로젝트 GitHub 저장소

:github: FastAPI-MCP 사용 예시

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

2개의 좋아요