System Overview
Components
1. Web Application or Chrome Extension (ABP Server)
The ABP server implements the ABP interface and exposes capabilities. It can be either a web application served at an HTTP URL or a Chrome extension loaded from a local directory.Web Application
Responsibilities:- Expose
window.abpwith required methods (initialize,shutdown,call) - Serve an ABP manifest at a discoverable URL
- Validate capability inputs against declared schemas
- Execute capabilities using browser APIs
- Send notifications and progress updates
- Handle elicitation requests from agents
index.html— Contains<link rel="abp-manifest" href="...">abp.json— Manifest describing app and capabilitiesabp-runtime.js— Implementation ofwindow.abp
Chrome Extension
Chrome extensions can also serve as ABP servers, exposing privilegedchrome.* APIs (tabs, scripting, bookmarks, etc.) as capabilities.
Responsibilities:
- Expose
window.abpon an extension page (abp-app.html) - Implement capabilities that wrap
chrome.*APIs - Declare required permissions in extension
manifest.json
manifest.json— Chrome extension manifest (Manifest V3) with permissionsbackground.js— Service worker (minimal, required by Chrome)abp-app.html— ABP entry page (navigated to by bridge)abp-runtime.js— Implementation ofwindow.abpwithchrome.*API calls
Extensions skip HTTP-based manifest discovery. The client launches the browser with
--load-extension, discovers the extension ID from browser targets, and navigates directly to the ABP page. Capability discovery happens entirely at runtime via initialize() and listCapabilities().2. ABP Client (Implementation)
The client is a piece of software that connects to ABP apps on behalf of agents. Client implementations are separate projects from the ABP specification. Responsibilities:- Discover ABP support (fetch HTML, parse manifest link, fetch manifest)
- Launch and manage browser lifecycle
- Initialize ABP sessions
- Call capabilities and handle responses
- Route data efficiently (large outputs to files, not through agent context)
- Handle notifications, progress, and elicitation
- Expose capabilities in a format the agent understands (e.g., MCP tools)
- Python library for ABP
- Rust CLI for ABP
- Language-specific SDKs
3. AI Agent (End User)
The agent is the end user of ABP capabilities. The agent typically has no knowledge of ABP internals — it just sees tools (e.g., MCP tools) that the client provides. Agent’s View:4. Browser
The browser is the runtime environment for ABP apps. ABP requires a headful browser (visible window) for full capability access. Why Headful?- User’s authenticated sessions (cookies, localStorage) are in their profile
- GPU/WebGL/WebGPU need hardware access
- Permission prompts (camera, microphone) need user interaction
- PDF rendering and canvas operations require a full browser environment
- Chrome/Chromium (via Puppeteer)
- Firefox (via Playwright)
- Any modern browser with WebDriver support
Integration Model
ABP uses a contract-and-client architecture, similar to gRPC:
What this means:
- Web developers implement the server side (once)
- Client developers build reusable tools that work with ANY ABP app
- End users just point a client at a URL
Communication Flow
Initialization Flow
Capability Call Flow
Bidirectional Communication
Data Flow
One of the key responsibilities of the client is intelligent data routing.Problem: Context Bloat
If all capability outputs flow through the agent’s context window:- Large PDFs, images, HTML documents consume tokens
- Agent performance degrades
- Context limits are hit quickly
Solution: Smart Routing
The client routes data based on size and type:Routing Rules (MCP Bridge Reference)
The ABP MCP Bridge uses these rules:
See Data Flow & Binary Handling for complete details.
Session Management
Session States
Session Lifecycle
1
Discovery (optional)
- Web apps: Fetch HTML, parse manifest link, fetch manifest, check capabilities
- Chrome extensions: Skip HTTP discovery — launch browser with
--load-extension, discover extension ID from browser targets - Decide whether to proceed
2
Browser Launch
- Client launches browser (headless by default)
- Web apps: Navigates to app URL
- Extensions: Navigates to
chrome-extension://ID/abp-app.html - Waits for page load
3
Session Initialization
- Call
window.abp.initialize() - Negotiate protocol version, features
- Receive capability list
4
Active Session
- Call capabilities via
window.abp.call() - Receive notifications, progress updates
- Handle elicitation requests
5
Session Shutdown
- Call
window.abp.shutdown() - App cleans up resources
- Client closes browser
Multiple Sessions
A single browser can host multiple ABP sessions if apps support it. However, the typical pattern is:- One browser instance per client
- One session at a time
- Clean shutdown before connecting to a different app
Browser Requirements
Headful vs Headless
Many ABP capabilities work in headless mode, which is the default for most client implementations. However, some capabilities require headful mode (a visible browser window):- User sessions (cookies, localStorage) that need the user’s profile
- GPU/WebGL/WebGPU that need hardware access
- Permission prompts that need user interaction
Browser Automation Setup
Puppeteer Example:Client Implementations
Reference: ABP MCP Bridge
The ABP MCP Bridge is a complete reference implementation showing:- Discovery: Fetching manifests, parsing capabilities
- Browser Management: Launching, page handling, cleanup
- Session Management: Initialize, shutdown, state tracking
- Data Flow: Smart routing (large outputs to files)
- Tool Generation: Dynamic MCP tool creation from capabilities
- Event Handling: Notifications, progress, elicitation
- Error Handling: Retries, graceful degradation
Building Custom Clients
If you’re building a client in another language or for a different environment:- Follow the specification: Protocol Overview
- Study the reference: ABP MCP Bridge
- Use the same patterns:
- Discovery before browser launch
- Headful browser mode
- Smart data routing
- Proper error handling
Next Steps
Common Pitfalls
Mistakes that cause silent failures — critical reading
Conformance Requirements
Verify your implementation is compliant
Building ABP Apps
Create your first ABP application
MCP Bridge Quick Start
Get up and running with the MCP Bridge
API Reference
Read the full specification
MCP Bridge Architecture
See the reference implementation details