WebMCP

WebMCP는 웹페이지가 브라우저의 AI 에이전트에 구조화된 도구를 제공하게 합니다. MCP와의 차이, Chrome 지원 범위, 보안 위험, 기다려야 할 상황을 살펴봅니다.

이 페이지의 근거 신호 1개

WebMCP는 열려 있는 웹페이지가 AI 에이전트에 구조화된 도구를 제공할 수 있게 하는 실험적 브라우저 API입니다. 범위가 제한된 페이지 작업에 유용하며 웹에서의 발견이나 순위 결정용은 아닙니다. 2026년 7월 17일 기준 Community Group 초안이며 Chrome 149 오리진 트라이얼 단계입니다. 현재 Chrome 예제는 document.modelContext를 사용하고, navigator.modelContext는 Chrome 150에서 지원 중단 예정으로 지정됩니다.

요약 — WebMCP는 document.modelContext를 통해 페이지 소유의 도구를 활성 브라우징 컨텍스트의 에이전트에 제공합니다. 명령형 API는 이름, 설명, JSON Schema 입력, 주석, 비동기 콜백을 등록합니다. 도구는 상태에 따라 달라질 수 있으며 AbortSignal로 등록을 해제할 수 있습니다. Chrome은 선언형 폼 계층도 문서화하지만, 2026년 7월 10일 Community Group 초안에서는 해당 섹션이 여전히 TODO로 표시되어 있습니다. 이 기능은 Chrome 149 오리진 트라이얼 단계이지 안정적인 크로스 브라우저 기본 기능이 아닙니다. SEO 인프라가 아닌 점진적 향상 기능으로 취급하고, 인증된 애플리케이션 인터페이스로서 보안을 적용하세요.

이 주장에 대한 근거 Chrome documents declarative form annotations such as toolname and tooldescription, but the declarative section of the July 10, 2026 Community Group draft is still marked TODO. 범위: secure browser context 신뢰도: 높음 · 검증일: WebMCP Draft Community Group Report

브라우저에서 WebMCP가 작동하는 방식

유용한 WebMCP 수명 주기는 페이지에서 시작해 페이지에서 끝납니다. 페이지는 현재 상태에서 유효한 작업만 등록합니다. 이미 그 브라우징 컨텍스트에서 작동하는 에이전트가 도구를 발견하고 호출하면, 페이지는 일반 애플리케이션 로직을 실행하고 사람이 보는 인터페이스를 업데이트한 뒤 범위가 제한된 결과를 반환합니다. 상태가 바뀌면 더 이상 적용되지 않는 도구를 제거합니다. 이 주장에 대한 근거 The imperative API registers named, described, schema-constrained callbacks and supports state-aware cleanup with AbortSignal plus tool-set change notifications. 범위: Current draft and Chrome experiment; API details may change before stable release. 신뢰도: 높음 · 검증일: WebMCP ModelContext API Chrome: WebMCP Imperative API

WebMCP 도구는 페이지의 실제 상태를 따라야 합니다. 유효한 작업을 등록하고 UI와 같은 로직을 실행하며, 더 이상 사용할 수 없으면 제거하세요. 출처: Patrick Stox — WebMCP

번호가 붙은 다섯 단계가 왼쪽에서 오른쪽으로 이어집니다. 첫째, 페이지가 이름, 설명, 입력 스키마, 콜백을 등록합니다. 둘째, 이미 페이지 컨텍스트에 있는 에이전트가 이를 발견합니다. 셋째, 에이전트가 검증된 구조화 인수로 호출합니다. 넷째, 페이지가 일반 애플리케이션 로직을 재사용하고 화면 인터페이스를 업데이트합니다. 다섯째, 범위가 제한된 결과나 안전한 오류를 반환합니다. 실행 단계에서 갈라지는 분기는 상태 변경이나 탐색 시 AbortSignal로 도구 등록을 해제하고 toolchange를 통해 관찰자에게 알려야 함을 보여줍니다.

© Patrick Stox LLC · CC BY 4.0 ·

