Panduan WebMCP

WebMCP lets sebuah halaman web expose structured alat untuk sebuah AI agent di browser. Learn bagaimana ini differs dari MCP, apa Chrome mendukung, security risks, dan ketika untuk tunggu.

Pertama kali diterbitkan: 17 Jul 2026 · Terakhir diperbarui: 3 Agu 2026 · Lanjutan
1 sinyal bukti di halaman ini

WebMCP adalah sebuah experimental browser API itu lets sebuah open halaman web offer structured alat untuk sebuah AI agent. ini adalah berguna untuk bounded halaman tindakan, tidak web penemuan atau rankings. sebagai dari July 17, 2026, ini adalah sebuah Community Group draft dan Chrome 149 origin trial; saat ini Chrome contoh gunakan document.modelContext, sementara navigator.modelContext adalah deprecated di Chrome 150.

TL;DR — WebMCP exposes halaman-owned alat dari document.modelContext untuk sebuah agent di active browsing context. imperative API registers sebuah name, deskripsi, JSON Schema input, annotations, dan sebuah async callback; alat dapat menjadi state-dependent dan unregistered dengan sebuah AbortSignal. Chrome documents sebuah declarative form layer too, tetapi July 10, 2026 Community Group draft masih labels -nya declarative bagian TODO. fitur adalah di sebuah Chrome 149 origin trial, tidak sebuah stable cross-browser baseline. Treat ini sebagai progressive enhancement, tidak SEO infrastructure, dan secure ini sebagai sebuah authenticated application surface.

Bukti untuk klaim ini 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. Cakupan: secure browser context Tingkat keyakinan: tinggi · Diverifikasi: WebMCP Draft Community Group Report

Bagaimana WebMCP berfungsi di browser

sebuah berguna WebMCP lifecycle begins dan ends dengan halaman. halaman registers hanya tindakan itu adalah valid di -nya saat ini state; sebuah agent sudah operating di itu browsing context discovers dan invokes satu; halaman executes -nya wajar application logic, memperbarui human-terlihat interface, dan mengembalikan sebuah bounded hasil. Ketika state perubahan, halaman menghapus alat itu Tidak lebih lama apply. Bukti untuk klaim ini The imperative API registers named, described, schema-constrained callbacks and supports state-aware cleanup with AbortSignal plus tool-set change notifications. Cakupan: Current draft and Chrome experiment; API details may change before stable release. Tingkat keyakinan: tinggi · Diverifikasi: WebMCP ModelContext API Chrome: WebMCP Imperative API

WebMCP alat seharusnya ikuti halaman's nyata state: register sebuah valid tindakan, execute yang sama logic sebagai UI, dan hapus ini ketika tindakan adalah Tidak lebih lama tersedia. Sumber: Patrick Stox — WebMCP

Five numbered langkah jalankan left untuk right. pertama, halaman registers sebuah name, deskripsi, input schema, dan callback. kedua, sebuah agent sudah di halaman context discovers ini. ketiga, agent invokes ini dengan validated structured arguments. Fourth, halaman reuses -nya wajar application logic dan memperbarui terlihat interface. Fifth, ini mengembalikan sebuah bounded hasil atau safe error. sebuah branch dari execution menampilkan itu state perubahan atau navigation seharusnya unregister alat dengan AbortSignal dan notify observers melalui toolchange.

© Patrick Stox LLC · CC BY 4.0 ·

ini stateful lifecycle adalah satu alasan WebMCP seharusnya tidak become sebuah static dump dari setiap function di sebuah JavaScript bundle. sebuah alat itu adalah impossible di terlihat UI seharusnya biasanya menjadi tidak tersedia untuk agent too.

WebMCP vs MCP: dua berbeda runtime boundaries

names invite confusion, tetapi operational boundary adalah berbeda. WebMCP lives di sebuah document’s event loop dan saat ini browser session. Remote MCP lives di AI application’s integration boundary dan commonly reaches sebuah persistent backend server. Bukti untuk klaim ini 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. Cakupan: Architecture-selection guidance, not a rule that prevents an application from using both technologies. Tingkat keyakinan: tinggi · Diverifikasi: Chrome: When to use WebMCP and MCP

