Next.js 앱에 WebMCP를 추가하는 방법

AI 에이전트는 웹 앱을 이해하는 데 종종 어려움을 겪습니다. DOM을 스크래핑하여 버튼의 기능을 추측하곤 하는데, 이는 오류와 환각(hallucination) 현상으로 이어집니다.

WebMCP는 이 문제를 해결합니다. WebMCP는 브라우저에 modelContext API를 추가하는 W3C 표준입니다. 추측하는 대신, Next.js 앱이 에이전트에게 실행 가능한 함수가 무엇인지 정확하게 알려줍니다.

WebMCP vs Anthropic MCP

Anthropic MCP는 서버에서 실행됩니다. JSON-RPC를 사용하여 데이터베이스나 API에 연결하며, 브라우저 외부에서 동작합니다.

WebMCP는 브라우저 탭 내에서 실행됩니다. 도구를 로컬에 등록하며, 사용자의 기존 세션을 활용합니다. 별도의 인증이나 백엔드가 필요하지 않습니다.

두 기술은 함께 작동할 수 있습니다. 백엔드 작업에는 MCP를, 프론트엔드 상호작용에는 WebMCP를 사용할 수 있습니다.

도구를 노출하는 두 가지 방법:

  • HTML Forms: 폼에 toolnametooldescription 속성을 추가합니다. 에이전트는 JavaScript 없이도 도구와 파라미터를 확인할 수 있습니다. 검색 및 필터 기능에 사용하세요.

  • JavaScript: 동적 로직을 위해 navigator.modelContext API를 사용합니다. 이는 여러 단계로 이루어진 흐름(multi-step flows)에 가장 적합합니다.

Next.js에서의 구현

  1. 브라우저 지원을 위한 폴리필(polyfill)을 설치합니다: npm install @mcp-b/global @mcp-b/react-webmcp

  2. 레이아웃에서 폴리필을 초기화하기 위해 WebMCPProvider를 생성합니다.

  3. 클라이언트 컴포넌트에서 useWebMCP 훅을 사용합니다. 이 훅은 도구 등록 및 정리를 자동으로 처리합니다.

예시 도구 설정:

useWebMCP({
  name: 'searchProducts',
  description: 'Search the product catalog.',
  inputSchema: z.object({
    query: z.string(),
    category: z.string().optional(),
  }),
  execute: async ({ query, category }) => {
    const res = await fetch(`/api/products?q=${query}`);
    return res.json();
  },
});

권장 사항

  • HTTPS를 사용하세요. 프로덕션 환경에서 WebMCP는 보안 연결이 필요합니다.
  • 도구 개수를 적게 유지하세요. 도구가 너무 많으면 AI 컨텍스트가 비대해지고 추론 속도가 느려집니다. 페이지당 도구 수를 50개 미만으로 유지하세요.
  • 상세한 설명을 제공하세요. 에이전트는 도구를 언제 사용해야 할지 이해하기 위해 이 문자열에 의존합니다.
  • 서비스 레이어를 사용하세요. 도구 핸들러 내부에서 React 상태(state)에 의존하지 마세요. 오래된 데이터(stale data)를 방지하려면 일반 함수를 사용하세요.

테스트 방법

Chrome 146 이상 버전을 사용하세요. chrome://flags에서 WebMCP 플래그를 활성화합니다. AI 에이전트 없이 도구를 테스트하려면 Model Context Tool Inspector 확장을 사용하세요.

WebMCP는 에이전트 기반 웹 브라우징의 미래입니다. 브라우저에서 기본적으로 지원하게 될 때를 대비해 지금 바로 구현을 시작하세요.

Source: https://dev.to/webtoolshub/how-to-add-webmcp-to-your-nextjs-app-complete-2026-guide-pbp