내가 비용을 지불하는 모든 LLM과 대화하도록 Claude Code를 이용하는 MCP 서버를 구축한 방법

발행: (2026년 2월 6일 오후 12:53 GMT+9)
13 min read
원문: Dev.to

I’m happy to translate the content for you, but I’ll need the text you’d like translated. Could you please paste the article (or the specific sections) you want converted to Korean? I’ll keep the source line exactly as you provided and preserve all formatting, markdown, and technical terms.

The Problem

당신은 개의 서로 다른 AI 생태계를 동시에 다루고 있습니다:

  • ChatGPT Plus
  • Claude MAX
  • Gemini
  • Ollama를 통한 로컬 모델

각각은 별도의 브라우저 탭이 필요하고, 프롬프트를 복사‑붙여넣기하고, 형식을 다시 맞추며, 컨텍스트를 잃어버리는 데 귀중한 시간을 소비합니다. “각 모델은 무엇이라고 생각하나요?”와 같은 간단한 질문조차도 몇 초가 아니라 몇 분이 걸립니다.

솔루션: HydraMCP

HydraMCP는 MCP (Model Control Protocol) 서버로, 접근 가능한 모든 클라우드 또는 로컬 모델에 단일 프롬프트를 라우팅하여 병렬로 실행하고 결과를 나란히 반환합니다.

주요 장점

  • 모든 모델을 위한 하나의 인터페이스
  • 병렬 실행 (한 번에 2‑5개 모델)
  • 더 이상 컨텍스트 손실이나 수동 재포맷이 필요 없음
  • 터미널, IDE, 혹은 Claude Code 환경 어디서든 사용 가능

노출된 도구 (Claude Code)

도구설명
list_models모든 제공업체에서 사용 가능한 모든 모델을 한 명령으로 표시합니다.
ask_model터미널을 떠나지 않고 단일 모델에 질의합니다 (예: “이것에 대한 GPT‑5의 의견을 알려줘”).
compare_models동일한 프롬프트를 2‑5개의 모델에 병렬로 보내고 결과를 나란히 반환합니다.

사용 예시

# List everything you can query
list_models
# Ask a single model
ask_model gpt-5-codex "Explain the difference between supervised and unsupervised learning."
# Compare several models at once
compare_models gpt-5-codex, gemini-3, claude-sonnet, local-qwen \
    "Review this function and suggest improvements:

def foo(bar):
    return bar * 2"

결과 (simplified view):

모델응답
GPT‑5 Codex
Gemini‑3
Claude Sonnet
Local Qwen

각 답변이 서로 옆에 표시되므로 차이점, 강점 또는 오류를 쉽게 파악할 수 있습니다.

시작하기

  1. HydraMCP 설치 (pip, Docker, 또는 바이너리로).

  2. OpenAI, Anthropic, Google, 그리고 Ollama 엔드포인트에 대한 API 키를 설정합니다.

  3. 서버 실행:

    hydramcp serve
  4. Claude Code, 터미널, 혹은 IDE 플러그인 중 하나를 사용합니다.

TL;DR

HydraMCP는 단일 프롬프트로 모든 AI 모델을 쿼리하고, 병렬로 나란히 결과를 확인하며, 끝없는 복사‑붙여넣기 작업을 종료할 수 있게 해줍니다. 🚀

모델 비교 (4개 모델, 총 11 637 ms)

모델지연 시간토큰
gpt-5-codex1 630 ms (가장 빠름)194
gemini-3-pro-preview11 636 ms1 235
claude‑sonnet‑4‑5‑202509293 010 ms202
ollama/qwen2.5-coder:14b8 407 ms187

네 모델 모두 독립적으로 동일한 async 버그를 찾아냈으며, 각각 다른 부분을 잡아냈습니다:

  • GPT‑5 – 가장 빠름.
  • Gemini – 가장 철저함.
  • Claude – 가장 명확한 수정안.
  • Qwen – 근본 원인을 설명함.

훈련 데이터는 다르지만, 강점도 각각 다릅니다.

합의 폴링

