What is ABP?
ABP is a protocol for exposing browser capabilities to AI agents through a standardized API. Instead of agents manipulating UI elements (clicking buttons, filling forms), apps expose a programmatic interface that agents call directly. Traditional automation:Core Concepts
1. Capabilities
A capability is a discrete browser feature exposed through ABP. Examples:convert.markdownToHtml— Convert markdown to HTMLrender.canvas— Render graphics on a browser canvasai.summarize— Summarize text using browser AI APIsauth.getUser— Get current user info from an authenticated sessionexport.pdf— Generate PDF from HTML
- Name (dot-notation namespace)
- Input schema (JSON Schema defining parameters)
- Output schema (JSON Schema defining return data)
- Availability (can it be used right now?)
- Requirements (what conditions must be met)
2. Sessions
A session is a connection between an agent and an ABP app. Sessions have a lifecycle:- Protocol version
- Available capabilities
- Supported features (notifications, progress, elicitation)
3. Manifest
A manifest is a JSON file that describes the app and its capabilities. It’s used for discovery — agents can check if an app supports ABP and what it offers before launching a browser.4. Transport
The transport is how messages flow between agent and app. ABP supports:- Puppeteer/Playwright — Browser automation via
page.evaluate() - postMessage — Iframe embedding
- WebSocket — Remote connections
How It Works
The ABP Interface
Every ABP-compliant app exposes awindow.abp object with this interface:
Capabilities
Capability Definition
Calling Capabilities
Session Lifecycle
Initialize
Shutdown
Message Flow
ABP supports bidirectional communication:Agent to App
initialize()— Start sessioncall()— Execute capabilitycancel()— Cancel long operationshutdown()— End session- Elicitation responses
App to Agent
- Notifications — One-way updates (state changed, capabilities changed)
- Progress — Progress updates for long operations
- Elicitation — Request input from agent/user
Example: Progress Reporting
Example: Elicitation
Discovery
Before launching a browser, agents can check if an app supports ABP:1
Fetch HTML Head
2
Parse Manifest Link
3
Fetch Manifest
Transport Options
Puppeteer/Playwright
Most common for AI agent integration:Most capabilities work in headless mode. Some capabilities require headful mode (
headless: false) for full access (authenticated sessions, GPU rendering, etc.).postMessage (Iframe Embedding)
For embedding ABP apps in other web pages:WebSocket (Remote Connections)
For remote ABP apps:Next Steps
Common Pitfalls
Critical mistakes to avoid — read before implementing
Conformance Requirements
Minimum requirements for compliance
Building ABP Apps
Step-by-step guide to building an ABP app
MCP Bridge Quick Start
Get started with the MCP Bridge
API Reference
Complete API specification
Examples & Tutorials
Working code examples