실시간 시세·기술적분석 MCP, 어떻게 동작하나
요약: 실시간 시세·기술적분석 MCP는 LLM이 '도구'로 시장 데이터를 불러오고 지표까지 계산해 받는 읽기전용 데이터 파이프라인이다. 핵심은 한 소스를 믿지 않는 것 — 여러 거래소·집계사를 폴링해 신선도를 기록하고, 어긋나면 정합하고, 하나가 죽으면 나머지로 우아하게 버틴다. 실제로 우리 수집기를 읽기전용으로 호출하니 3소스에서 715개 코인이 캐시돼 있었고(upbit 267·coinmarketcap 498 정상), 한 소스(coingecko)는 429(요청 과다)로 실패해 데이터가 하루 전으로 stale였다.
실시간 시세·기술적분석 MCP는 LLM이 '도구'로 시장 데이터를 불러오고 지표까지 계산해 받는 읽기전용 데이터 파이프라인이다. 핵심은 한 소스를 믿지 않는 것 — 여러 거래소·집계사를 폴링해 신선도를 기록하고, 어긋나면 정합하고, 하나가 죽으면 나머지로 우아하게 버틴다. 실제로 우리 수집기를 읽기전용으로 호출하니 3소스에서 715개 코인이 캐시돼 있었고(upbit 267·coinmarketcap 498 정상), 한 소스(coingecko)는 429(요청 과다)로 실패해 데이터가 하루 전으로 stale였다. 그래서 멀티소스가 사치가 아니라 생존 설계다.
한 줄 요약: 이 MCP는 여러 소스를 폴링해 신선도·괴리를 기록하고 지표를 서버측에서 계산하는 읽기전용 파이프라인으로, 소스 하나가 죽어도 나머지로 버티며 출력은 교육·정보용이지 투자자문이 아니다.
쉽게 말하면: 이 MCP는 여러 시계를 보는 항해사다. 시계 하나가 멈춰도(소스 장애) 나머지로 시간을 맞추고, 시계들이 다르게 가리키면(가격 괴리) 그 차이 자체가 신호가 된다.
요청 하나가 도구 선택→멀티소스 수집→정합/저하→지표 계산→파생 신호→응답 순으로 흐른다. 아래 그림이 그 파이프라인이다.
우리 crypto-ta MCP는 실제로 무엇을 수집하나?#
Hax가 운영하는 실시간 시세 MCP가 직접 수집하는 실측 규모입니다(measured, 2026-07-04).
| 데이터 항목 | 실측값 | 출처 |
|---|---|---|
| 수집 코인 수 | 716 개 | crypto-ta MCP 실측(status) |
| 데이터 소스 수 | 3 개 | crypto-ta MCP 실측(upbit·coinmarketcap·coingecko) |
- 표본
- 실측 지표 2개 (Hax /data 큐레이션)
- 수집일
- 2026-07-04
- 방법
- bench_harness.probe_crypto_mcp (crypto-mcp status 실측)
소스가 다르게 말하면 어떻게 정합하나?#
같은 코인도 거래소마다 값이 다르다. 실호출에서 BTC는 업비트 약 8,954만원, 코인게코 약 9,288만원으로 측정상 약 3~4% 벌어져 있었다(USD로도 약 58,520~60,235달러로 갈렸다). MCP는 이걸 숨기지 않고 소스별 값+신선도를 나란히 주거나(compare), 대표값으로 합친다. 더 나아가 교차소스에서 파생 신호를 만든다: 같은 시각 업비트 KRW와 글로벌 KRW의 괴리가 '김치 프리미엄'이고, 이번 BTC는 측정상 -3.60%(역프리미엄)였다 — 국내가 더 싸다는 뜻이다. 단일 소스만 봤다면 못 볼 신호다.
아래 막대는 실측 BTC 시세다. 업비트가 코인게코보다 낮아 역프리미엄(-3.60%)이 나온다.
| 단계 | 무엇을 하나 | 예 |
|---|---|---|
| 도구 선택 | LLM이 자연어→적절한 MCP 도구 호출 | get_coin·compare_sources |
| 멀티소스 수집 | 거래소·집계사 폴링 + 신선도 기록 | upbit·CMC·coingecko(3소스) |
| 정합·저하 | 소스 불일치 조정·실패 소스 우회 | 429면 남은 소스로 버팀 |
| 지표 계산 | RSI·MACD·이동평균 서버측 산출 | ta 라이브러리 로컬 계산 |
| 파생 신호 | 교차소스로 신호 도출 | 김치 프리미엄(괴리율) |
| 응답(읽기전용) | 구조화 JSON 반환·거래 없음 | 교육용·비투자자문 |
소스 하나가 죽으면 어떻게 버티나?#
나머지 소스로 우아하게 저하(graceful degradation)한다. 실호출에서 coingecko는 429(요청 과다)로 막혀 그 데이터가 하루 전으로 stale이었지만, upbit(267개)·coinmarketcap(498개)이 살아 있어 응답은 계속 나왔다. 핵심은 실패를 감추지 않는 것 — 각 소스에 신선도(마지막 성공 시각)를 붙여, 읽는 쪽이 "이 값은 하루 묵었다"를 알게 한다. 아래 그림처럼 한 소스가 막혀도 파이프라인 전체가 멈추지 않는다.
기술적 지표는 왜 '서버측'에서 계산하나?#
일관성·캐시·API 절약 때문이다. RSI·MACD·볼린저밴드·이동평균은 가격 시계열에서 공식대로 나오는 값이라, 매번 외부에 묻지 않고 수집한 데이터로 로컬 계산하면 같은 입력에 같은 결과가 나오고 호출도 아낀다(많은 오픈 MCP가 ta·TA-Lib로 로컬 산출). LLM은 "RSI 알려줘"라고만 하면 MCP가 도구를 골라 계산해 돌려준다. 중요한 건 읽기전용이라는 점 — 시세·지표를 읽을 뿐 주문·거래는 하지 않는다. 그래서 안전하고, 그래서 출력은 교육·정보용이지 투자자문이 아니다.
직접 살펴보려면? (그리고 책임 있게)#
작게 호출해 보라.
- 한 코인을 여러 소스로 비교해 값·신선도가 어떻게 다른지 본다(단일 소스 맹신 금지).
- 지표는 같은 입력에 같은 값이 나오는지 확인하고, 소스 장애 시 폴백이 되는지 본다.
- 신호는 참고일 뿐 투자 결정은 스스로 — 이 데이터는 교육·정보용이며 투자자문이 아니다.
참고 링크
참고: 코인 수·가격·괴리율은 2026년 우리 수집기의 읽기전용 호출 시점 측정이며 소스·시각에 따라 달라진다(내부 주소·키·계정은 비공개). 가격은 소스마다 다르고 김치 프리미엄은 수시로 변한다. 본 데이터·지표는 교육·정보용이며 투자자문이 아니다. 분기별 갱신.
Responses
No responses yet. Be the first to respond.