“합의 폴링은 질문에 대해 3‑7개의 모델에 투표를 진행하고, 별도의 판단 모델이 실제로 의견이 일치하는지를 평가합니다. 신뢰 점수를 반환하고, 일치도에 따라 응답을 그룹화합니다.”

이 도구는 여러 모델에 대한 파생 작업을 합성하고, 각 모델의 응답을 수집한 뒤 합성 모델이 가장 좋은 통찰을 하나의 답변으로 결합합니다. 그 결과는 일반적으로 개별 응답보다 더 우수합니다.

아키텍처 개요

Claude Code
    |
    HydraMCP (MCP Server)
    |
    Provider Interface
    |-- CLIProxyAPI  → cloud models (GPT, Gemini, Claude, …)
    |-- Ollama       → local models (your hardware)

HydraMCP는 Claude Code와 모델 제공자 사이에 위치합니다. stdio를 통해 JSON‑RPC(MCP 프로토콜)를 사용해 통신하며, 요청을 적절한 백엔드로 라우팅하고 컨텍스트 윈도우를 관리하기 쉽게 모든 것을 포맷합니다.

제공자 인터페이스

interface Provider {
  name: string;
  healthCheck(): Promise;
  listModels(): Promise;
  query(
    model: string,
    prompt: string,
    options?: QueryOptions
  ): Promise;
}

각 백엔드는 healthCheck(), listModels(), query() 세 가지 메서드만 구현합니다. 새로운 제공자를 추가한다는 것은 이 세 함수를 구현하고 등록하는 것을 의미합니다.

  • 클라우드 모델CLIProxyAPI는 기존 구독을 로컬 OpenAI‑호환 API로 변환합니다. 제공자당 한 번 브라우저 로그인으로 인증하며, 토큰당 청구가 없고 이미 결제한 구독을 사용합니다.
  • 로컬 모델Ollamalocalhost에서 실행되며 Qwen, Llama, Mistral 등 모델을 제공합니다. API 키가 필요 없으며 전기료 외에는 비용이 들지 않습니다.

네 개의 모델을 비교할 때, 모든 쿼리는 Promise.allSettled()를 사용해 동시에 실행됩니다. 총 시간 = 가장 느린 모델의 지연 시간이며, 모든 지연 시간의 합이 아닙니다. (위의 다섯 모델 비교는 총 11.6 s가 걸렸으며, > 25 s가 아니었습니다.)

하나의 모델이 실패하더라도 다른 모델들의 결과를 받을 수 있습니다 – 전부 실패하거나 전부 성공하는 것이 아니라, 점진적인 감소를 제공합니다.

Agreement Detection

Naïve keyword matching fails to determine if models truly agree.

Model A: “Start with a monolith.”
Model B: “Monolith because it’s simpler.”

They agree semantically, but keyword overlap is low.

Solution: The consensus tool picks a judge model (not in the poll) and asks it to evaluate agreement. The judge reads all responses and groups them semantically.

Three cloud models polled, local Qwen judging.
Strategy: majority (needed 2/3)
Agreement: 3/3 models (100%)
Judge latency: 686 ms

Using a local model as judge means zero cloud quota for the evaluation step.

The keyword‑based fallback (when no judge is available) works for factual questions but breaks on subjective ones. The LLM‑judge approach is significantly better, though still an area for improvement.

로컬 모델의 콜드‑스타트 페널티

  • Qwen 32B에 대한 첫 번째 요청: ~24 s (모델 로딩).
  • 네 번째 요청까지: ~3 s – 모델이 워밍업된 후 향상.

HydraMCP를 정기적으로 사용하면 로컬 모델이 워밍업된 상태를 유지해 경험이 원활합니다. 하루 중 첫 번째 쿼리는 느릴 수 있지만 그 이후는 빠릅니다.

Synthesise Tool

가장 야심찬 기능: 여러 모델의 응답을 수집한 뒤, 합성 모델에 최상의 통찰을 결합하고 불필요한 부분은 제거하도록 지시합니다.

  • 합성 모델은 가능한 경우 원본 목록에 없는 모델 중에서 고의적으로 선택됩니다.
  • 프롬프트 (단순화):
