MCP 도구란 무엇이며 AI 모델은 이를 어떻게 사용할까요?

MCP 도구가 무엇인지, AI 모델이 MCP 서버를 통해 이를 어떻게 찾고 호출하는지, 그리고 안전하게 사용하는 방법을 알아보세요.

Diagram of how MCP works: an AI app (the MCP host) sends tool requests through an MCP client to an MCP server, which connects to tools and returns results.

MCP 도구는 AI 모델이 대화 밖에서 작업을 수행하기 위해 호출할 수 있는 함수입니다. 메모를 검색하거나 데이터베이스를 쿼리하는 것이 그 예입니다. 각 도구는 MCP(Model Context Protocol) 서버에 있으며, 모델이 언제 사용할지 판단하는 데 도움이 되는 이름과 짧은 설명을 갖추고 있습니다.

"MCP 도구"라는 용어는 다른 의미로도 쓰입니다. 일상적으로는 MCP 서버(도구를 제공하는 애플리케이션)나 이러한 서버를 모아 둔 디렉터리를 가리켜 "MCP 도구"라고 부르기도 합니다. 또한 MCP Tools는 MCP 서버의 도구를 나열하고 호출하는 명령줄 프로그램의 이름이기도 합니다.

이 가이드는 서버, 디렉터리, 명령줄이 아닌 프로토콜 함수를 다룹니다. 도구가 무엇으로 구성되는지, 서버가 제공하는 도구에는 어떤 종류가 있는지, 그리고 도구가 리소스, 프롬프트, 함수 호출과 어떻게 다른지 설명합니다. 이어서 모델이 도구를 사용하는 단계를 차례로 살펴보고, 마지막으로 도구 사용과 관련된 가장 흔한 문제를 정리합니다.

MCP 도구란 무엇인가요?

MCP 도구는 AI 모델이 다른 소프트웨어 애플리케이션을 활용해 작업을 완료할 수 있게 해 주는 함수입니다. 몇 가지 예를 들면, 제 AI 에이전트와 워크플로우는 MCP 도구를 사용해 Gmail에서 이메일 초안을 작성하고(create_draft), Trello 카드를 만들고(trelloWriteCard), DataForSEO에서 실시간 검색 결과를 가져옵니다(serp_organic_live_advanced).

소프트웨어 앱은 MCP 서버에서 여러 MCP 도구를 제공하는 경우가 많습니다. 예를 들어 Trello MCP 서버에는 현재 14개의 MCP 도구가 있어, AI 모델이 보드, 리스트, 체크리스트, 카드 등을 읽고 업데이트할 수 있습니다.

또한 MCP는 도구를 설명하고 제공하는 방식을 표준화하므로, 이 프로토콜을 지원하는 AI 앱이라면 어떤 앱이든 같은 MCP 도구를 사용할 수 있습니다.

MCP 도구의 구성 요소

모든 MCP 도구에는 다음 세 가지가 포함됩니다:

  • 이름: 모델이 도구를 호출할 때 사용하는 짧은 식별자입니다(예: Google Calendar의 get_event).
  • 설명: 도구가 무엇을 하고 언제 유용한지를 쉬운 말로 설명한 내용입니다. 대규모 언어 모델(LLM)은 이 설명을 읽고 도구가 사용자의 요청에 맞는지 판단합니다(예: "Returns a single event on the given calendar.").
  • 입력: 도구를 실행하는 데 필요한 정보로, 메모 검색이라면 고객 이름과 날짜 같은 것이 해당합니다. 입력은 JSON으로 작성되며, 각 입력의 형식(텍스트, 숫자 또는 리스트)을 정하기 때문에 개발자들은 이를 입력 스키마라고 부릅니다.

일부 도구에는 표시 이름, 반환하는 결과에 대한 설명(출력 스키마), 도구의 동작 방식에 대한 주석 등 추가 메타데이터가 포함됩니다.

AI 모델은 도구 이면의 코드를 전혀 보지 못합니다. 도구가 스스로에 대해 설명하는 내용만을 바탕으로 작동하므로, 이름이나 설명이 모호하면 모델이 잘못된 도구를 선택하게 됩니다.

MCP 도구의 종류

