MCP를 통해 200개 이상의 금융 지표 Python 라이브러리를 컨텍스트 제한 없이 Claude로 가져오기 위한 자동 라우터 패턴 구축 방법
요약
Finance Toolkit의 방대한 금융 지표를 Claude에서 효율적으로 사용하기 위해 MCP 자동 라우터 패턴을 구축하는 방법을 설명합니다. 200개 이상의 도구를 범주형으로 그룹화하고 동적 라우팅을 적용하여 컨텍스트 팽창과 지연 시간을 해결했습니다.
핵심 포인트
- 200개 이상의 도구를 범주형 MCP 도구로 동적 그룹화하여 컨텍스트 최적화
- 동적 라우팅을 통해 모델의 도구 선택 혼란 및 지연 시간 문제 해결
- SQLite 캐싱 레이어를 구현하여 중복 API 호출 방지 및 데이터 안정성 확보
- Claude Code를 활용하여 복잡한 MCP 서버 인프라 구축 자동화
저는 200개 이상의 금융 지표, 모델 및 경제 지표를 다루는 오픈 소스 (MIT 라이선스) Python 패키지인 Finance Toolkit의 저자입니다. 저는 2019년에 이 프로젝트를 시작했는데, 당시 주요 플랫폼 전반에서 일관된 금융 데이터를 추적하는 것은 악몽과 같았습니다. 서로 다른 제공업체들이 동일한 회사의 동일한 날짜에 대해 계산 방식을 설명하지 않은 채 완전히 다른 P/E 비율을 정기적으로 보고했기 때문입니다.
최근 저는 이 데이터를 Claude의 생태계로 직접 가져오는 작업을 진행해 왔습니다. 저는 Claude (Desktop, Code 또는 모든 MCP 호환 클라이언트)가 이 200개 이상의 지표를 네이티브하게 호출할 수 있도록 하여, 모델이 금융 수치를 "환각 (hallucinating)"하거나 오래된 학습 데이터에 의존하는 문제를 완전히 제거하고 싶었습니다.
하지만 거대한 Python 패키지를 Model Context Protocol (MCP)에 매핑하는 과정에서 중대한 기술적 과제가 발생했으며, 이를 어떻게 해결했는지 공유하고자 합니다.
200개 이상의 개별 도구 시그니처 (Tool Signatures) 처리하기
만약 LLM에 200개 이상의 개별 함수 시그니처를 동시에 전달하면, 심각한 컨텍스트 윈도우 (context window) 팽창, 지연 시간 (latency) 증가, 그리고 모델이 잘못된 도구를 선택하거나 중복되는 파라미터 구조로 인해 혼란을 겪는 발생률이 훨씬 높아지는 문제에 직면하게 됩니다. 예를 들어, 저는 더 단순한 모델들이 무엇을 쿼리해야 할지 전혀 파악하지 못하는 것을 목격했습니다.
200개의 별도 도구 정의를 작성하거나 거대하고 취약한 수동 매핑 파일을 유지하는 대신, 저는 런타임에 기존 Python 컨트롤러 클래스를 프로그래밍 방식으로 검사하는 자동 라우터 패턴 (automated router pattern)을 구축했습니다.
범주형 도구 그룹화 (Categorical Tool Grouping): 라우터는 개별 메서드를 약 21개의 범주형 MCP 도구로 동적으로 집계합니다 (예: 재무제표, 밸류에이션 비율, 효율성 지표 등으로 그룹화). 만약 제가 "수익성 (profitability)"이나 "PE 비율 (PE ratios)"에 대해 말하면, 라우터는 "get_profitability_ratios"를 실행해야 한다는 것을 알게 됩니다. 마찬가지로 "미국의 부채 (The debt of the United States)"에 대해 이야기할 때, "get_government_economy"를 살펴봐야 한다는 것을 알게 됩니다.
동적 라우팅 (Dynamic Routing): Claude가 카테고리 도구 (category tool)를 호출하면, 서버는 내부적으로 올바른 Python 클래스와 메서드로 하위 라우팅 (sub-routing)을 처리합니다. 이를 통해 기반 라이브러리의 전체 기능 세트를 유지하면서도 초기 컨텍스트 점유율 (context footprint)을 믿을 수 없을 정도로 가볍게 유지할 수 있습니다.
SQLite 캐싱 레이어 (SQLite Caching Layer): 복잡하고 다단계적인 금융 분석 과정에서 중복되고 비용이 많이 드는 API 호출을 방지하기 위해, 서버 측에 직접 로컬 SQLite 캐싱 레이어를 구현했습니다. 이는 기본적으로 AI가 예를 들어 Financial Modeling Prep, Yahoo Finance 또는 OECD 등의 서비스에서 차단되는 것을 방지합니다.
짧은 시간 내에 표준 Python 라이브러리를 합리적인 도구 그룹화 (tool grouping)를 갖춘 구조적으로 견고한 MCP 서버로 전환하는 것은 Claude Code가 매우 잘 수행하는 스캐폴딩 (scaffolding) 중심의 작업입니다. Claude Code는 제가 코드베이스에 대한 통제력을 잃지 않도록 방지하면서, 인프라 접착제 (infrastructural glue)와 JSON-RPC 브릿징 레이어를 매핑하는 데 엄청난 양의 힘든 작업을 대신 해주었습니다. 여기서 팁은 먼저 직접 계획을 세운 다음, Claude Code가 이를 단순히 실행하게 하는 것입니다.
연결되면, 여러분은 Claude에게 일상적인 영어로 복잡한 분석 질문을 던질 수 있습니다. 모델은 자율적으로 적절한 카테고리 도구를 선택하고, 실시간 재무제표를 가져오며, 필요한 비율 (ratios)을 계산하고, 데이터를 하나로 연결합니다.
예를 들어, "지난 10년간 주요 반도체 기업들의 누적 수익률, P/E, EV/EBITDA, EPS 성장률 및 주당 매출을 비교해줘"와 같은 실제 쿼리가 주어지면, Claude는 깨끗하고 통합된 분석을 생성하기 위해 다섯 개의 별도 하위 라우팅 호출을 완전히 스스로 연결할 수 있습니다:
티커(Ticker) 누적 수익률 (2015-2025) P/E (2025) EV/EBITDA (2025) EPS 성장률 (2025)
NVDA +42,215% 63.5x 55.5x +146.2%
AMD +20,344% 80.8x 52.2x +164.3%
TSM +1,981% 28.4x 18.0x +57.2%
ASML +1,762% 36.9x 28.0x +45.0%
실제로 작동하는 모습을 보고 싶다면 아래 영상을 확인하세요.
이것은 Claude Desktop 내에서 직접 실행되는 Finance Toolkit MCP입니다.
제출자: /u/Traditional_Yogurt
[link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기