WebMCP: Teaching Your Website to Talk to AI Agents
개요
WebMCP는 웹사이트가 AI 에이전트와 상호작용하는 방식을 스크린 스크래핑에서 도구 선언으로 전환하는 제안된 웹 표준입니다. 이를 통해 AI 에이전트는 웹사이트의 UI를 추측하는 대신 구조화된 도구를 직접 호출하여 보다 안정적이고 효율적인 상호작용이 가능해집니다.
주요 내용
- 스크래핑에서 선언으로의 전환: 기존 AI 에이전트는 웹사이트의 HTML을 읽고 UI 요소를 추측하며 클릭을 시뮬레이션하는 방식(스크린 스크래핑)으로 작동하여 레이아웃 변경 시 쉽게 깨지는 단점이 있었습니다. WebMCP는 웹사이트가 제공할 수 있는 기능(예: book_table 도구)을 구조화된 형식으로 명확히 선언하고, AI 에이전트는 이 선언된 도구를 직접 호출하도록 합니다.
- WebMCP의 구성 요소:
* Discovery (발견): 웹 페이지가 제공하는 도구(예: checkout, filter_results) 목록을 AI 에이전트가 알 수 있는 표준 방식입니다.
* Schemas (스키마): 각 도구는 입력 및 출력 형식을 JSON Schema로 정의하여 AI 에이전트가 정확한 인자를 전달하고 결과물을 이해할 수 있도록 합니다.
* State (상태): 페이지의 현재 상태에 대한 공유된 이해를 바탕으로 AI 에이전트가 실제로 작동 가능한 요소들을 인지하도록 합니다.
- 동작 방식: 웹 페이지는 JavaScript API를 사용하여 도구를 등록합니다. AI 에이전트는 등록된 도구 목록을 확인하고, 원하는 도구를 호출할 때 스키마에 맞는 인자를 구조화된 JSON 형식으로 전달합니다. 실제 도구의 execute 함수는 웹 페이지 내에서 실행되며, 기존 JavaScript, 상태, 사용자의 로그인 세션을 활용합니다. 결과는 구조화된 답변으로 반환됩니다.
- 개발 현황 및 적용: WebMCP는 현재 Chrome 149 버전부터 실험적 기능(Origin Trial)으로 제공되며, chrome://flags/#enable-webmcp-testing 플래그를 통해 활성화할 수 있습니다. GitHub에는 제안 사항이 공개되어 있으며, Angular는 실험적 지원을 제공하고 있습니다. Google Chrome Labs는 피자 주문, 여행 검색, 레스토랑 예약 등 데모 사이트를 제공하고 있습니다.
- 실제 적용 사례 (Career Copilot): 이 글의 저자는 이력서를 기반으로 실시간 채용 공고를 검색하고, 적합도를 평가하며, 기술 격차를 분석하고, 사용자의 승인을 거쳐 지원서를 준비하는 실험적인 에이전트형 커리어 포털인 "Career Copilot"을 개발했습니다. 이 데모는 13개의 WebMCP 도구를 등록하며, AI 에이전트(ChatGPT 등)가 DOM 스크래핑 없이 선언된 도구를 사용하여 작업을 수행함을 보여줍니다.
- 안전 및 신뢰 모델: WebMCP는 투명성, 동일 출처 정책(Same-origin), 명시적 사용자 확인(Human-in-the-loop), 비신뢰 콘텐츠 표시 등의 메커니즘을 통해 악의적인 페이지가 AI 에이전트를 오용하는 것을 방지합니다. 특히, readOnlyHint와 같은 주석을 통해 에이전트가 안전한 호출과 민감한 호출을 구분하도록 합니다.
- 장점: 구조화된 도구 호출, 사용자의 실제 로그인 세션 활용, 사이트의 제어 유지, UI 변경에 대한 내성, 기존 코드 재사용 용이성, 개방형 표준 방향성.
- 단점: 실험적 기능(Origin Trial), 브라우저 지원 제한(Chrome 우선), 사이트 채택 필요, 잠재적 보안 모델 미성숙, 복잡한 사이트의 경우 리팩토링 필요.
- 향후 전망: 브라우저 간 표준화, AI 에이전트 생태계 확장(ChatGPT 지원 등), 에이전트형 웹의 발전, 원격 MCP와의 결합을 통한 클라이언트-서버 도구 연동, 에이전트 커머스 등으로 확장될 가능성이 있습니다.
시사점
WebMCP는 AI 에이전트가 웹사이트와 상호작용하는 방식을 근본적으로 변화시켜, 더 안전하고 효율적이며 사용자 제어권을 강화하는 미래 웹의 가능성을 제시합니다. 이는 다양한 웹 서비스와 AI 기술의 융합을 촉진할 중요한 전환점이 될 수 있습니다.
댓글
GitHub Discussions