research

Tool vs MCP — fundamental 차이와 공유 메커니즘

Tool vs MCP — fundamental 차이와 공유 메커니즘

"Tool vs MCP"는 잘못된 대립. 둘은 경쟁 관계가 아니라 layer 다름. MCP가 function calling을 사용하는 형태. 이 노트는 가정 4 결정의 fundamental reference. tool 공유의 ecosystem 마찰을 정량 비교한다.


한 줄

Function calling = LLM의 능력 (tool 호출 mechanism). Tool = 실행 가능한 함수 단위. MCP = tool 정의를 server로 외부화하는 protocol. "non-MCP tool 공유"는 같은 stack 안에서는 OK이지만 cross-language·cross-product에서는 마찰 폭발.


가장 흔한 오해 — 그리고 fundamental 정리

오해: "Function calling과 MCP는 대안이다"

사실: 둘은 layer가 다르다. MCP가 function calling을 사용한다.

핵심 비유:

Function Calling = "함수를 호출하는 *문법*"
                   (LLM이 'X 함수에 Y 인자' 형태로 출력)

Tool             = "함수 자체"
                   (실행 가능한 코드 단위)

MCP              = "함수 모음을 host-server 사이에 주고받는 *protocol*"
                   (어디에 어떤 tool 있는지, 어떻게 호출하는지)

non-MCP tool     = "함수를 AI app 안에 박는 형태"
                   (function calling은 똑같이 사용, 다만 tool 정의가 internal)

MCP tool         = "함수를 별 server로 띄우는 형태"
                   (function calling은 똑같이 사용, 다만 tool 정의가 external)

MCP는 function calling을 대체하지 않음. tool 정의·발견·호출의 위치를 바꿈.


추상적 작동 구조 — 두 형태 비교

non-MCP tool (자체 정의)

특징:

  • tool definitions이 AI app 코드 안에 있음
  • AI app만 그 tool 정의를 알고 있음
  • 다른 AI app이 같은 tool 사용하려면 코드 import 필요

MCP tool

특징:

  • tool definitions이 별 server에 있음
  • 어떤 AI app이든 protocol로 query해서 사용 가능
  • server를 config 한 줄로 다른 AI app에 추가 가능

공유 메커니즘 비교 — 정량 분석

non-MCP tool 공유 — 3가지 방식

방식어떻게한계
A. SDK packagenpm/pip/cargo로 distribution같은 언어 stack만. cross-language 안 됨
B. Plugin formatproduct specific format (VS Code ext, Cursor rules)product silo. 다른 product에서 사용 불가
C. HTTP API + 매번 wrappingtool을 REST API로 노출, AI app이 wrappingtool description·call format 매번 재발명

MCP tool 공유 — 1가지 방식

방식어떻게한계
MCP server distributionnpm/pip/Docker로 server 배포(없음 — protocol 표준이라 cross-everything)

공유 마찰 차원별 비교

차원non-MCP (자체 tool)MCP
Distribution 자체가능 (npm/pip/cargo)가능 (npm/pip/Docker)
Cross-language
Cross-product (Claude Code ↔ Cursor ↔ Goose)❌ silo✅ 표준
Discovery 표준❌ (각 product 자체)✅ (list_tools)
Auth/credential 표준✅ (OAuth, API key 표준화)
Versioning자체spec 표준
Tool description formatvendor specific표준 JSON Schema
Capability negotiation
학내 marketplace 형성어려움 (silo)
다른 학내로 복제자체 tool 재작성server 그대로 사용

공유 마찰은 MCP가 압도적으로 적음. 이게 ecosystem 폭발의 이유.


약점 / 한계

non-MCP tool의 공유 약점

  1. 언어 silo — JS tool은 JS app만, Python tool은 Python app만
  2. product silo — VS Code ext는 VS Code만, Cursor rule은 Cursor만
  3. Discovery 재발명 — 어떤 tool 있는지를 매 product가 자체 정의
  4. Auth 매번 새로 — credentials 관리 표준 없음
  5. Versioning 자체 — breaking change 표시 표준 없음
  6. 사용자 학습 매번 — 다른 product 가면 다시 학습

→ 결과: ecosystem 형성 어려움. silo가 클 수 있지만 cross-silo 공유는 거의 불가.

non-MCP tool의 현실적 사례

사례silo 크기한계
VS Code extensions1.5만 개VS Code only
Cursor rules수천 개Cursor only
Cline custom tools수백 개Cline only
pi-mono Extension API소수 (npm)TypeScript only
Aider edit formatN/AAider only

