AI 외부 연동 : MCP와 API의 차이와 동작 원리

‘MCP란 무엇인가?’라는 제목 아래 대화창 벽을 사이에 둔 AI 로봇들과 문서 더미 옆에서 삽을 든 엔지니어

MCP는 AI 어플리케이션이 외부 도구와 데이터를 이용하는 방식을 표준화한 통신 규약이다. AI를 외부 시스템과 연결하는 방법부터 API와 MCP의 차이, 구성요소와 도구 호출 흐름, 통신 방식을 살펴본다. AI 기반 블로그 구조화 데이터 엔티티 관리 시스템 개발 기록의 첫 글로, REST API와 MCP 서버의 역할을 분리하고 AI의 작업 범위를 조회로 제한한 설계 배경을 공유한다.

AI 사용의 편리함과 한계 : 앱 속에 갇힌 AI

본 필자의 고민 : 블로그 자동화

본 필자는 검색엔진과 AI가 블로그를 더 잘 이해할 수 있도록 추가하는 정보인 구조화 데이터를 적극 활용하고자 자체 데이터베이스와 이를 표출하는 시스템을 개발해 블로그에 활용하고 있다.

처음에는 구조화 데이터 생성 대상을 고르고, 정보를 검색해 수동으로 추가했지만, 어느 정도 익숙해진 다음에는 AI를 통해 선정과 정보 취합을 진행했다. 덕분에 글을 등록하기 위해 구조화 데이터를 준비하는 시간은 많이 줄어들었지만, 정보들을 하나하나 데이터베이스에 입력하는 것은 여전히 본 필자의 몫이었다.

ChatGPT가 제안한 토크 엔티티 정보와 STDTBank의 수동 등록 입력 화면
ChatGPT가 정리한 정보를 수동으로 입력하는 모습

완전 수작업이다 보니 잘못 붙여 넣는 경우도 있고, 중복되는 경우도 있어, 옮겨 넣는 작업만으로도 생각보다 많은 시간이 들어갔다. 이를 반복하던 필자의 머릿속에 어느 날 한 가지 의문이 떠올랐다.

엔티티 등록 작업을 AI를 이용해 자동으로 할 수 있지 않을까?

프롬프트 속에 갇힌 AI

AI는 일상에서 널리 사용되고 있다. 흔히 사용하는 것은 LLM 기반의 대화형 서비스로, 웹사이트나 앱의 대화창에 요구사항을 적거나 자료를 붙여 넣는 방식이다.

ChatGPT, Copilot, Gemini의 대화형 AI 입력 화면을 세로로 배치한 이미지
여러 AI 서비스의 대화식 인터페이스

하지만 대화창을 통해 AI에게 필요한 데이터를 제공하고, 그 결과를 밖으로 끄집어내는 것은 여전히 사람의 몫이다. AI의 응답에 따라 복사와 붙여넣기를 반복하다 보면 사람이 AI의 조수 역할을 하는 것처럼 느껴질 때도 있다.

때문에 AI를 프롬프트 속에서 끄집어내어 실제 세상에 연결시켜 주어야 한다. 실제 데이터에 액세스하고 외부 시스템에서 허용된 작업을 수행할 수 있어야 진정한 똑똑한 비서라 할 수 있을 것이다.

이를 위해서는 AI가 외부 데이터를 조회하거나 작업을 요청할 수 있는 연결 통로가 필요하다. 대화창에 자료를 붙여 넣는 방식에서 더 나아가, 필요한 정보를 시스템에서 스스로 가져오고 처리 결과를 전달할 수 있도록 하는 것이다.

AI를 실제 세상과 연결하는 여러 가지 방법

AI를 외부와 연결하는 방법에는 여러 가지가 있는데, 대표적인 기술과 방법은 다음과 같다.