이러한 상태 의존적 수명 주기 때문에 WebMCP를 JavaScript 번들의 모든 함수를 정적으로 나열하는 목록으로 만들어서는 안 됩니다. 일반적으로 화면 UI에서 불가능한 작업은 에이전트도 사용할 수 없어야 합니다.

WebMCP와 MCP: 서로 다른 두 런타임 경계

이름은 혼동하기 쉽지만 작동 경계는 다릅니다. WebMCP는 문서의 이벤트 루프와 현재 브라우저 세션 안에 존재합니다. 원격 MCP는 AI 애플리케이션의 통합 경계에 있으며 보통 지속적으로 운영되는 백엔드 서버에 연결됩니다. 이 주장에 대한 근거 WebMCP is designed for tools owned by an active page and its browser context, while remote MCP commonly connects an AI application to a persistent backend server. 범위: Architecture-selection guidance, not a rule that prevents an application from using both technologies. 신뢰도: 높음 · 검증일: Chrome: When to use WebMCP and MCP

WebMCP는 페이지 컨텍스트의 작업을, 원격 MCP는 지속적인 애플리케이션·서버 통합을 담당합니다. 많은 제품이 둘 다 사용할 것입니다. 출처: WebMCP

왼쪽은 WebMCP입니다. 브라우저 에이전트가 열린 웹페이지와 상호작용하며, 페이지는 JavaScript 도구와 현재 화면에 보이는 세션 상태를 소유합니다. 도구가 존재하려면 페이지가 열려 있어야 합니다. 오른쪽은 원격 MCP입니다. AI 애플리케이션이 MCP 클라이언트를 통해 지속적으로 운영되는 MCP 서버에 연결하며, 서버는 브라우저 탭 밖에서도 사용 가능하게 유지될 수 있습니다. 두 방식은 대체 관계가 아니라 상호 보완 관계입니다.

© Patrick Stox LLC · CC BY 4.0 ·

인터페이스존재하는 위치발견되는 시점페이지가 열려 있어야 하나요?가장 적합한 용도
WebMCP활성 브라우저 문서클라이언트가 페이지를 방문한 뒤예현재 UI 상태와 페이지 작업
원격 MCPAI 클라이언트와 MCP 서버클라이언트/서버 설정 또는 탐색을 통해아니요지속적으로 제공되는 도구, 데이터, 백엔드 워크플로
웹/API 엔드포인트애플리케이션 백엔드애플리케이션별 통합을 통해아니요알려진 소비자를 위한 안정적인 프로그래밍 방식 접근
구조화 데이터페이지 마크업페이지 처리 중보통 콘텐츠로 가져옴작업 실행이 아닌 엔터티와 페이지 의미 설명
llms.txt정적 텍스트 파일클라이언트가 요청하기로 선택할 때활성 탭 불필요제안된 콘텐츠 안내 방식이며 호출 가능한 도구 인터페이스는 아님
브라우저 자동화UI를 해석하는 에이전트/컨트롤러페이지를 로드하고 살펴본 뒤예명시적인 페이지 도구가 없을 때의 대안

약어를 보고 선택하지 말고 작업을 소유한 주체를 기준으로 선택하세요. 현재 DOM, 선택 영역, 장바구니 또는 UI 상태가 필요한 작업이라면 WebMCP가 적합할 수 있습니다. 백그라운드에서, 여러 사이트에 걸쳐, 또는 열린 탭 없이 실행해야 한다면 API나 원격 MCP를 사용하세요.

명령형 API

명령형 API는 document.modelContext.registerTool()로 도구를 등록합니다. 도구에는 고유한 이름, 설명, JSON Schema 입력, execute 콜백, 선택적 주석이 포함됩니다. Chrome은 getTools(), 테스트용 executeTool(), toolchange 이벤트도 문서화합니다. 이 주장에 대한 근거 Current Chrome documentation uses document.modelContext and says navigator.modelContext is deprecated beginning in Chrome 150. 범위: Chrome implementation guidance checked July 17, 2026; version and API-name claims expire quickly. 신뢰도: 높음 · 검증일: Chrome: WebMCP Imperative API

다음 설명용 후보 예제는 향후 스키마 검증기 파일럿의 예정된 형태를 보여줍니다. 이 사이트에서 실행 중인 것은 아니며, 안정 버전이 출시되기 전에 API가 바뀔 수 있습니다.