MCP 도구는 기능에 따라 네 가지 그룹으로 나뉩니다:

  • 검색 및 조회 도구: 정보를 찾거나 가져옵니다(예: 메모 검색, 파일 읽기, 데이터베이스 쿼리).
  • 액션 도구: 다른 앱에서 무언가를 생성하거나 변경합니다(예: 할 일 추가, 캘린더 일정 생성, 지원 티켓 생성, 이메일 전송).
  • 데이터 처리 도구: 데이터를 변환하거나 분석합니다(예: 스프레드시트 파일 분석, 계산 실행).
  • 시스템 도구: 로컬 시스템과 상호 작용합니다(예: 터미널에서 명령 실행).

MCP 도구 vs. 리소스 & 프롬프트

MCP 서버는 MCP 도구 외에도 프로토콜에서 프리미티브라고 부르는 두 가지 유형의 구성 요소를 제공할 수 있습니다. 바로 리소스와 프롬프트입니다.

예를 들어 GitHub의 공식 MCP 서버는 다음을 제공합니다:

  • 이슈를 생성하거나 업데이트하는 issue_write라는 도구,
  • 리포지토리의 파일에 액세스할 수 있게 해 주는 repository_content라는 리소스,
  • 문제를 이슈로 보고하고 GitHub의 Copilot 코딩 에이전트가 이를 수정하는 pull request를 생성하도록 단계를 설정하는 issue_to_fix_workflow라는 프롬프트.

차이점은 각각이 하는 일과, 언제 사용할지를 누가 결정하느냐에 있습니다. 결정하는 주체는 사용자, 사용 중인 AI 앱(예: Perplexity), 또는 그 앱 안에서 실행되는 AI 모델입니다.

  • MCP 도구는 작업을 수행하거나 정보를 조회합니다. 도구를 언제 호출할지는 AI 모델이 자율적으로 결정하고, AI 앱이 그 호출을 서버로 전달합니다. 도구는 AI 모델이 선택하지만, AI 앱은 각 호출을 사용자에게 보여 주고 거부할 수 있게 해야 합니다.
  • 리소스는 파일이나 레코드 집합처럼 MCP 서버에서 사용할 수 있는 콘텐츠로, 각각 고유한 주소(URI)를 갖습니다. AI 앱은 서버에 어떤 리소스가 있는지 묻고, 필요한 리소스를 주소로 읽어 온 뒤 그 콘텐츠를 컨텍스트로 대화에 추가합니다.
  • 프롬프트는 서버가 제공하는 미리 만들어진 메시지 템플릿으로, 사용자가 채워 넣을 빈칸이 있는 경우도 있습니다. AI 앱이 사용 가능한 프롬프트를 보여 주면 사용자가 그중 하나를 선택하며, 흔히 슬래시 명령으로 선택합니다.

AI 모델이 MCP 도구를 사용하는 방법

AI 모델은 탐색, 도구 선택, 호출, 결과, 오류 처리의 다섯 단계로 MCP 도구를 사용합니다. 모델과 서버 사이에서 오가는 모든 것은 AI 앱이 전달합니다.

AI 앱에 Trello의 "이번 주" 리스트를 확인하고 편집자에게 진행 상황을 알리는 이메일 초안을 작성해 달라고 요청한다고 가정해 보겠습니다. 처음부터 끝까지 다음과 같은 과정이 진행됩니다:

  1. 탐색: AI 앱이 MCP 클라이언트를 통해 MCP 서버에 연결되면, 서버에서 사용할 수 있는 도구 목록을 요청합니다(tools/list라는 요청). LLM은 앱이 전달하는 내용, 즉 각 도구의 이름, 설명, 입력만 볼 수 있습니다.
  2. 도구 선택: AI 모델은 사용자의 요청을 이러한 설명과 비교해 적합한 도구를 고릅니다. 여기서는 리스트를 읽는 Trello의 trelloReadList와 이메일을 작성하는 Gmail의 create_draft입니다. 모델은 어떤 리스트를 읽을지 같은 입력값도 채웁니다.
  3. 호출: 모델은 도구를 실행하기 위한 구조화된 요청으로 응답합니다("함수 호출"이라고 하는 단계). AI 앱은 그 요청을 올바른 서버로 보냅니다(tools/call 요청). 이때 AI 앱은 호출 내용을 사용자에게 보여 주고 거부할 수 있게 해야 합니다.
  4. 결과: 서버가 함수를 실행하고 result를 돌려보냅니다. 이 경우에는 리스트에 있는 카드입니다. AI 앱은 결과를 대화에 추가하고, 모델은 다음에 무엇을 할지 결정합니다. 사용자에게 답하거나, 해당 카드를 바탕으로 작성한 이메일 내용으로 create_draft 같은 다른 도구를 호출할 수 있습니다.
  5. 오류 처리: 도구가 실행되었지만 실패한 경우(예: 리스트가 존재하지 않는 경우) 오류는 결과의 일부로 돌아옵니다. 모델은 이를 읽고 다른 입력으로 다시 시도할 수 있습니다. 서버에 없는 도구를 호출하는 것처럼 요청 자체가 잘못된 경우에는 앱이 대신 프로토콜 오류를 받습니다. 이 경우 모델이 복구할 가능성은 더 낮습니다.