API(Application Programming Interface)
AI에게 외부 서비스나 프로그램의 연동 설명서를 제공해 주고 그 방법을 이용해 외부와 통신하는 방식이다. 예를 들어 기상 정보 API와 연결한 후 ‘현재 김포공항 온도는?’이라고 요청해 기상 시황을 조회해 답변하게 할 수 있다.
Tool / Function Calling
AI가 사용할 도구를 제공하고 실행을 요청하는 방식이다. 예를 들어 고유한 알고리즘의 로또 번호 생성 도구를 만들어 AI에 등록하고 ‘내 로또 번호 생성기를 사용해 번호를 만들어 줘’라고 요청할 수 있다.
RPA (Robotic Process Automation)
웹 매크로처럼 화면상의 클릭과 입력 등의 작업을 자동화하는 기술이다. 예를 들어 AI가 정리한 영수증 정보를 회계처리 프로그램에 입력시킬 수 있다.
웹훅(Webhook)
어떤 이벤트가 발생했을 때 연결된 프로그램에 정보를 보내 자동 처리를 시작하도록 하는 방식이다. 예를 들어 배송 정보가 갱신될 때 웹훅 메시지를 함께 발송하면, AI가 택배의 현재 위치와 배송 관련 정보를 바탕으로 예상 도착 시각을 추정할 수 있다.
MCP(Model Context Protocol)
AI 모델의 외부 통신 방식을 정한 개방형 표준이다. 서버가 제공하는 기능을 확인하고 실행을 요청하며 결과를 전달받는 공통 규칙을 제공한다.

이러한 기술들은 한 가지만 사용되는 것이 아니라 필요에 따라 조합해 사용된다.

MCP의 동작

MCP의 구성

MCP에는 다음과 같은 개념들이 존재한다.

호스트(Host)
사용자가 이용하는 AI 어플리케이션이다. AI 모델을 활용하고 MCP 클라이언트를 관리하며, 전체 실행 과정을 조율한다.
클라이언트(Client)
Host 내부에서 MCP 서버와 통신하는 구성 요소이다. 도구 호출 요청을 보내거나 데이터를 전달받는다. 하나의 Host가 여러 Client를 돌릴 수 있다.
서버(Server)
도구와 데이터를 MCP 형식으로 제공하는 프로그램이다. 클라이언트의 요청에 따라 작업을 실행하고 정보를 반환한다.
도구(Tools)
검색, 계산과 같은 특정 작업을 수행하는 기능이다. 서버가 제공하는 도구의 이름과 특성 등을 바탕으로 AI 모델이 사용할 도구를 선택할 수 있다.
리소스(Resources)
문서나 데이터베이스처럼 AI 어플리케이션이 맥락 정보로 활용할 수 있는 참고 데이터이다.
프롬프트(Prompts)
작업의 진행 방식을 구성한 템플릿이다. 필요한 입력값을 받아 작업 지침이나 메시지를 구성할 수 있다.

호스트, 클라이언트, 서버는 MCP의 영역을 구분한다. 클라이언트와 서버는 일반적인 개념과 동일하게 MCP 메시지를 주고받는 주체를 의미한다. 여기에 더해 호스트라는 개념이 등장하는데, 호스트는 사용자의 요청과 도구 정보를 바탕으로 AI 모델이 사용할 도구를 고르고 클라이언트를 통해 호출한 뒤, 받은 응답과 결과를 후속 처리와 답변에 활용하도록 조율한다. 즉 AI 모델과 클라이언트를 관리하는 상위 어플리케이션 환경이다.

MCP의 동작 흐름

MCP는 대략 다음과 같이 동작한다.

  1. 기능 확인 : 호스트 내부의 MCP 클라이언트가 서버의 도구와 특성을 확인한다.
  2. 요청 해석 : AI 모델이 사용자의 요청에 적합한 도구를 선택한다.
  3. 실행 요청 : 호스트가 클라이언트를 통해 서버의 도구를 호출한다.
  4. 작업 수행 : 서버가 입력값과 접근 권한 등을 검증하고 해당 기능을 실행한다.
  5. 결과 반환 : 실행 결과를 클라이언트에 반환하고, 호스트는 이를 AI 모델에 전달한다.
  6. 답변 구성 : AI 모델이 결과를 바탕으로 적절한 다음 동작을 취한다.

MCP의 통신 방식

MCP 메시지를 전달하는 대표적인 방식에는 STDIO와 Streamable HTTP가 있다.

STDIO : 표준 입출력
콘솔 프로그램에서 자주 보는 STDIO와 같은 의미이다. 클라이언트가 MCP 서버 프로그램을 하위 프로세스로 실행하고, 표준 입력과 표준 출력을 통해 메시지를 주고받는 방법으로, 같은 서버에 있는 프로그램을 호출할 때 사용한다. 콘솔의 파이프 개념과 유사하다.
Streamable HTTP : HTTP 기반 통신
클라이언트와 서버의 데이터를 HTTP 통신을 이용해 전송한다. 네트워크 연결에 사용할 수 있으며, 일반 JSON 응답을 반환하거나 필요에 따라 Server-Sent Events(SSE)를 이용해 메시지를 스트리밍 방식으로 전달할 수 있다.

