로우 레벨 MCP - LM Studio에서 MCP 사용하기 (260218)

WonTerry·2026년 2월 18일

MCP

목록 보기
17/23

LM Studio에서 import mcp가 필요 없는 이유

— Claude 환경과 비교하며 이해하는 MCP의 로우레벨 구현 —

최근 로컬 LLM 환경에서 MCP(Model Context Protocol)를 직접 구현하는 사례가 늘고 있다. 특히 LM Studio를 사용하는 경우, 많은 개발자들이 한 가지 질문을 던진다.

“MCP를 사용하려면 import mcp를 해야 하는 것 아닌가?”

결론부터 말하면, LM Studio에서는 import mcp가 전혀 필요하지 않다.

그 이유를 이해하려면 먼저 MCP의 본질을 알아야 한다.


1. MCP는 라이브러리가 아니라 ‘프로토콜’이다

MCP(Model Context Protocol)는 특정 Python 라이브러리가 아니라,
LLM과 외부 시스템이 통신하기 위한 JSON-RPC 기반 통신 규격이다.

즉,

MCP = 통신 규약 (Protocol)
mcp = 특정 환경에서 제공하는 SDK (선택사항)

우리가 반드시 사용해야 하는 것은 “라이브러리”가 아니라,
프로토콜 규격을 따르는 JSON 메시지 구조다.


2. LM Studio의 동작 방식

LM Studio는 외부 MCP 서버를 다음과 같이 실행한다:

LM Studio
   ↕ (stdin/stdout JSON-RPC)
외부 Python 프로세스

즉, LM Studio는:

  • 외부 프로그램을 subprocess로 실행
  • 표준 입력(stdin)으로 JSON 요청 전달
  • 표준 출력(stdout)으로 JSON 응답 수신

이 구조에서는 특정 Python SDK가 필요 없다.
JSON-RPC 메시지만 정확히 주고받으면 된다.

따라서 다음과 같은 코드만으로도 완전한 MCP 서버가 된다:

import sys
import json

while True:
    line = sys.stdin.readline()
    request = json.loads(line)
    response = handle_request(request)
    print(json.dumps(response), flush=True)

이것이 바로 MCP의 로우레벨 구현이다.


3. Claude 환경과의 차이

반면, AnthropicClaude Desktop 환경에서는 공식 MCP Python SDK를 제공한다.

이 경우 우리는 보통 다음처럼 작성한다:

from mcp.server import Server

server = Server("time-aware")

@server.tool()
def get_current_time():
    ...

이 SDK는 다음을 자동 처리한다:

  • JSON-RPC 파싱
  • tools/list 자동 구성
  • 에러 핸들링
  • resources/prompts 등록
  • 프로토콜 버전 협상

즉, Claude 환경에서는 MCP 추상화 레이어 위에서 개발한다.


4. LM Studio vs Claude 비교

항목LM StudioClaude Desktop
MCP 실행 방식subprocess + stdin/stdout공식 MCP 런타임
SDK 필요 여부❌ 필요 없음✅ SDK 권장
JSON-RPC 처리직접 구현SDK가 자동 처리
제어 수준매우 높음추상화되어 있음
학습 난이도상대적으로 높음비교적 쉬움

5. MCP 로우레벨 구현이란 무엇인가?

로우레벨 구현이란:

  • JSON-RPC 스펙을 직접 구현
  • initialize
  • tools/list
  • tools/call

을 수동으로 처리하는 방식이다.

예를 들어:

if method == "tools/list":
    return {
        "jsonrpc": "2.0",
        "id": id_,
        "result": {"tools": TOOLS}
    }

이처럼 우리가 직접 응답 구조를 작성한다.

이는 단순히 “라이브러리를 쓰지 않는 것”이 아니라,

MCP 프로토콜을 직접 구현하는 것

이라는 점에서 큰 의미가 있다.


6. 왜 LM Studio에서는 SDK가 필요 없는가?

그 이유는 단순하다.

LM Studio는:

  • MCP 서버를 “실행”만 할 뿐
  • 내부 구조에 관여하지 않으며
  • JSON 메시지 형식만 검증하기 때문이다.

즉, LM Studio는 다음만 요구한다:

입력: JSON-RPC 요청
출력: JSON-RPC 응답

그 이상도, 그 이하도 아니다.

따라서 import mcp가 없어도
프로토콜을 정확히 구현하면 완전한 MCP 서버가 된다.


7. 어떤 방식을 선택해야 할까?

LM Studio를 사용하는 경우

  • 직접 JSON-RPC 구현 추천
  • 제어권이 높음
  • 구조 이해에 매우 좋음

Claude 환경을 사용하는 경우

  • SDK 사용 권장
  • 개발 속도 빠름
  • 유지보수 용이

결론

LM Studio에서 import mcp가 필요 없는 이유는 명확하다.

MCP는 라이브러리가 아니라 통신 프로토콜이기 때문이다.

Claude 환경에서는 SDK가 MCP를 추상화하지만,
LM Studio에서는 우리가 직접 JSON-RPC를 구현함으로써
MCP 서버 그 자체를 만드는 것이다.

이 차이를 이해하는 순간,
우리는 단순한 “LLM 사용자”가 아니라
LLM과 시스템을 연결하는 프로토콜 설계자가 된다.


profile
Hello, I'm Terry! 👋 Enjoy every moment of your life! 🌱 My current interests are Signal processing, Machine learning, Python, Database, LLM & RAG, MCP & ADK, Multi-Agents, Physical AI, ROS2...

0개의 댓글