MCP 도구 vs 리소스 vs 프롬프트: 각각 누가 제어하나요?

MCP 도구는 모델이 호출하고, 리소스는 앱이 첨부하며, 프롬프트는 사용자가 고릅니다. 각각의 용도와 고르는 방법을 정리합니다.

읽는 시간 5분Sume
전체 글

MCP 도구는 모델이 호출 여부를 정하는 함수이고, 리소스는 애플리케이션이 컨텍스트로 첨부하는 읽기 전용 데이터이며, 프롬프트는 사용자가 슬래시 명령어 등으로 고르는 템플릿입니다. 차이는 누가 제어하느냐, 즉 모델이냐 애플리케이션이냐 사용자냐에 있습니다. 서버는 셋 중 무엇을 지원하는지 선언하며, 클라이언트는 서버가 선언한 것만 쓸 수 있습니다.

정의는 MCP 명세(2025-11-25 개정판)의 서버 개요, 도구, 리소스, 프롬프트 페이지와 MCP의 MCP 서버 이해하기 가이드에서 가져왔으며, 2026-09-28에 확인했습니다. Sume 쪽 내용은 MCP 도구와 게이트 페이지와 현재 서버 코드를 바탕으로 합니다. MCP가 처음이라면 MCP 서버란 무엇인가요?부터 읽어 보세요.

MCP 도구, 리소스, 프롬프트는 무엇이 다른가요?

명세는 이를 제어 계층으로 요약하며, 프리미티브마다 고유한 프로토콜 메서드가 있습니다.

MCP 서버 개요(2025-11-25)와 MCP 서버 이해하기 기준, 2026-09-28 확인.
프리미티브제어 주체설명예시메서드
도구모델작업을 수행하도록 LLM에 노출된 함수API POST 요청, 파일 쓰기, 항공편 검색tools/list, tools/call
리소스애플리케이션클라이언트가 첨부하고 관리하는 컨텍스트 데이터파일 내용, git 기록, 캘린더resources/list, resources/templates/list, resources/read
프롬프트사용자사용자가 선택해 호출하는 대화형 템플릿슬래시 명령어, 메뉴 옵션, "Plan a vacation"prompts/list, prompts/get

MCP 리소스란 무엇인가요?

서버가 컨텍스트로 공유하는 데이터입니다. 파일 내용, 데이터베이스 스키마, API 문서 등이 여기에 해당합니다. 리소스마다 file:///path/to/document.md 같은 고유 URI가 있고, 리소스는 자신의 MIME 타입을 선언합니다. 서버는 calendar://events/2024 같은 고정 리소스를 나열하거나, weather://forecast/{city}/{date}처럼 파라미터가 들어간 URI인 리소스 템플릿을 공개할 수 있습니다. 읽은 내용을 어떻게 쓸지는 애플리케이션이 정합니다. 관련 부분만 고르거나, 임베딩으로 검색하거나, 전부 모델에 넘길 수 있습니다.

도구로 만들어야 하나요, 리소스로 만들어야 하나요?

누가 실행을 시작해야 하는지, 그리고 무언가를 바꾸는지 따져 보세요. 작업 도중에 모델이 스스로 가져오거나 행동해야 한다면 도구로 만드세요. 도구는 데이터베이스에 쓰거나, 외부 API를 호출하거나, 파일을 수정할 수 있으며, 명세는 도구 호출을 거부할 수 있는 사람이 루프 안에 있기를 바랍니다. 앱이나 사용자가 포함하기로 고르는 컨텍스트이고 읽어도 아무것도 바뀌지 않는다면 리소스로 만드세요.

서버 하나가 셋을 모두 제공할 수도 있습니다. MCP 아키텍처 가이드는 데이터베이스 조회용 도구, 스키마를 담은 리소스, 도구 사용을 위한 퓨샷(few-shot) 예시가 담긴 프롬프트를 갖춘 데이터베이스 서버를 예로 듭니다.

도구 대신 프롬프트를 써야 할 때는 언제인가요?

사람이 워크플로를 시작해야 할 때입니다. 프롬프트는 사용자가 제어하며 명시적으로 호출해야 합니다. 클라이언트는 보통 프롬프트를 /plan-vacation 같은 슬래시 명령어, 명령 팔레트, 전용 버튼으로 제공합니다. 프롬프트는 사용자가 넣은 인수에 맞춰 구성된 구조화된 메시지와 지시를 모델에 전달하며, 서버의 도구와 리소스를 참조할 수 있습니다. 반면 도구는 모델이 자동으로 찾아 호출할 수 있습니다.

클라이언트는 서버가 무엇을 제공하는지 어떻게 아나요?

서버가 선언하는 기능(capabilities)으로 압니다. 명세에 따르면 도구, 리소스, 프롬프트를 지원하는 서버는 그 기능을 반드시 선언해야 하며, 명세의 수명 주기 페이지는 양쪽이 연결할 때 협상한 기능만 써야 한다고 말합니다. 예를 들어 MCP Inspector 웹 클라이언트는 서버가 알린 기능에 해당하는 Tools, Resources, Prompts 탭만 보여 줍니다. 클라이언트 지원 범위도 다릅니다. Cursor 문서는 도구, 프롬프트, 리소스를 지원한다고 적고 있지만, Android Studio 문서는 자사 MCP 연동이 MCP 리소스도 프롬프트 템플릿도 지원하지 않는다고 설명합니다.

Sume MCP 서버는 무엇을 노출하나요?

도구만 노출합니다. 현재 코드에서 Sume 호스팅 서버는 클라이언트가 연결할 때 tools 기능만 선언하며, resources/list나 prompts/list 같은 다른 요청에는 JSON-RPC 오류 -32601(메서드를 찾을 수 없음)을 반환합니다. 그래서 클라이언트의 리소스·프롬프트 선택기에는 Sume에 대해 보여 줄 것이 없습니다.

이 도구들은 jobs_list 같은 읽기 도구부터 generate_image 같은 유료 생성 도구까지 선별된 Sume API 기능을 감싸며, 언제 호출할지는 모델이 정합니다. 탐색조차 도구로 합니다. tools_list와 tools_schema가 세션에서 무엇을 호출할 수 있는지 보여 줍니다. Sume MCP 도구 목록이 이 도구들을 묶어 정리하고, 에이전트 스킬 vs MCP가 노하우 쪽을 다룹니다. Sume 기초 페이지는 호스팅 MCP가 여전히 동작하지만 현재 주 경로는 아니라고 설명합니다.

출처

관련 글

개발자 카테고리의 다른 글

개발자 글 전체 보기

작성자 Sume