if (document.modelContext) {
  const registration = new AbortController();

  await document.modelContext.registerTool({
    name: 'validate_schema',
    description: 'Validate pasted JSON-LD and return bounded issues.',
    inputSchema: {
      type: 'object',
      properties: {
        markup: {
          type: 'string',
          description: 'JSON-LD markup to validate.',
          maxLength: 50000
        }
      },
      required: ['markup'],
      additionalProperties: false
    },
    annotations: {
      readOnlyHint: true,
      untrustedContentHint: true
    },
    execute: async ({ markup }) => {
      const result = await validateWithTheSameEngineAsTheUI(markup);
      renderResultInTheVisibleUI(result);
      return minimizeValidationResult(result);
    }
  }, { signal: registration.signal });

  // When this page state no longer supports validation:
  // registration.abort();
}

중요한 구조는 래퍼 자체가 아닙니다. 콜백이 화면 UI와 같은 검증기를 호출하고, 서버 측 제한과 권한 부여가 계속 적용되며, 응답을 의도적으로 최소화한다는 점입니다. 기능 감지를 사용하면 지원하지 않는 브라우저에서도 사람의 전체 워크플로를 유지할 수 있습니다.

오래된 navigator.modelContext 예제가 아니라 document.modelContext를 사용하세요. Chrome은 전자를 Chrome 150부터 지원 중단 예정으로 지정합니다. 아직 실험적 기능이므로 이 권고에는 날짜를 명시하세요.

이 주장에 대한 근거 Current Chrome documentation uses document.modelContext; navigator.modelContext is deprecated in Chrome 150. 범위: browser document 신뢰도: 높음 · 검증일: WebMCP Imperative API

선언형 API에는 표준과의 불일치가 있음

Chrome은 일반 폼에 toolname, tooldescription, toolparamdescription 같은 속성을 추가하는 선언형 접근법을 문서화합니다. 선택적인 toolautosubmit도 설명하며, 이를 사용하지 않으면 사용자가 Submit(제출)을 클릭합니다. SubmitEvent.agentInvoked는 에이전트가 시작한 제출을 식별합니다. 이 주장에 대한 근거 Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. 범위: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. 신뢰도: 높음 · 검증일: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

그러나 7월 10일 Community Group Report는 선언형 WebMCP 섹션을 “entirely a TODO” (번역) 「전체가 아직 작성할 내용」라고 표현하며, 폼을 JSON Schema로 변환하는 알고리즘을 정의하지 않은 상태로 둡니다. Chrome의 실험이 실재하지 않는다는 뜻은 아닙니다. 구현 문서가 규범적 초안보다 앞서 있다는 뜻입니다. 선언형 마크업은 확정된 크로스 브라우저 HTML이 아니라 실험적인 Chrome 기능으로 취급하세요.

이 주장에 대한 근거 Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. 범위: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. 신뢰도: 높음 · 검증일: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

현재로서는 일반적인 시맨틱 폼이 지속 가능한 기반입니다. 실험적인 주석 계층은 이를 보완해야 하며 레이블, 검증, 접근성, 확인 절차, 서버 측 권한 부여를 대체해서는 안 됩니다.

도구 발견, 수명 주기, 교차 출처 경계

현재 API에는 명시적으로 설계할 가치가 있는 경계가 몇 가지 있습니다.

  • 브라우징 컨텍스트: Chrome 실험에는 브라우저 컨텍스트가 필요합니다. 클라이언트가 사이트를 방문한 뒤에야 사이트의 도구를 발견합니다.
  • 동적 가용성: 유효할 때 도구를 등록하고 상태나 탐색으로 유효하지 않게 되면 등록을 중단하세요. 관찰자는 toolchange를 수신할 수 있습니다.
  • 기본값은 동일 출처: tools Permissions Policy의 기본값은 'self'입니다. 교차 출처 iframe에는 allow="tools" 같은 명시적 위임이 필요합니다.
  • 교차 출처에서는 양쪽 동의: 도구는 exposedTo로 허용할 보안 출처를 나열할 수 있으며, 호출자는 fromOrigins로 지정한 출처의 도구를 요청합니다. 한쪽의 동의만으로는 충분하지 않습니다.
  • 점진적 향상: WebMCP가 지원되지 않거나 비활성화되어도 일반 페이지를 완전히 사용할 수 있어야 합니다.
