Skip to main content

The Fundamental Difference

BAP and WebMCP solve different problems at different layers of the AI-browser interaction stack.

BAP: Universal Model

The agent controls the browser directly. Works on any website through accessibility tree inspection, semantic selectors, and browser automation. No site changes required.

WebMCP: Cooperative Model

The website exposes tools to agents. Requires the site author to annotate forms or register tools via JavaScript. The agent discovers only what the site chooses to expose.

Comparison

DimensionBAPWebMCP
Who actsAgent controls the browserWebsite provides tools; agent calls them
Site cooperationNot requiredRequired
CoverageEvery websiteOnly sites that implement WebMCP
Interaction modelBrowser automation (observe, click, fill, extract)Function call (invoke a declared tool)
Available todayYes (npm, PyPI)Chrome 146 Canary (behind experimental flag)
Browser supportChromium, Firefox, WebKitChrome only (no other browsers announced)
PerformanceFusion operations cut roundtrips; response tiers minimize payloadsSingle function call per tool, no DOM traversal overhead
CapabilitiesFull browser control (navigation, forms, screenshots, storage, multi-tab)Scoped to declared tools only
Developer effortInstall one packagePer-site HTML/JS annotation
EcosystemTypeScript SDK, Python SDK, MCP bridge, CLI (26 commands), 13 platform skill installerW3C Community Group spec, Chrome implementation in progress

Complementary, Not Competing

These technologies address different parts of the problem:
AspectBAPWebMCPTogether
Works onAny websiteOpted-in websitesEvery website, with richer tools where available
InteractionBrowser automationTool invocationAgent picks the best approach per-action
AvailableTodayChrome Canary (experimental)BAP bridges WebMCP tools as they appear
Site effortNoneAttributes or JavaScriptIncremental — sites add WebMCP at their pace

The Progressive Strategy

When an agent encounters a page:
1

Check for WebMCP tools

Call discover_tools or use observe({ includeWebMCPTools: true }). If tools are available, prefer them — they represent the site’s intended agent interface with defined semantics.
2

No WebMCP tools?

Fall back to BAP’s universal automation: observe the page, identify interactive elements, and act.
3

Partial coverage?

Use WebMCP tools for declared functionality, BAP automation for everything else.

BAP’s Built-In WebMCP Bridge

BAP includes first-class WebMCP support so agents do not need a separate integration:
BAP FeatureWhat It Does
discovery/discoverProtocol method to scan a page for WebMCP tools
discover_toolsMCP tool for agent-facing discovery
observe({ includeWebMCPTools: true })Fused discovery — get elements and WebMCP tools in one call
Progressive detectionDeclarative scan (HTML attributes) then imperative scan (navigator.modelContext) then graceful fallback
const obs = await client.observe({
  includeInteractiveElements: true,
  includeWebMCPTools: true,
});

// Standard elements available on every page
console.log("Elements:", obs.interactiveElements?.length);

// WebMCP tools available only on cooperative pages
console.log("WebMCP tools:", obs.webmcpTools?.length ?? 0);
Calling discover_tools costs nothing on pages without WebMCP — it returns an empty list with no errors. Call it speculatively on every page. When WebMCP adoption grows, agents automatically benefit.

When to Use Which

PriorityApproachWhy
Max speed on cooperative sitesWebMCP tools (via discover_tools)No DOM traversal, native function call
Universal coverageBAP automation (observe + act)Works on any site today
Fewest tokensBAP fused ops + response tiersFewer roundtrips, smaller payloads
Best of all worldsBAP + includeWebMCPToolsAutomatic fallback — WebMCP when available, BAP otherwise