WebMCP owns halaman-context tindakan; remote MCP owns durable application-untuk-server integrations. banyak products akan gunakan keduanya. Sumber: WebMCP

left lane menampilkan WebMCP: sebuah browser agent interacts dengan sebuah open halaman web, yang owns sebuah JavaScript alat dan saat ini terlihat session state. halaman harus menjadi open untuk itu alat untuk exist. right lane menampilkan remote MCP: sebuah AI application connects melalui sebuah MCP client untuk sebuah persistent MCP server, yang dapat tetap tersedia di luar sebuah browser tab. dua lanes adalah complementary alih-alih replacements.

© Patrick Stox LLC · CC BY 4.0 ·

InterfaceDi mana ini livesKetika ini adalah ditemukanhalaman harus menjadi open?Best fit
WebMCPActive browser documentsetelah client visits halamanYasaat ini UI state dan halaman tindakan
Remote MCPAI client dan sebuah MCP servermelalui client/server configuration atau penemuanTidakPersistent alat, data, dan backend workflows
Web/API endpointApplication backendmelalui application-spesifik integrationTidakStable programmatic access untuk known consumers
data terstrukturhalaman markupselama halaman processingbiasanya fetched sebagai kontenDescribing entities dan halaman meaning, tidak executing tindakan
llms.txtStatic text fileKetika sebuah client chooses untuk permintaan iniTidak active tab diperlukanProposed konten guidance; tidak sebuah callable alat surface
browser automationAgent/controller interpreting UIsetelah memuat dan inspecting halamanYaFallback di mana Tidak jelas halaman alat ada

melakukan tidak choose dari acronym. Choose dari owner dari tindakan. jika tindakan perlu saat ini DOM, selection, cart, atau UI state, WebMCP dapat fit. jika ini harus jalankan di background, di seluruh banyak situs, atau tanpa sebuah open tab, gunakan API atau remote MCP.

imperative API

imperative API registers sebuah alat melalui document.modelContext.registerTool(). alat mencakup sebuah unique name, deskripsi, JSON Schema input, sebuah execute callback, dan opsional annotations. Chrome juga documents getTools(), executeTool() untuk testing, dan sebuah toolchange event. Bukti untuk klaim ini Current Chrome documentation uses document.modelContext and says navigator.modelContext is deprecated beginning in Chrome 150. Cakupan: Chrome implementation guidance checked July 17, 2026; version and API-name claims expire quickly. Tingkat keyakinan: tinggi · Diverifikasi: Chrome: WebMCP Imperative API

ini illustrative candidate menampilkan yang dimaksud shape untuk sebuah future Schema Validator pilot. ini adalah tidak berjalan pada ini situs, dan API dapat perubahan sebelum sebuah stable rilis:

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();
}

penting architecture adalah tidak wrapper. ini adalah itu callback panggilan sama validator sebagai terlihat UI, server-side limits dan authorization masih apply, dan respons adalah dengan sengaja minimized. fitur detection preserves penuh human workflow di unsupported browser.

gunakan document.modelContext, tidak stale contoh dibangun sekitar navigator.modelContext; Chrome marks latter deprecated beginning di Chrome 150. Date itu advice karena fitur tetap experimental.

Bukti untuk klaim ini Current Chrome documentation uses document.modelContext; navigator.modelContext is deprecated in Chrome 150. Cakupan: browser document Tingkat keyakinan: tinggi · Diverifikasi: WebMCP Imperative API

declarative API memiliki sebuah standards mismatch

Chrome documents sebuah declarative approach itu annotates ordinary forms dengan attributes such sebagai toolname, tooldescription, dan toolparamdescription. ini juga documents opsional toolautosubmit; jika tidak, pengguna clicks Submit. SubmitEvent.agentInvoked identifies sebuah agent-triggered submission. Bukti untuk klaim ini Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. Cakupan: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. Tingkat keyakinan: tinggi · Diverifikasi: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

