FastMCP: 도구 검색(tool discovery)이 권한 부여가 아니다
요약
FastMCP는 Python 함수를 MCP 도구, 리소스 및 프롬프트로 쉽게 노출하는 방법을 제시합니다. 이 글은 단순히 클라이언트가 도구를 발견할 수 있는 것(발견 가능성)과 실제로 그 기능이 무엇을 트리거하도록 허용되는지(권한 부여)의 차이를 강조하며, 안전한 권한 모델 구축의 중요성을 역설합니다.
핵심 포인트
- 도구 검색(discovery)은 곧 권한 부여가 아니다.
- 안전한 시스템 설계는 부작용 없는 함수부터 시작해야 한다.
- 실제 도구는 제한된 기능과 관찰된 실패 사례를 필요로 한다.
FastMCP는 Python 함수를 MCP 도구, 리소스 및 프롬프트로 노출하는 것을 쉽게 만듭니다. 핵심 질문은 클라이언트가 도구를 발견할 수 있는지 여부가 아니라, 그 발견이 무엇을 트리거하도록 허용되는지입니다.
제 검증 순서는 의도적으로 지루합니다:
- 부작용(side-effect)-없는 함수로 시작하여 서버, 클라이언트 및 호스트 검색을 확인합니다.
- 입력/출력 계약(input/output contracts), 인증(authentication), 타임아웃(timeouts), 예외 매핑(exception mapping) 및 복구(recovery)를 테스트합니다.
- 그 후에야 파일 시스템, 네트워크, 자격 증명(credential) 또는 프로덕션 쓰기 권한을 고려합니다.
작동하는 프로토콜 경로는 전송 계층이 작동한다는 증거일 뿐입니다. 그것은 권한 모델이 안전하다는 증거가 아닙니다. 각 실제 도구는 제한된 기능(bounded capability), 재현 가능한 예시, 그리고 관찰된 실패 사례를 필요로 합니다.
프로젝트: https://doramagic.ai/en/projects/fastmcp/
수동 가이드: https://doramagic.ai/en/projects/fastmcp/manual/
업스트림: https://github.com/PrefectHQ/fastmcp
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기