이 주장에 대한 근거 WebMCP tool exposure is origin-isolated and controlled by the tools Permissions Policy; cross-origin iframes require explicit delegation. 범위: browser document 신뢰도: 높음 · 검증일: WebMCP Imperative API

이는 유용한 플랫폼 제어 수단이지만 위험한 애플리케이션 작업을 안전하게 바꿔 주지는 않습니다.

보안: 브라우저 세션이 위험의 크기를 높임

브라우저 에이전트는 사용자의 인증된 세션 안에서 작동할 수 있습니다. 현재 장바구니, 계정, 작업 공간에 접근할 수 있다는 점이 장점인 동시에 위험입니다. Chrome과 초안은 프롬프트 인젝션, 오해를 유도하는 도구 메타데이터, 오염된 도구 출력, 지나치게 넓은 매개변수, 개인정보 유출, 교차 출처 노출, 로그인 권한 악용을 다룹니다. 이 주장에 대한 근거 WebMCP tool hints can communicate read-only and untrusted-output intent, but they do not eliminate prompt injection, misleading metadata, privacy leakage, cross-origin risk, or misuse of authenticated browser authority. 범위: Threat-model and defensive guidance; application authorization and confirmation remain implementation responsibilities. 신뢰도: 높음 · 검증일: WebMCP security and privacy considerations Chrome: WebMCP tool security Chrome: Agent security considerations

모든 도구를 특이한 호출자를 상대하는 공개 애플리케이션 엔드포인트로 취급하세요.

  1. 도구의 범위를 좁게 유지하세요. 하나의 작업, 명시적 입력, 엄격한 열거형과 길이 제한을 사용하고 숨겨진 “무엇이든 실행” 매개변수를 두지 마세요.
  2. 애플리케이션 로직에서 권한을 강제하세요. 에이전트는 로그인한 사용자보다 더 큰 권한을 얻지 않으며 힌트는 권한이 아닙니다.
  3. 읽기와 쓰기를 분리하세요. readOnlyHint와 untrustedContentHint는 위험을 전달할 뿐 강제하지 않습니다.
  4. 결과를 수반하는 작업에는 눈에 보이는 확인을 요구하세요. 구매, 제출, 삭제, 메시지, 계정 변경에는 사람이 이해할 수 있는 확인 지점이 필요합니다.
  5. 출력을 최소화하세요. 작업에 필요한 것만 반환하고 세션 데이터, 원시 헤더, 비밀 정보, 관련 없는 기록을 노출하지 마세요.
  6. 출력을 신뢰할 수 없는 것으로 취급하세요. 도구가 반환한 문자열이 이후 모델 추론의 입력이 될 수 있습니다. 지시나 권한을 몰래 끼워 넣지 못하게 하세요.
  7. 경계를 기록하세요. 비밀 정보를 남기지 않으면서 도구, 입력 유형, 권한 결정, 확인, 결과 유형, 오류, 출처, 수명 주기를 기록하세요.

안전한 질문은 “에이전트가 이것을 호출할 수 있는가?”가 아닙니다. “지시를 오해하고 신뢰할 수 없는 텍스트를 전달할 수 있는 호출자에게 이것을 검토된 엔드포인트로 공개할 것인가?”입니다.

계약과 에이전트 동작은 별도로 테스트

Chrome의 평가 지침은 결정론적 제품 테스트와 확률적 에이전트 테스트를 구분합니다. 이 주장에 대한 근거 WebMCP testing should combine deterministic contract and UI-state tests with probabilistic evaluation of agent tool selection and use. 범위: Chrome's evaluation guidance; teams must define product-specific tasks, models, risks, and thresholds. 신뢰도: 높음 · 검증일: Chrome: Evals for WebMCP 둘 다 중요합니다.

