30초 답변
Function Calling은 모델이 개발자가 제공한 schema에 맞춰 “이 Tool을 이런 인자로 호출하라”고 제안하는 모델 API 기능이다. MCP는 AI 애플리케이션과 외부 시스템 사이에서 Tool, Resource, Prompt를 발견하고 연결하는 표준 프로토콜이다.
둘은 경쟁 기술이 아니다. MCP Host가 서버에서 Tool 목록과 schema를 받아 모델의 Function Calling 형식으로 전달하고, 모델이 선택한 호출을 다시 MCP 서버의 tools/call로 실행하는 구조가 일반적이다.
이 글의 핵심
- Function Calling의 중심은 모델과 Tool 호출 형식이다.
- MCP의 중심은 Host·Client·Server 사이의 발견·연결·수명주기다.
- MCP를 써도 인증, 권한, 승인, 실행은 애플리케이션이 설계해야 한다.
한눈에 보는 차이
| 구분 | Function Calling | MCP |
|---|---|---|
| 범위 | 모델 API와 Tool schema | AI 앱과 외부 시스템의 연결 프로토콜 |
| 주체 | 모델, 애플리케이션 | Host, Client, Server |
| 발견 | 앱이 Tool을 모델에 제공 | tools/list 등으로 서버 기능 발견 |
| 실행 | 앱이 함수·API 실행 | Client가 tools/call로 서버 실행 |
| 추가 기능 | 주로 Tool 호출 | Tools, Resources, Prompts, lifecycle, notifications |
| 표준화 대상 | 모델별 API | 모델과 공급자 밖의 통합 경계 |
Function Calling의 역할
애플리케이션이 날씨 조회 Tool의 이름, 설명, 입력 schema를 모델에 전달한다. 모델은 사용자 요청을 보고 Tool 호출과 인자를 생성한다. 애플리케이션이 실제 API를 실행하고 결과를 다시 모델에 전달한다.
OpenAI의 Function Calling 안내는 모델을 외부 Tool과 시스템에 연결하는 용도와 strict schema 사용을 설명한다.
중요한 점은 모델이 실행 권한 자체를 갖는 것이 아니라 애플리케이션이 제안을 검증하고 실행한다는 것이다.
MCP의 역할
MCP Architecture는 다음 참여자를 구분한다.
- Host: 사용자가 상호작용하는 AI 애플리케이션
- Client: 특정 MCP Server와 연결을 유지하는 구성요소
- Server: Tool, Resource, Prompt를 제공하는 프로그램
MCP Server 개념 문서는 Tool을 schema가 있는 실행 기능, Resource를 읽기용 context, Prompt를 재사용 가능한 템플릿으로 설명한다.
MCP는 Tool 호출 하나보다 넓은 연결 계약을 제공한다.
- 서버와 기능 발견
- protocol version과 capability 협상
- local stdio 또는 remote Streamable HTTP transport
- Tool·Resource·Prompt
- notification과 진행 상태
- remote authorization
함께 동작하는 흐름
- Host가 MCP Server에 연결
- Client가 tools/list로 Tool schema 수집
- Host가 필요한 Tool을 모델 API 형식으로 변환
- 모델이 Function Calling으로 Tool과 인자 선택
- Host가 권한·정책·승인을 검사
- Client가 MCP tools/call 실행
- 결과를 검증하고 모델 context에 전달
- 모델이 최종 응답 생성
즉 MCP가 Tool을 어디서 어떻게 제공할지 표준화하고, Function Calling이 이번 요청에서 무엇을 호출할지 모델과 협의한다.
MCP를 쓰면 자동으로 해결되지 않는 것
- 사용자 인증
- 문서·행 단위 권한
- Tool의 최소 권한
- 고위험 실행 승인
- 입력·출력 의미 검증
- idempotency와 rollback
- prompt injection 방어
- 로그 마스킹과 보존
MCP 공식 Tool 명세도 Tool이 임의 실행 경로가 될 수 있음을 경고하고 사용자가 거부할 수 있는 human-in-the-loop를 권장한다.
언제 MCP가 유용할까
- 여러 AI Host에서 같은 기업 통합을 재사용
- Tool뿐 아니라 Resource와 Prompt도 함께 제공
- 서버 기능을 동적으로 발견
- local과 remote 연결을 공통 방식으로 관리
- 모델 공급자와 통합 서버의 결합을 줄임
하나의 애플리케이션이 내부 함수 두 개만 쓰고 다른 Host에서 재사용할 계획이 없다면 직접 Function Calling이 더 단순할 수 있다.
자주 묻는 질문
MCP가 Function Calling을 대체하나?
아니다. MCP Tool을 모델에 노출할 때 Function Calling을 사용할 수 있다. 서로 다른 계층이다.
MCP Server가 모델을 직접 호출하나?
일반적인 Tool 호출에서는 Host가 모델과 Server를 조정한다. MCP에는 client 기능도 있지만 구체적인 모델 사용과 context 관리는 Host 설계에 달려 있다.
MCP를 도입하면 보안이 표준화되나?
연결과 authorization 기반은 제공하지만 업무 권한, 승인, Tool 위험 등급, 데이터 통제는 구현자가 설계해야 한다.