API와 MCP

위에서 소개한 MCP의 설명을 읽어 보면 이런 생각이 드실 독자 제위 계실 것이다.

외부 프로그램의 기능을 호출하고 결과를 받는 것이라면, API랑 뭐가 다른거야?

사실, AI를 하나의 서비스로 놓고 본다면 MCP 역시 AI용 API라고 얘기해도 틀리지는 않는다. 다만 정확히 말하자면 다음과 같은 차이가 존재한다.

API (Application Programming Interface)
특정 기기에만 사용할 수 있는 전용 충전기를 생각하면 쉽다. 컴퓨터용 전원 코드를 냉장고에 사용할 수 없는 것처럼, 외부 어플리케이션이 고유하게 제공하는 기능, 입력값, 반환값 등의 규칙은 저마다 다르다. 이를 AI에서 이용하기 위해서는 각 API에 적합한 연결 및 통신 방식을 개별적으로 구현해야 한다.
MCP (Model Context Protocol)
‘USB 충전 단자’를 생각하면 쉽다. 요즘은 거의 모든 전자기기의 충전에 표준 USB 포트를 사용하는 것과 같다. MCP는 외부 어플리케이션의 도구와 데이터 형태를 AI에게 알려주는 공통 규약으로, 어플리케이션 고유의 기능과 무관하게 표준화된 방식으로 AI가 외부와 소통할 수 있게 한다.

호환되는 MCP 클라이언트를 갖춘 AI 어플리케이션은 개별 서비스의 API 호출 규칙을 직접 구현하는 대신, 공통된 MCP 규격으로 서버가 제공하는 도구를 이용할 수 있다. 물론, 개별 어플리케이션의 API에 맞춘 연동은 MCP 서버에서 구현해야 하며, 클라이언트와 서버 사이의 호환성과 인증 조건도 충족해야 한다.

본 필자의 선택 : 접근 범위 제한과 역할 분리

위에서 말했던 바와 같이 본 필자의 목표는 AI를 통해 블로그의 구조화 데이터베이스를 관리하는 것이었다. 즉, AI가 데이터베이스에 접근해 데이터를 읽고 쓸 수 있다면 문제는 해결된다. 본 필자가 사용하는 데이터베이스가 MCP 서버를 제공한다면, 이것을 사용하는 것이 가장 효과적인 방법일 것이다. 실제로도 MariaDB 공식 사이트에서 MCP 서버를 제공한다.

하지만 본 필자는 AI를 완전히 신뢰하지 않는다.

MariaDB용 MCP 서버는 데이터베이스에 대한 포괄적 접근이 가능하다. 자칫 잘못하면 구조화 데이터용 데이터베이스 이외의 다른 영역도 건드릴 수 있다.

또한, AI가 구조화 데이터의 속성을 잘 정리해 준다고는 해도 최종 등록 전 반드시 본 필자가 직접 검수를 해야만 했다. 가끔씩 실제와 다르거나 엉뚱한 내용을 출력하는 경우가 있기 때문이다.

이러한 이유로 본 필자는 데이터 관리와 AI 연결을 명확히 분리했다. 구조화 데이터의 데이터베이스 접근은 WordPress REST API가 담당하고, MCP 서버는 이 API를 호출해 AI가 사용할 조회 도구를 제공하도록 구성했다. AI가 접근할 수 있는 통로 자체를 특정 데이터베이스에만 연결되도록 제한한 것이다. 이렇게 하면 AI가 접근 가능한 영역을 불필요하게 넓히지 않아도 된다.

쓰기 작업은 일차적으로 AI가 작성한 SQL 명령어를 본 필자가 직접 검수한 뒤 서버에서 실행하는 방식을 선택했다. API에는 쓰기와 수정 기능도 구현되어 있지만 AI 연동에는 활성화하지 않았다. AI가 수행할 수 있는 작업을 조회로 제한하고, 실제 변경은 본 필자가 검수한 후 진행하는 것이다. 쓰기 연동은 AI가 생성하는 구조화 데이터 정보를 충분히 신뢰할 수 있을 때 연동하면 된다.

이렇게 기본 정책을 잡고 본 필자는 첫 AI 연동 프로젝트를 시작하게 된다.