결정론적 테스트는 등록, 스키마에 따른 거부, 유효하거나 유효하지 않은 입력, 권한 부여, 속도 제한, 부수 효과, 오류 형식, 출력 최소화, UI와의 일치, 등록 해제 동작, 미지원 브라우저의 대체 동작을 검증해야 합니다.

확률적 평가는 대표적인 에이전트가 올바른 도구를 발견하고, 관련 없는 도구를 피하고, 정확한 매개변수를 선택하며, 필요할 때 명확화를 요청하고, 확인 절차를 지키고, 성공 후 멈추고, 공격적인 설명이나 출력에 저항하는지 측정해야 합니다.

데모 프롬프트 하나를 출시 기준으로 삼지 마세요. 콜백 성공은 코드가 실행됐다는 증거이지, 모델이 이를 안정적으로 선택하거나 작업이 안전하다는 증거는 아닙니다.

Cloudflare Browser Run: 유용한 실험 환경이지 자동 활성화 수단은 아님

Cloudflare는 Browser Run의 실험실용 풀에서 WebMCP를 지원한다고 문서화하며, 실험실 세션을 프로덕션 워크로드에 사용하지 말라고 설명합니다. 4월 23일 페이지에는 이전 Chrome 시기의 테스트 이름도 있으므로 이 페이지는 Cloudflare의 현재 제품 제공 내용에 관한 근거로 사용하세요. 최신 WebMCP API 형태를 판단하는 권위 있는 출처로 삼지는 마세요. 이 주장에 대한 근거 Cloudflare Browser Run offers experimental lab sessions that can consume and test page-provided WebMCP tools, but the page still owns tool registration and Cloudflare says lab sessions are not for production workloads. 범위: Cloudflare product documentation last updated April 23, 2026; its example API names lag current Chrome documentation and should not be used as the API authority. 신뢰도: 높음 · 검증일: Cloudflare Browser Run: WebMCP

Cloudflare는 브라우저 세션과 도구를 사용하는 에이전트 경로를 제공할 수 있습니다. 하지만 애플리케이션의 안전한 계약을 추론하거나 직접 만들지 않은 페이지 소유 도구를 등록해 주지는 못합니다.

제안된 patrickstox.com 파일럿: 스키마 검증기

스키마 마크업 검증기는 좋은 향후 파일럿 후보이지 운영 중인 WebMCP 구현이 아닙니다. 이미 범위가 제한된 붙여넣기 입력, 결정론적 로직, 구조화된 문제 목록, 눈에 보이는 결과가 있습니다. 향후 validate_schema 도구는 UI 및 기존 원격 MCP 도구 모음과 같은 검증 엔진을 재사용할 수 있습니다.

파일럿은 브라우저 API가 실험 단계를 벗어난 안정 버전으로 출시되고 새 보안 검토를 통과할 때까지 기다려야 합니다. 첫 버전은 읽기 전용으로, 기능 감지를 적용하고, 입력을 제한하며, 응답을 최소화하고, preview·관리자·소유자 전용 영역에서는 사용할 수 없어야 합니다. 이 사이트는 현재 WebMCP를 지원한다고 주장하지 않습니다.

결정: 구축, 실험, 대기 또는 생략

상황결정
고객 워크플로에 안정적인 브라우저 지원이 필요함기다리고 일반 UI/API를 완전하게 유지
범위가 제한된 읽기 전용 작업이 있고 비공개 실험실을 운영할 수 있음기능 감지를 적용하고 프로덕션 의존성 없이 실험
백그라운드 또는 헤드리스 실행이 필요함API 또는 원격 MCP 사용
페이지가 콘텐츠만 게시함WebMCP 생략. 시맨틱하고 접근성 있는 HTML 개선
쓰기, 구매, 제출, 삭제 또는 개인정보 노출 작업임가볍게 파일럿을 진행하지 않음. 별도 위협 모델과 확인 설계 요구
안정적 구현이 출시되고 모든 계약·보안·일치 테스트를 통과함점진적인 프로덕션 파일럿 검토

전문가 메모 추가

전문가 인용문 고정

새로운 사람인가요? 미등록 프로필을 다음 위치에서 /admin/experts/ → 전문가 인용문 고정 먼저 만드세요.