핵심은 모델이 오직 설명만 보고 도구를 선택하며, 서버와의 통신은 모두 AI 앱이 담당한다는 점입니다.

흔한 MCP 도구 문제와 예방 방법

MCP 도구의 문제는 결국 네 가지로 귀결됩니다. 연결된 도구의 수, 도구의 이름과 설명 방식, 반환하는 데이터의 양, 그리고 도구를 제공하는 서버입니다.

각 문제의 증상과 도움이 되는 방법은 다음과 같습니다:

문제

증상

해결 방법

연결된 도구가 너무 많음

아무것도 묻기 전부터 모든 도구 정의가 모델의 컨텍스트 창을 차지하며, 목록이 길어질수록 도구 선택의 정확도가 떨어집니다.

작업에 필요한 서버만 연결하고, AI 앱에서 허용한다면 사용하지 않는 도구는 끄세요. 예: GitHub의 MCP 서버에서는 필요한 도구 그룹(도구 세트)만 활성화할 수 있습니다.

모호하거나 겹치는 설명

두 설명이 비슷하거나 한쪽 설명이 너무 부족해서, 모델이 잘못된 도구를 호출하거나 올바른 도구를 잘못된 입력으로 호출합니다.

명확하고 구체적인 이름과 설명을 제공하고, 가능하면 도구를 언제 사용해야 하는지 예시도 함께 넣으세요. 서버의 도구가 계속 잘못 호출된다면, 공식 테스트 도구인 MCP Inspector로 각 도구가 스스로에 대해 어떻게 설명하는지 정확히 확인할 수 있습니다.

두 서버에 같은 도구 이름이 있음

두 서버가 각각 search라는 도구를 제공하면, 어떤 호출이 어느 서버를 위한 것인지 알 수 없습니다.

도구 이름 앞에 서버 이름을 접두사로 붙이세요. 예: Trello 서버(trelloSearch, trelloReadList).

너무 큰 결과

도구가 서식이 포함된 이메일 스레드 전체처럼 작업에 필요한 것보다 많은 내용을 반환해 모델의 컨텍스트를 가득 채웁니다.

간결한 형식을 제공하는 도구를 사용하세요. 예: Gmail의 get_thread 도구 설명은 "컨텍스트 소진을 방지하기 위해(to prevent context exhaustion)" 일반 텍스트 형식을 권장합니다.

신뢰할 수 없는 서버

부주의하거나 악의적인 서버는 도구 호출을 이용해 대화에서 데이터를 빼낼 수 있습니다.

신뢰할 수 있는 출처의 서버만 연결하고, 무언가를 변경하거나 데이터를 외부로 보내는 도구에는 승인 기능을 켜 두세요.

MCP 도구에 승인이 필요한 이유는 무엇인가요?

MCP 도구에 승인이 필요한 이유는, 승인 없이는 AI 모델이 의도하지 않은 변경을 하거나 사용자가 통제할 수 없는 서버와 민감한 데이터를 공유할 수 있기 때문입니다.

요청을 잘못 이해하거나 도구 설명이 모호하면 잘못된 작업이 실행될 수 있습니다. 또한 모든 호출은 사용자 정보의 일부를 서버로 보냅니다.

그래서 프로토콜은 AI 앱이 사람을 과정에 계속 참여시키고, 사람이 어떤 도구 호출이든 거부할 수 있도록 할 것을 요구합니다.