FAQ

AI 서비스는 대화창을 통해서만 사용할 수 있는가?
아니다. 대화창은 AI 서비스를 이용하는 인터페이스 중 하나이다. API를 제공하는 서비스라면 적절한 인증과 사용 권한을 갖춘 프로그램이 입력 데이터를 전달하고 결과를 받아 처리할 수 있다. 또한 외부 도구를 연결하면 AI 어플리케이션이 필요한 데이터를 조회하거나 허용된 작업을 수행하도록 구성할 수 있다.
LLM과 AI는 어떤 관계가 있는가?
AI는 인식, 예측, 추론, 생성 등의 작업을 수행하는 기술을 포괄하는 개념이며, LLM은 그중 대규모 언어 모델을 뜻한다. 대량의 데이터로 학습하여 언어를 처리하고 생성하며, 모든 AI가 LLM인 것은 아니다. 대화형 AI 서비스는 LLM에 사용자 인터페이스, 외부 도구, 데이터 조회 등의 기능을 결합하여 제공할 수 있다.
MCP와 커넥터, 플러그인은 무엇이 다른가?
MCP는 AI 어플리케이션과 외부 도구 및 데이터 사이의 통신 방식을 정한 규약이다. 커넥터는 일반적으로 외부 서비스나 데이터 소스를 연결하는 구성요소를, 플러그인은 어플리케이션에 기능을 추가하는 확장 모듈을 뜻한다. 커넥터나 플러그인이 내부적으로 MCP를 사용할 수 있지만, 반드시 MCP로 구현되는 것은 아니다.
MCP와 API는 무엇이 다른가?
API는 프로그램이 다른 프로그램의 기능이나 데이터를 이용하도록 정의한 인터페이스이다. MCP는 AI 어플리케이션이 외부 도구와 데이터를 확인하고 이용하는 절차를 표준화한 통신 규약이다. 둘은 함께 사용할 수 있으며, MCP 서버가 기존 API를 호출하여 도구의 기능을 제공할 수도 있다.
AI를 외부 시스템과 연결하려면 반드시 MCP가 필요한가?
반드시 필요한 것은 아니다. API와 Tool Calling을 조합하거나 RPA, 웹훅 등을 활용할 수도 있다. MCP는 호환되는 AI 어플리케이션과 외부 서버 사이에서 도구 확인과 호출 등의 절차를 공통화하여 연동 부담을 줄이는 방법이다.
MCP의 호스트, 클라이언트, 서버는 각각 어떤 역할을 하는가?
호스트는 AI 모델을 활용하고 전체 작업을 조율하는 어플리케이션이다. 클라이언트는 호스트 내부에서 MCP 서버와 통신하며, 서버는 도구와 데이터를 제공하고 요청받은 작업을 처리한다. 하나의 호스트가 여러 클라이언트를 통해 여러 서버를 이용할 수 있다.
MCP의 STDIO와 Streamable HTTP는 무엇이 다른가?
STDIO는 일반적으로 클라이언트가 실행한 서버 프로그램과 표준 입출력으로 메시지를 주고받는 방식이다. Streamable HTTP는 HTTP로 메시지를 주고받으며, 원격 서버뿐 아니라 같은 컴퓨터에서도 사용할 수 있다. 필요에 따라 SSE를 이용한 메시지 스트리밍을 지원한다.
MCP를 연결하면 AI가 데이터베이스를 자유롭게 수정할 수 있는가?
MCP 연결 자체가 데이터베이스의 수정 권한을 부여하지는 않는다. 실제 가능한 작업은 서버가 제공하는 도구와 인증 및 접근 권한에 따라 결정된다. 실제로 데이터를 변경하지 않는 조회 전용 도구만 제공하면, 해당 도구를 통한 등록이나 수정은 할 수 없다. 읽기 전용 접근을 보장하려면 데이터베이스 계정의 권한도 조회로 제한해야 한다.
Gemini, ChatGPT, Copilot 등 주요 AI 어플리케이션 모두 MCP를 사용할 수 있는가?
ChatGPT, Gemini CLI, GitHub Copilot, Microsoft Copilot Studio 등 주요 AI 어플리케이션과 개발 도구에서 MCP를 지원한다. 다만 같은 브랜드의 모든 서비스가 동일하게 지원하는 것은 아니며, 제품과 요금제, 관리자 정책 및 지원하는 연결 방식 등을 확인해야 한다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다