Namun, July 10 Community Group Report says -nya Declarative WebMCP bagian adalah “entirely a TODO” (terjemahan) “entirely sebuah TODO” dan leaves form-untuk-JSON-Schema algorithm tidak terdefinisi. itu tidak berarti Chrome’s experiment adalah imaginary. ini berarti implementation documentation adalah ahead dari normative draft. Treat declarative markup sebagai sebuah experimental Chrome surface, tidak settled cross-browser HTML.

Bukti untuk klaim ini Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. Cakupan: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. Tingkat keyakinan: tinggi · Diverifikasi: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

untuk now, ordinary semantic forms tetap durable base. sebuah experimental annotation layer seharusnya enhance them, tidak pernah replace labels, validation, accessibility, konfirmasi, atau server-side authorization.

alat penemuan, lifecycle, dan cross-origin boundaries

saat ini API memiliki several boundaries worth designing explicitly:

  • Browsing context: Chrome’s experiment memerlukan sebuah browser context. client visits situs sebelum ini discovers situs’s alat.
  • Dynamic availability: register alat ketika mereka adalah valid dan abort mereka registration ketika state atau navigation invalidates them. Observers dapat listen untuk toolchange.
  • sama origin oleh default: tools Permissions Policy defaults untuk 'self'. Cross-origin iframes perlu jelas delegation such sebagai allow="tools".
  • Dua-sided cross-origin consent: sebuah alat dapat gunakan exposedTo untuk list diizinkan secure origins, sementara sebuah caller permintaan alat dari named origins dengan fromOrigins. Satu side opting di adalah tidak cukup.
  • Progressive enhancement: unsupported atau disabled WebMCP harus leave ordinary halaman fully usable.
Bukti untuk klaim ini WebMCP tool exposure is origin-isolated and controlled by the tools Permissions Policy; cross-origin iframes require explicit delegation. Cakupan: browser document Tingkat keyakinan: tinggi · Diverifikasi: WebMCP Imperative API

ini adalah berguna platform controls, tetapi mereka melakukan tidak turn sebuah risky application tindakan ke sebuah safe satu.

Security: browser session raises stakes

sebuah browser agent dapat operate di dalam pengguna’s authenticated session. itu dapat menjadi fitur—access untuk saat ini cart, account, atau workspace—dan danger. Chrome dan draft discuss prompt injection, misleading alat metadata, contaminated alat output, di atas-broad parameters, privacy leakage, cross-origin exposure, dan misuse dari signed-di authority. Bukti untuk klaim ini 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. Cakupan: Threat-model and defensive guidance; application authorization and confirmation remain implementation responsibilities. Tingkat keyakinan: tinggi · Diverifikasi: WebMCP security and privacy considerations Chrome: WebMCP tool security Chrome: Agent security considerations

Treat setiap alat sebagai sebuah publik application endpoint dengan sebuah unusual caller:

  1. pertahankan alat sempit. Satu job, jelas inputs, tight enums dan lengths, Tidak hidden “lakukan apa pun” (terjemahan) “melakukan apa pun” parameter.
  2. Enforce authorization di application logic. agent melakukan tidak gain lebih authority daripada signed-di pengguna, dan sebuah hint adalah tidak permission.
  3. Terpisah membaca dari menulis. readOnlyHint dan untrustedContentHint communicate risk; mereka melakukan tidak enforce ini.
  4. memerlukan terlihat konfirmasi untuk consequences. Purchases, submissions, deletions, messages, dan account perubahan perlu sebuah human-understandable checkpoint.
  5. Minimize output. kembalikan hanya apa task perlu; tidak pernah spill session data, mentah headers, secrets, atau unrelated records.
  6. Treat output sebagai untrusted. sebuah string dikembalikan oleh satu alat dapat become input untuk kemudian model reasoning. melakukan tidak izinkan ini untuk smuggle instructions atau authority.
  7. Log boundary. Record alat, input class, authorization decision, konfirmasi, hasil class, error, origin, dan lifecycle tanpa logging secrets.