→ silo 안에서 큰 ecosystem 가능. 하지만 cross-product 공유는 사실상 불가.

MCP의 token 부담 (이전 논의)

  • tool definition이 verbose (200~500 tokens/tool)
  • 70 extension = 14~35k tokens/turn
  • → 답: lazy loading + skill index pattern (Anthropic)

대안 흐름 — non-MCP의 진화 시도

A. Open standard 시도들

  • AGENTS.md — agent definition 표준 (cross-product)
  • agentskills.io SKILL.md — skill 정의 표준
  • Tool Use API (OpenAI 표준화 시도) — function calling spec 통일
  • → 부분적 성공. 하지만 tool 자체가 아니라 agent/skill 메타데이터 표준

B. Tool gateway / proxy 패턴

  • non-MCP tool을 MCP server로 wrapping
  • 예: Anthropic의 mcp-server-dev plugin (SKILL.md → MCP)
  • → "한 번 작성, 여러 형태로"

C. WebRL / AutoSkill (학술)

  • tool을 trace에서 추출해서 표준화
  • → production 미적용

D. ACP (Agent Client Protocol)

  • agent ↔ client 상위 protocol
  • MCP보다 한 layer 위
  • → MCP와 보완 관계

학내 segment 적용

비개발자 다수 시나리오

non-MCP tool 공유 가능?

✅ 가능. 단, 같은 product 안에서만.

예: 학내 학생이 내 Cursor에서 작성한 custom rule을 다른 학내 학생의 Cursor에 공유.

한계:

  • 학내 marketplace를 Cursor만 쓴다고 가정해야
  • 다른 product (Claude Code, Goose, Continue 등) 사용 학생은 사용 불가
  • 학내 전공별 차이 (공대는 Cursor, 인문대는 Claude Code 등)

MCP tool 공유:

✅ 어떤 product를 쓰든 사용 가능. 학내 marketplace에 MCP server 올리면 모두 사용.

→ 비개발자 다수 + 학내 marketplace 형성 의도 = MCP가 결정적으로 유리.

개발자 학생 + 비개발자 학생 혼합

non-MCP: 개발자 학생이 각 product마다 tool 작성. 비개발자는 그 product 사용 시만 사용 가능.

MCP: 개발자 학생이 MCP server 1번 작성. 비개발자는 어느 product든 config로 사용.

혼합 segment에서 MCP가 사실상 필수. 개발자 1명의 노력이 99명에게 그대로 도달.


v1.0 결정에 영향 — 가정 4 답의 근거 강화

사용자가 주장하는 시나리오

"non-MCP + tool 기반에서 사용자 tool 자체를 공유하는 방식?"

:

  • ✅ 가능 (npm/pip로 distribute)
  • ⚠️ 단, language stack silo에 갇힘
  • ⚠️ product silo에 갇힘 (Cursor에서 만든 거 Claude Code에서 못 씀)
  • ❌ Cross-language·cross-product 공유는 사실상 불가

MCP보다 어려운가?

같은 stack/product 안에서: 비슷 Cross-language: 훨씬 어려움 (사실상 불가) Cross-product: 훨씬 어려움 (사실상 불가) ecosystem 형성: 훨씬 어려움

학내 segment의 결정

결정 조건적합 옵션
학내 사용자가 한 product만 쓸 것이라 가정non-MCP OK
학내 사용자가 여러 product를 쓸 것이라 가정MCP 결정적으로 유리
다른 학내로 복제 의도MCP 결정적으로 유리
비개발자가 기존 ecosystem(70+ MCP server) 활용MCP 결정적으로 유리

종합 답

"non-MCP로 tool 공유 가능?" → 같은 stack/product 안에서는 OK. Cross-everything에서는 거의 불가.

"MCP보다 어려운가?" → ecosystem 형성·cross-product 공유 측면에서 훨씬 어려움. silo 안에서는 비슷.

v1.0의 결정 input:

  • 학내 segment에 비개발자 다수 + 다른 product 사용 가능성 + 학내 marketplace 형성 의도가 있다면
  • → MCP가 현재 시점 가장 강력한 답
  • → 단, token 부담은 lazy loading + Skills 패턴으로 90% 해소
  • → 결과: MCP + Skills 패턴 (옵션 4-5) 가 비개발자 segment + ecosystem 둘 다 만족

fundamentals 학습 자료 — 더 깊이 가려면

이 주제는 ai-era-fundamentals 새 프로젝트에서 protocol vs implementation, standard vs library 같은 fundamentals로 깊이 갈 가치 있음.

학습 자료:


관련


Sources