# 🎛️ Elicitation의 브라우저 콜백 기능으로 커스텀 폼을 만들어 봤습니다 ✨ 표준 JSON Schema만으로는 부족했던 부분을 보완하는 구체적인 구현 기법을 소개합니다 🖥️

> https://bookfactory.kr/c/canva/10376
> 게시판: Canva
> 작성자: admin
> 작성일: 2026-08-22T11:47:36.849Z

---

![見出し画像](https://assets.st-note.com/production/uploads/images/303287866/rectangle_large_type_2_26ea97ece454e55ec491590d9ab6e04e.jpeg?width=1280)

## 🚪 "폼만으로는 부족하다" 그 벽을 넘는 방법, 알고 계신가요?

MCP(Model Context Protocol)를 다루기 시작하면 거의 반드시 부딪히게 되는 벽이 있습니다. 그것이 바로 'Elicitation(엘리시테이션)'이라는 사용자 입력 메커니즘입니다.

서버 측이 클라이언트(앱 측)에 "이 정보를 사용자에게서 물어봐 달라"고 요청할 수 있는, MCP에서도 상당히 중요한 기능입니다. 이름만 들으면 어려워 보이지만, 원리는 매우 간단합니다.

다만, 여기서 많은 사람들이 같은 의문에 부딪히게 됩니다.

JSON Schema로 폼을 만들 수 있다는 건 알겠어. 그런데 OAuth 인증처럼 브라우저를 열어 외부 사이트에서 로그인하게 하는 처리는 어떻게 하는 거야?

입력 폼의 외관을 더 자유롭게 커스터마이징하고 싶은데, 표준 JSON Schema만으로는 표현력이 부족한 것 같다…

이 글에서는 '표준 JSON Schema만으로는 온전히 표현할 수 없는 부분'을 MCP 사양이 어떻게 보완하고 있는지 하나씩 차근차근 풀어봅니다. 끝까지 읽고 나면 Elicitation의 전체 그림이 깔끔하게 정리될 것입니다.

## 🧩Elicitation이란 무엇인지, 우선 기본부터 다시 살펴보겠습니다.

### 📮 서버가 사용자에게 물어보기 위한 구조

Elicitation이란, MCP 서버가 MCP 클라이언트를 통해 사용자에게 추가 정보를 요청하기 위한 표준화된 메커니즘입니다.

예를 들어, 어떤 도구를 실행하려고 할 때 '필요한 파라미터가 부족하다'는 상황이 발생했다고 가정해 보겠습니다. 기존 방식이었다면 도구가 오류를 반환하고 그대로 종료됐을지도 모릅니다. 하지만 Elicitation이 있다면 서버는 처리를 일시 중단하고 클라이언트에 "사용자에게 이 항목을 확인해 주세요"라는 요청을 보낼 수 있습니다.

사용자가 응답(또는 거부)하면 그 결과를 받아 서버 측 처리가 재개됩니다. 이를 통해 대화 도중 부족한 정보를 보완해 가며 진행하는 보다 자연스러운 워크플로를 실현할 수 있습니다.

### 🔀 사실 Elicitation에는 '두 가지 모드'가 있다

**출처:** [note 원문](https://note.com/mcpmcp/n/n3babcc37663b)

*번역: Gemma 3(.44) 초벌 + 교정 7청크*

[원문 보기](https://note.com/mcpmcp/n/n3babcc37663b) | 출처: note.com