관련 보이지만 다른 질문 답하는 셋. 차이 한 번 또렷하면 — '이거 MCP 써야 해?' 빙빙 도는 다툼 — 안 함.
- Function calling 이 single LLM API 의 feature. 네 코드 와 모델 provider 사이 wire 모양 정의. Provider 가 — request 에 보냈으니까 — 네 tool 알아; 다른 누구도 안 봄. Intra-application plumbing.
- MCP 가 어느 client 든 어느 server 든 재사용 하게 해주는 protocol. Contract 가 독립적으로 짠 host 와 server 사이. Server tool 이 연결한 client 들에 visible; protocol 이 connection governs, 모델 X. Inter-application plumbing.
- REST/OpenAPI 가 클래식 웹 API contract. 임의 HTTP client 용 resource · method · status code 정의. LLM 이 한 쪽 끝인 거 신경 X; LLM 존재 한참 전부터 정확성 신경. 일반 plumbing.
결정 트리, 짧게: 한 app 안에서 한 모델로 build? Function calling. 여러 AI product 가 재사용할 tool build? MCP. 임의 client (브라우저, 모바일, integration, AI agent) 가 소비할 public API build? REST/OpenAPI. 셋 layer 가 stack: MCP server 의 tool 이 종종 REST API 감쌈 내부적으로; LLM 이 MCP server tool 을 provider function-calling 모양으로 소비. 각 layer 가 자기 값.