Here are responses from four models. Write one definitive answer.
Take the best from each.

실제로, 합성된 결과는 보통 개별 응답보다 구조가 더 좋으며 최소 하나의 모델이 놓친 세부 사항을 포착합니다.

구현 세부 사항

  • 언어: TypeScript (~1 500줄)
  • 종속성:
    • @modelcontextprotocol/sdk – MCP 프로토콜
    • zod – 입력 검증
    • Node 18+ (Express 없음, 데이터베이스 없음, 추가 빌드 프레임워크 없음)

모든 도구 입력은 Zod 스키마로 검증되며, 모든 로그는 stderr 로 출력됩니다 (stdout은 JSON‑RPC 프로토콜을 위해 예약되어 있으며, 그 외의 출력을 보내면 MCP가 깨집니다).

Quick‑Start Guide (≈ 5 minutes)

  1. 백엔드 설정 – CLIProxyAPI 및/또는 Ollama.

  2. HydraMCP를 복제, 설치, 빌드.

  3. .env백엔드 URL 추가.

  4. Claude Code에 등록

    claude mcp add hydramcp -s user -- node /path/to/dist/index.js
  5. Claude Code를 재시작한 뒤 list models를 실행합니다.

  6. 그 다음에는 자연스럽게 대화하면 됩니다:

    • “Ask GPT‑5 to review this.”
    • “Compare three models on this approach.”
    • “Get consensus on whether this is thread‑safe.”

Claude Code는 모든 작업을 자동으로 HydraMCP를 통해 라우팅합니다.

공급자 인터페이스 확장

설계는 의도적으로 확장 가능하도록 되어 있습니다. 앞으로 보고 싶은 백엔드:

  • LM Studio – 또 다른 로컬 모델 옵션.
  • OpenRouter – 구독하지 않은 모델에 대한 토큰당 결제 접근.
  • Direct API keys – OpenAI, Anthropic, Google (CLIProxyAPI 없이).

각 새로운 공급자는 대략 100 줄의 TypeScript 정도입니다: 세 개의 인터페이스 메서드를 구현하고, 등록하면 끝입니다.

Bottom Line

실제 가치는 단일 기능에 있는 것이 아니라 workflow change에 있다: 하나의 모델 의견만을 신뢰하는 대신 여러 모델에 저렴하게 검증하고, 합의를 도출하며, 더 높은 품질의 답변을 합성할 수 있다—모두 편집기(editor)나 터미널(terminal)을 떠나지 않고 수행한다.

멀티‑모델 AI 비교

특정 작업에 대해 GPT와 Claude 중 어느 것이 더 좋은지 고민하는 대신, 나란히 비교하여 결과를 확인할 수 있습니다.

여러 모델을 사용하는 이유

  • 다양한 강점:

    • GPT‑5는 Claude가 놓치는 성능 문제를 자주 포착합니다.
    • Claude는 GPT가 고려하지 않는 아키텍처 패턴을 제안할 수 있습니다.
    • Gemini는 때때로 가장 철저한 분석을 제공합니다.
    • Local Qwen무엇이 잘못됐는지뿐 아니라 잘못됐는지를 설명하는 데 놀라울 정도로 뛰어납니다.
  • 통합 터미널 접근:
    모든 모델을 단일 터미널에서 사용할 수 있고, 병렬 실행 및 구조화된 비교가 가능해짐에 따라 AI를 코드에 활용하는 방식이 바뀝니다. 워크플로우가 “내가 선호하는 모델에 물어보기”에서 “이 작업에 맞는 모델에 물어보기”—또는 간단히 “모두에게 물어보고 결과를 확인하기”로 전환됩니다.

HydraMCP

구독이 사용되지 않고 쌓여 있거나 로컬 모델이 유휴 상태라면, HydraMCP가 이를 활용합니다. 또한 새로운 제공자를 추가하고 싶다면, 인터페이스가 문서화되어 있으며 예제가 제공됩니다.

Back to Blog

관련 글

더 보기 »