MCP vs REST API 차이: 언제 무엇을 써야 하나요?

REST API는 여러분의 코드가 호출하는 엔드포인트이고, MCP는 AI 앱이 실행 중에 서버의 도구를 찾아 호출하게 해 줍니다. 둘의 차이와 각각 언제 쓰는지 정리합니다.

읽는 시간 5분Sume
전체 글

REST API는 여러분의 코드가 호출하는 HTTP 엔드포인트의 모음이며, 그 코드는 해당 서비스 하나의 문서를 보고 작성합니다. MCP(Model Context Protocol)는 AI 애플리케이션을 위한 표준입니다. MCP 서버는 자신의 도구를 JSON Schema 입력과 함께 나열하고, 어떤 MCP 클라이언트든 실행 중에 그 도구를 찾아 호출할 수 있습니다. MCP 도구는 내부에서 API를 호출할 수 있으므로, 실제로 고를 것은 각 호출을 누가 주도하느냐, 즉 여러분의 코드냐 AI 모델이냐입니다.

MCP 쪽 내용은 MCP의 소개, 아키텍처, 서버 개념 페이지와 2025-11-25 명세의 도구, 트랜스포트 페이지에서 가져왔습니다. 예시로 든 Sume 호스팅 MCP 서버와 Developer API 내용은 MCP 도구와 게이트, Image API (영문) 문서, 그리고 서버의 현재 코드에서 가져왔습니다. 모두 2026-09-28에 확인했습니다.

API와 MCP의 차이는 무엇인가요?

REST API는 문서를 읽고 그에 맞춰 코드를 작성하는 개발자를 위해 만들어졌습니다. MCP는 실행 중에 서버가 무엇을 제공하는지 알아내는 프로그램을 위해 만들어졌습니다. MCP 문서의 용어로 호스트는 Claude Code 같은 AI 애플리케이션이며, 호스트는 연결하는 MCP 서버마다 MCP 클라이언트를 하나씩 만듭니다. MCP가 모델 자체의 도구 호출과 어떤 관계인지는 별개의 질문으로, MCP vs 함수 호출에서 다룹니다.

MCP 열은 MCP 아키텍처, 서버 개념, 트랜스포트, 도구 페이지 기준, 2026-09-28 확인.
질문REST APIMCP
누가 호출하나요?개발자가 이 서비스 하나를 위해 작성한 코드AI 애플리케이션 안의 MCP 클라이언트(서버마다 클라이언트 하나)
호출하는 쪽은 무엇이 있는지 어떻게 아나요?코드를 작성하면서 읽는 문서나 API 레퍼런스스키마가 포함된 도구 정의 배열을 반환하는 tools/list
요청은 어떤 모습인가요?POST /v1/images처럼 리소스 URL에 보내는 HTTP 메서드도구 name과 arguments를 담은 tools/call 같은 JSON-RPC 2.0 메시지
무엇으로 전달되나요?HTTP로컬 서버는 표준 입출력(stdio), 원격 서버는 Streamable HTTP
실패는 어떻게 드러나나요?HTTP 상태 코드프로토콜 문제는 JSON-RPC 오류, 도구가 실패하면 isError: true인 결과

MCP 서버는 API를 감싼 래퍼일 뿐인가요?

그럴 수도 있지만, 꼭 그래야 하는 것은 아닙니다. MCP 문서에 따르면 도구는 데이터베이스에 쓰거나, 외부 API를 호출하거나, 파일을 수정하거나, 다른 로직을 실행할 수 있습니다. 또한 문서는 MCP가 컨텍스트를 주고받는 프로토콜만 다룰 뿐, AI 애플리케이션이 모델을 어떻게 쓰는지는 다루지 않는다고 설명합니다. 그래서 MCP 서버는 이미 있는 API 앞에 놓여 모델에게 필요한 것을 더할 수 있습니다. 이름이 붙은 도구, 설명, 입력 스키마입니다.

Sume 호스팅 MCP 서버가 그 예입니다. Sume 문서에 따르면 이 도구들은 선별된 공개 API 기능을 감싸며, HTTP API와 완전히 동일하지는 않습니다(어떤 Sume 인터페이스가 무엇을 다루는지).

같은 호출은 REST와 MCP에서 각각 어떤 모습인가요?

Sume에서 이미지 요청 하나를 두 방식으로 보내 보겠습니다. REST에서는 여러분의 코드가 POST /v1/images에 model과 prompt를 담아 보내며, 문서는 model을 필수로 표시합니다. model: "sume/auto"로 두면 Sume가 모델 계열을 고릅니다. 이 호출은 최대 30초 동안 블로킹된 뒤 이미지를 반환하고, 생성이 더 오래 걸리면 202와 함께 Job을 반환합니다.

MCP에서는 AI 클라이언트가 generate_image에 대한 tools/call을 보냅니다. Sume MCP 문서는 sume/auto로 라우팅하려면 payload.model을 생략하라고 하며, 모든 쓰기·유료 도구에는 idempotency_key가 필요합니다. 현재 코드에서 이 도구는 기본적으로 비동기로 제출하고 Job id로 응답하며, 에이전트는 그 Job을 jobs_wait로 기다립니다.

# REST: your code calls the endpoint
curl -X POST https://api.sume.com/v1/images \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "sume/auto", "prompt": "a red panda astronaut, studio lighting"}'

# MCP: the AI client sends this JSON-RPC message to https://mcp.sume.com/mcp
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "generate_image",
    "arguments": {
      "idempotency_key": "panda-001",
      "payload": { "prompt": "a red panda astronaut, studio lighting" }
    }
  }
}

API를 직접 호출하지 않고 MCP를 써야 할 때는 언제인가요?

다음에 무슨 일이 일어날지 누가 정하는지를 기준으로 고르세요. MCP 사이트가 내세우는 이 프로토콜의 장점은, AI 애플리케이션을 만들거나 그와 연동할 때 개발 시간과 복잡도를 줄여 주고, 한 번 만들어 어디에나 쉽게 연동할 수 있게 해 준다는 것입니다. 두 장점 모두 AI 애플리케이션이 호출한다는 것을 전제로 합니다.

  • 백엔드, 스크립트, 큐 워커처럼 여러분의 코드가 정할 때는 API를 호출하세요. 각 요청과 재시도, 오류 처리를 직접 제어할 수 있습니다. Sume 기초 페이지는 api.sume.com을 공개 Developer API로 소개하며, 호스팅 MCP는 여전히 동작하지만 현재 주 경로에는 속하지 않는다고 설명합니다. AI 에이전트용 MCP vs CLI vs API는 에이전트 종류별로 맞는 Sume 인터페이스를 정리합니다.
  • 어떤 호출을 할지 AI 애플리케이션이 정할 때는 MCP 서버를 연결하세요. MCP 사이트는 MCP를 지원하는 클라이언트로 Claude, ChatGPT, Visual Studio Code, Cursor 등을 꼽습니다.
  • 코드와 AI 클라이언트가 같은 서비스를 써야 할 때는 둘 다 쓰세요. 코드는 API를 호출하고, AI 클라이언트는 그 API를 감싼 MCP 서버를 통해 같은 기능에 접근합니다.
  • 무언가를 바꾸거나 비용을 쓰는 호출에는 사람이 개입하도록 하세요. MCP 도구 명세는 도구 호출을 거부할 수 있는 사람이 항상 루프 안에 있어야 한다(SHOULD)고 말합니다.

출처

관련 글

에이전트 카테고리의 다른 글

에이전트 글 전체 보기

작성자 Sume