필요한 확인 수준에 따라 도구를 분류하는 실용적인 방법은 다음과 같습니다:

  • 읽기만 하는 작업: Trello의 trelloReadList로 리스트를 읽는 것처럼 무언가를 조회하는 작업은 아무것도 변경하지 않습니다. AI 앱이 어떤 도구가 실행되었고 무엇을 조회했는지 보여 준다면, 이러한 호출은 미리 묻지 않고 실행해도 됩니다.
  • 되돌릴 수 있는 작업: Gmail의 create_draft로 이메일 초안을 만들거나 Trello 카드를 추가하는 것은 되돌릴 수 있는 변경입니다. 호출이 실행되기 전에 입력값을 확인하세요.
  • 되돌릴 수 없는 작업: Gmail의 send_message로 이메일을 보내거나, 레코드를 삭제하거나, 결제 또는 민감한 데이터와 관련된 작업은 되돌릴 수 없습니다. 이러한 작업에는 매번 명시적으로 권한을 부여하세요.

Perplexity에서 MCP 도구 사용하기

Perplexity는 양방향으로 MCP 도구를 지원합니다. 연결한 MCP 서버의 도구를 사용할 수 있고, 자체 도구를 다른 AI 앱에 제공하기도 합니다.

  • Perplexity에 MCP 서버 연결하기: Pro, Max, Enterprise 요금제에서는 MCP 서버가 있는 모든 외부 도구나 데이터 소스에 Perplexity를 연결하고, 이를 답변과 Perplexity Computer 에이전트 워크플로우에서 사용할 수 있습니다. Mac 앱에서는 사용자의 컴퓨터에서 실행되는 MCP 서버도 연결할 수 있습니다
  • 다른 AI 앱에서 Perplexity의 도구 사용하기: Perplexity의 MCP 서버는 Claude Code처럼 원격 MCP 서버를 지원하는 모든 AI 앱에 네 가지 도구(perplexity_search, perplexity_ask, perplexity_research, perplexity_reason)를 제공합니다. 별도의 서버를 사용하면 다른 AI 앱이 여러 단계로 이루어진 작업을 Perplexity Computer에 맡길 수도 있습니다.

MCP 도구 FAQ

MCP는 단순한 도구 호출에 불과한가요?

아니요, MCP는 단순한 도구 호출이 아닙니다. 도구 호출은 모델이 도구를 요청하는 방식이고, MCP는 AI 앱이 도구를 찾고 각 호출을 해당 도구를 실행하는 서버로 전달하는 방식입니다.

도구 호출(함수 호출이라고도 함)은 작업에서 AI 모델이 맡는 부분입니다. 모델은 도구 목록을 보고 그중 하나를 실행해 달라는 요청으로 응답합니다. 도구 호출만으로는 각 AI 앱이 모든 도구를 직접 정의하고 실행해야 합니다.

MCP를 사용하면 도구를 서버에 둘 수 있으므로, MCP를 지원하는 AI 앱이라면 어떤 앱이든 해당 도구를 모델에 제공하고 모델의 요청을 올바른 서버로 보낼 수 있습니다.

MCP가 API를 대체할까요?

아니요, MCP는 API를 대체하지 않습니다. MCP와 API는 함께 작동하기 때문입니다. MCP 도구는 기존 API 위에 구축되는 경우가 많으며, 모델이 도구를 호출하면 일반적으로 MCP 서버가 API 요청을 보냅니다.

MCP 도구를 지원하는 AI 앱은 무엇인가요?

MCP 도구는 Claude, ChatGPT, Perplexity 같은 AI 어시스턴트와 Visual Studio Code, Cursor 같은 개발 도구에서 작동합니다. MCP 문서에는 이러한 앱이 명시되어 있으며, 그 밖에도 많은 앱이 지원한다고 나와 있습니다.

AI 모델 자체가 MCP를 지원해야 하나요?

아니요. 프로토콜은 AI 앱이 처리하므로 AI 모델은 MCP를 지원할 필요가 없습니다. AI 앱이 서버에 연결하고, 서버의 도구를 모델에 전달하며, 모델의 도구 요청을 다시 올바른 서버로 보냅니다. 모델은 함수 호출만 지원하면 됩니다.

MCP는 점점 쓸모없어지고 있나요?

아니요, MCP는 여전히 활발히 개발되고 있습니다. 메인테이너들은 2026년 7월에 새 버전의 MCP 사양을 발표했고, 2026년 8월에는 업데이트된 로드맵을 공개했습니다. 이 로드맵에는 대화의 범위가 좁혀짐에 따라 서버가 도구를 점진적으로 공개할 수 있도록 하는 작업이 포함되어 있습니다.