safe pertanyaan adalah tidak “Dapat an agent call ini?” (terjemahan) “dapat sebuah agent panggil ini?” ini adalah “Would I expose this as a reviewed endpoint to a caller that can misunderstand instructions and relay untrusted text?” (terjemahan) “akan I expose ini sebagai sebuah reviewed endpoint untuk sebuah caller itu dapat misunderstand instructions dan relay untrusted text?”

Test contracts dan agent perilaku secara terpisah

Chrome’s eval guidance separates deterministic product tests dari probabilistic agent tests. Bukti untuk klaim ini WebMCP testing should combine deterministic contract and UI-state tests with probabilistic evaluation of agent tool selection and use. Cakupan: Chrome's evaluation guidance; teams must define product-specific tasks, models, risks, and thresholds. Tingkat keyakinan: tinggi · Diverifikasi: Chrome: Evals for WebMCP Keduanya penting:

Deterministic tests seharusnya verify registration, schema rejection, valid dan tidak valid inputs, authorization, rate limits, side effects, error shape, output minimization, UI parity, unregister perilaku, dan unsupported-browser fallback.

Probabilistic evals seharusnya mengukur apakah representative agents menemukan right alat, hindari irrelevant alat, choose correct parameters, tanyakan untuk clarification ketika diperlukan, respect confirmations, berhenti setelah success, dan resist adversarial deskripsi atau output.

jangan gunakan satu demo prompt sebagai rilis gate. sebuah successful callback proves code ran; ini melakukan tidak prove itu models select ini reliably atau itu tindakan adalah safe.

Cloudflare browser Jalankan: berguna lab, tidak enablement

Cloudflare documents WebMCP mendukung di browser Jalankan’s experimental lab pool dan says lab sessions seharusnya tidak menjadi digunakan untuk production workloads. -nya April 23 halaman juga berisi older Chrome-era testing names, so gunakan itu halaman sebagai evidence dari Cloudflare’s saat ini product offering—tidak sebagai authority untuk latest WebMCP API shape. Bukti untuk klaim ini 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. Cakupan: 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. Tingkat keyakinan: tinggi · Diverifikasi: Cloudflare Browser Run: WebMCP

Cloudflare dapat menyediakan sebuah browser session dan sebuah agent path itu consumes alat. ini cannot infer safe contract untuk Anda application atau register halaman-owned alat Anda melakukan tidak bangun.

Proposed patrickstox.com pilot: Schema Validator

Schema Markup Validator adalah sebuah baik future pilot candidate, tidak sebuah langsung WebMCP implementation. ini sudah memiliki sebuah bounded pasted input, deterministic logic, structured issues, dan sebuah terlihat hasil. sebuah future validate_schema alat dapat reuse yang sama validation mesin sebagai UI dan existing remote MCP alat suite.

pilot seharusnya tunggu until browser API reaches sebuah stable, non-experimental rilis dan melewati sebuah fresh security review. pertama versi seharusnya menjadi baca-hanya, fitur-detected, input-limited, respons-minimized, dan tidak tersedia pada preview, admin, atau owner-hanya surfaces. ini situs melakukan tidak saat ini claim WebMCP mendukung.

Decision: bangun, experiment, tunggu, atau skip

SituationDecision
Stable browser mendukung adalah diperlukan untuk sebuah customer workflowTunggu dan pertahankan wajar UI/API menyelesaikan
Anda memiliki sebuah bounded baca-hanya tindakan dan dapat jalankan sebuah privat labExperiment, dengan fitur detection dan Tidak production dependency
task perlu background atau headless executiongunakan API atau remote MCP
halaman hanya publishes kontenSkip WebMCP; meningkatkan semantic, accessible HTML
tindakan menulis, purchases, submits, deletes, atau exposes privat datamelakukan tidak pilot casually; memerlukan sebuah terpisah threat model dan konfirmasi design
sebuah stable implementation ships dan semua contract/security/parity tests luluspertimbangkan sebuah progressive production pilot

Tambahkan catatan pakar

Sematkan kutipan pakar

Orang baru? Buat profilnya yang belum diklaim di /admin/experts/ → Sematkan kutipan pakar terlebih dahulu.