해결된 질문
작성
·
105
0
안녕하세요! 강의 잘 보고있습니다. MCP 관련해서 질문이 두 개 있습니다.
# 1
MCP튜토리얼과 이 강의, 유투브를 보고 MCP 서버를 개발중입니다.
https://github.com/snaiws/DART-mcp-server
DART api연동하는 서버고 api가 83종류가 있습니다.
FastMCP 사용하니 메인 스크립트에 함수를 매우 많이 적어야해서 팩토리클래스를 만들고, docstring을 따로 관리하고싶어 함수와 docstring을 분리해서 팩토리클래스에서 조립했습니다.
그런데 이렇게 만들고보니 FastMCP 개발방식 말고 from mcp.server import Server를 통해 좀 더 로우레벨로 만드는 방식도 있는 것 같았습니다. https://github.com/modelcontextprotocol/python-sdk
여기의 Low-Level부분입니다.
혹시 Low-level관련 영상도 업로드예정이 있으신가요?
# 2
MCP 서버에 툴을 83개나 만들면 tool calling하는데 헷갈려할 것 같은데 맞는지... 그리고 어떻게 대처가 가능할지 조언부탁드립니다
감사합니다.
답변 2
1
맞습니다. MCP(Model Context Protocol) 기반 서버에 툴이 83개나 있으면, 툴 선택 과정에서 혼란이 생길 가능성이 높습니다. 툴이 많아질수록 모델이 어떤 툴을 써야 할지 판단하기 어려워지고, 오용하거나 불필요하게 여러 툴을 호출할 위험도 커집니다.
제가 생각할 수 있는 방법으로는 툴 이름을 category.action
형식으로 명확히 구분하시면 좋을 듯 합니다.
calendar.create_event
file.upload_document
user.get_profile
이렇게 하면 모델이 적절한 범주에서 툴을 선택하도록 유도할 수 있습니다. 또한, 모델에게 직접 툴을 고르게 하지 않고, 먼저 어떤 유형의 작업인지 분류하도록 합니다.
사용자 질문 → 먼저 intent classification
intent에 따라 툴 후보군 좁히기 → 그 안에서 선택
이를 위해 router 역할의 툴이나 사전 선택 체계를 따로 둘 수 있습니다. 또한 기본적이지만, 각 툴에 description
을 매우 구체적으로 작성해서 모델이 정확히 이해하게 만듭니다. 특히 system prompt에 tool 설명 요약을 넣으면 도움이 됩니다. 또한, 모든 툴을 항상 활성화하지 않고, context에 따라 툴 세트를 동적으로 로딩할 수도 있습니다.
사용자의 요청에 따라 finance_tools
세트만 활성화
도움이 되셨으면 좋겠네요.
0
안녕하세요, 인프런 AI 인턴입니다. snaiws님께서 남겨주신 MCP 서버 개발과 관련된 질문에 답변을 드리겠습니다.
MCP 서버 개발 시, High-Level과 Low-Level 접근 방식이 있다는 점은 굉장히 흥미로운 부분입니다. High-Level 방식(즉, FastMCP
를 사용하는 방법)은 기초적인 설정과 프로토콜을 빠르게 설정할 수 있는 장점이 있습니다. 반면에 Low-Level 방식(from mcp.server import Server
)은 보다 세부적인 설정과 커스터마이징이 가능하다는 장점이 있습니다. Low-Level 방식을 사용하게 되면 MCP 서버의 동작을 더욱 세밀하게 제어하고 다양한 기능을 추가할 수 있습니다.
현 시점에서 Low-Level 관련된 영상이 계획되어 있는지에 대한 정보는 제공하기 어렵습니다. 하지만 MCP 프로젝트의 변경사항이나 추가 기능에 대한 업데이트 사항은 공식 문서나 관련 커뮤니티를 주기적으로 확인하는 것을 추천합니다.
MCP 서버에 83개의 툴을 구현하는 것은 많은 도전이 될 수 있습니다. Tool이 많아질수록 관리와 사용이 어렵기 때문에 다음과 같은 방법으로 대처할 수 있습니다:
카테고리별 분류: 각 툴을 기능별로 카테고리화하여 정리하면 쉽게 접근할 수 있습니다. 이를 통해 사용자나 개발자가 필요한 툴을 쉽게 찾을 수 있게 됩니다.
문서화: 툴마다 기능 및 사용 방법을 명확히 문서화하여 헷갈림을 줄일 수 있습니다. 자동생성 도구나 README 파일을 활용하는 방법이 있습니다.
유저 인터페이스 개선: MCP 서버의 사용자 인터페이스를 개선하여, 툴 선택과 사용이 직관적으로 이루어지도록 하면 사용자 경험이 향상될 수 있습니다.
검색 기능 구현: 사용자가 필요한 툴을 검색할 수 있는 기능을 구현하여 툴 관리와 접근성을 높일 수 있습니다.
아래 링크에서 MCP 및 관련 툴 개발에 대한 유사한 답변을 찾아 보실 수 있습니다.
저는 질문자님의 이해를 돕고자 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다!