canli-mcp: Claude 및 모든 MCP 클라이언트를 위한 306개의 무료 금융 도구 (OpenBB, EdgarTools, Yahoo
요약
canli-mcp는 Claude 및 다양한 MCP 클라이언트를 위한 무료 금융 도구 통합 서버입니다. 이 서버는 API 키 없이 로컬에서 실행되며, 306개의 광범위한 금융 도구를 제공합니다. SEC 제출 서류 검색부터 복잡한 계량경제학 백테스팅까지 지원하여 강력한 데이터 분석 환경을 구축했습니다.
핵심 포인트
- API 키가 필요 없고 로컬 기기에서 실행되어 보안성이 높습니다.
- SEC, CFTC 등 다양한 출처의 방대한 금융 데이터를 통합 제공합니다.
- 306개의 도구는 시장 분석부터 계량경제학 백테스팅까지 커버합니다.
- OpenBB 대비 더 많은 금융 질문 유형을 처리할 수 있는 것으로 비교되었습니다.
저는 canli-mcp를 구축해 왔습니다. 이는 세 가지의 금융 도구를 하나로 통합한 MCP 서버입니다. 이 도구는 무료이며 MIT 라이선스를 따르고, 거의 모든 경우에 API 키가 필요 없으며, 사용자의 로컬 기기에서 실행됩니다.
npx -y canli-mcp
# Claude Code
...
Claude Desktop, Cursor 또는 다른 MCP 클라이언트의 경우: { "mcpServers": { "canli": { "command": "npx", "args": ["-y", "canli-mcp"] } } }.
기능 설명
모델은 세 가지 도구를 인식합니다: find_tool은 사용자가 요청하는 내용에 따라 306개 도구 전체를 검색하고, describe_tool은 특정 도구의 인수를 읽어주며, run_tool은 모든 도구 중 하나 또는 한 번의 왕복(round trip)으로 최대 25개의 도구를 실행합니다. 이 도구들 뒤에는 일곱 가지 패키지가 있습니다:
-
Markets (34개 도구), 자체 소스에서 읽어옴:
- SEC 제출 서류 및 그 섹션, 모든 제출 서류에 대한 전체 텍스트 검색;
- 소유권: 내부자 거래(Form 4), 13F 보유액, 5% 보유 주주(13D/13G), 펀드 및 ETF 포트폴리오(N-PORT);
- 거래: 공매도 이율 및 장외 거래량(FINRA), 결제 불이행, 선물 포지셔닝(CFTC);
- 회사 상세 정보: 성과 대비 임원 보수, 부문별 매출;
- 옵션: IV와 그리스 값(greeks)을 포함한 체인, 변동성 표면 및 VIX 선물 곡선(Cboe의 지연 데이터);
- 연준 및 거시 경제: 결정 사항, 투표 및 점도 그래프, 미국 경제 캘린더, 국채 수익률 및 경매, 연방 부채, FRED, World Bank 및 OECD 데이터;
- 주식, 통화, 선물, 지수 및 암호화폐의 가격.
-
Quant (235개 도구): 성과 및 위험, 옵션 및 이국적 상품(exotics), 채권, 포트폴리오, 계량경제학, 지표, 그리고 399개의 전략 슬리브 라이브러리. 이들은 461개의 참조 사례에서 QuantLib, statsmodels, arch, TA-Lib, scipy 및 pandas와 비교 검증됩니다.
-
백테스트 검증 (17개 도구): 디플레이션된 샤프 비율(deflated Sharpe), 백테스트 과적합 확률, 데이터 스누핑 테스트, 누수 확인(leakage checks) 및 플레이보 테스트 등 모든 것이 로컬에서 실행됩니다.
-
또한: SEC의 최초 보고 기준 기초 자료(point in time), 선행 지표를 무시하는 요소 백테스트, 사전 거래 검사를 거치는 Alpaca 페이퍼 트레이딩, 그리고 공개적인 연구 기록을 제공합니다.
데이터 결과는 출처 URL을 포함하며, 시장 데이터에는 수신된 정확한 바이트의 해시가 담겨 있어 나중에 수치를 확인할 수 있습니다.
비교 분석
| canli-mcp | OpenBB | EdgarTools | Yahoo Finance MCP | |
|---|---|---|---|---|
| 키 없는 도구로 처리 가능한 금융 질문 유형 (53개 중) | 49 | 39 | 11 | 13 |
| 요청 시 전송되는 도구 정의 토큰 수 | 859 tokens | 432,001 (발견 모드에서 2,171) | 3,801 | 2,205 |
커버리지 맵은 각 서버의 자체 도구 목록(bench/rivals/COVERAGE.md in the repo)을 확인합니다. 도구를 가지고 있다고 해서 정답을 맞힌다는 의미는 아니므로, 일대일 비교도 진행했습니다:
- 설정: 동일한 모델(gpt-5.4-mini), 동일한 프롬프트, 그리고 모든 테스트 항목에 대해 동일한 제한 사항을 사용했으며, MCP 서버만 다릅니다.
- 결과: 모든 서버가 완료한 질문 중, canli-mcp는 28회 시도 중 22개(79%)를 정답으로 답했습니다. 최고의 경쟁 모델 조합인 EdgarTools와 Yahoo의 조합은 15/28(54%)를 답변했습니다.
- 주의사항: 저희가 작성한 24개의 질문은 서버들이 구축된 영역에 관한 것입니다. 이는 질문당 두 번 실행되는 작은 모델입니다. 아직 테스트되지 않은 별도의 데이터셋이 남아 있습니다.
모든 답변을 포함한 전체 보고서는 bench/rivals/REPORT.md에서 확인할 수 있습니다.
문맥(Context)은 또 다른 비용 요소입니다. 개별적으로 설치된 7개의 Canli 서버는 모든 요청에 도구 정의와 지침으로 34,508 토큰을 전송합니다. canli-mcp는 bench/context.py로 측정했을 때 1,109 토큰을 전송합니다. 표의 859라는 수치는 OpenAI 스타일 클라이언트가 도구를 보내는 형태를 기준으로 계산되었으며, 모든 서버에 대해 동일하게 적용되었습니다.
적절한 도구 찾기
306개의 도구가 있는 만큼, 검색 기능이 핵심입니다. 저는 마지막으로 검색 기능을 변경한 후 일상적인 요청 48개를 작성했으며, 이 요청들로는 미세 조정(tuning)을 하지 않았습니다:
가장 큰 수정 사항은 당황스러웠습니다. 스테머(stemmer)가 "rates"를 "rat"으로 변환하여, "mortgage rates"는 "rate"라는 단어가 포함된 어떤 것과도 일치하지 않게 되었습니다. 가격(Prices), 주식(shares), 거래(trades)도 같은 방식으로 문제가 발생했습니다.
여러분이 발견하기 전에 잡은 잘못된 답변들
이번 주 가장 유용한 작업은 경고 없이 틀린 답변들을 찾아내는 것이었습니다:
- "silver price"가 미국 CPI로 반환되었습니다. 경제 시리즈에 대한 일반 단어 검색은 절반의 단어를 공유하는 모든 시리즈를 가져왔는데, "price"는 "consumer price index"에 포함되어 있습니다. "japan inflation" 역시 같은 방식으로 미국 물가를 반환했습니다. 이제 모든 특정 단어가 일치해야 하며, 답변할 수 없는 요청은 대신 어디를 찾아봐야 하는지 알려주면서 거부됩니다.
- "facebook"이 EDGAR의 개체 검색에서 관련 없는 "Denny Hill/Facebook LLC"로 해석되었고, "jp morgan"은 "JP Morgan AG"로 해석되었습니다. 이제 이름은 먼저 등재된 회사로 연결되며, Google은 Alphabet이고 Facebook은 Meta입니다. 펀드 매니저는 자신들의 13F를 제출한 곳으로 연결됩니다.
- 악의적인 입력(Hostile inputs). 모든 도구는 "constructor", 빈 문자열 및 5,000자 길이의 문자열, 경계 숫자, 20,000개 항목 배열과 같은 악성 인수로 호출되었습니다. 유효성 검사를 통과한 2,980개의 호출 중 일부에서 버그가 발견되었습니다:
find_tool은 "constructor"라는 단어에서 충돌했고, 일부 도구는 거부해야 할 곳에 NaN을 반환했습니다. 모두 수정되었으며, 이제 모든 릴리스 전에 검사(bench/robustness.mjs)가 실행됩니다.
개인 정보 보호 (Privacy)
모든 것은 여러분의 기기에서 실행됩니다:
- 연결되는 곳: 공공 출처(SEC, Treasury, FRED, FINRA, CFTC, Fed, BLS, BEA, Census, OECD, World Bank, Cboe, 그리고 Yahoo의 가격 공공 차트 데이터)만 연결합니다.
- 보관하는 것: 우리에게 아무것도 보내지 않으며 로그도 남기지 않습니다.
- 오프라인:
CANLI_OFFLINE=1은 네트워크를 사용하지 않는 패키지만 유지합니다. - 출처 (Provenance): 패키지는 npm 출처가 있는 GitHub Actions에서 게시됩니다.
투자 조언이 아닙니다. 데이터는 발행자가 발표하는 대로 오며, Cboe의 견적은 지연되고 Yahoo의 차트 데이터는 비공식입니다.
사용해 보기 (Try it)
npx -y canli-mcp
그런 다음 다음과 같은 질문을 어시스턴트에게 해보세요:
- "코카콜라의 지분 5% 이상을 소유한 주체는 누구인가?"
- "연준(Fed)은 금리를 인상했는가? 그리고 누가 반대 의견을 제시했는가?"
- "GME에 대한 공매도 거래량(short interest)"
- "내 백테스트가 과적합되었는가?"
모든 것은 GitHub에 공개되어 있습니다:
- arhancanli/canlicapital: 모든 MCP 서버, 벤치마크 및 웹사이트.
- arhancanli/alphac: 전략 리서치 엔진.
만약 누락되거나 잘못된 부분이 있다면 이슈(issue)를 제기해 주세요. 조용히 배포하는 것보다 틀린 답변에 대해 듣는 것이 훨씬 낫습니다.
다음 릴리스에는 기업 자체의 8-K 공시 자료에서 가져온 실적 발표일, 뉴스 형태의 보도자료 헤드라인, 그리고 MCP 프롬프트로 사용할 수 있는 완성된 워크플로우가 추가될 예정입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기