| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A protocol that lets AI agents call any browser tool - securely
The Browser Tool Calling Protocol (BTCP) is an open standard that enables AI agents to call tools within the browser through client-defined interfaces. Like MCP, tools are discoverable with schemas for AI awareness - but BTCP tools are defined and executed on the client side, enabling direct access to browser state, DOM, and web applications without server round-trips.
Read the RFC Specification for the complete technical specification, security model, and protocol details
Read About BTCP for a conceptual overview, use cases, and architecture diagrams
MCP users: Run the BTCP-MCP Bridge to call browser tools from any MCP-compatible agent
Browse Browser Tools for ready-to-use tool providers
| Option | Description |
|---|---|
| BTCP Cloud | Managed cloud service - zero setup, instant access to browser tools |
| Self-Hosted Server | Deploy btcp-server-nodejs or btcp-server-python on your infrastructure |
| MCP Compatible | Use BTCP-MCP bridge to integrate with any MCP-compatible AI agent |
| Option | Description |
|---|---|
| SDK (Embedded) | Integrate btcp-client directly into your application for app-level AI assistants |
| Chrome Extension | Install btcp-chrome extension + browse the Tool Marketplace for ready-to-use tools |
BTCP is designed with privacy and security as first-class concerns:
All code is open source under MPL-2.0 - fully auditable and transparent. No hidden behaviors, no proprietary components.
Built-in E2E encryption prevents sensitive information from being exposed to servers or LLMs. Your browser data stays private.
Every tool must declare its required capabilities upfront (network, storage, DOM access, etc.). Users see exactly what each tool can access before granting permission - 100% capability awareness.
┌─────────────────────────────────────────────────────────────────┐ │ Tool "gmail" requests the following capabilities: │ │ │ │ ✓ Network access (mail.google.com) │ │ ✓ Read page content │ │ ✓ Modify page content │ │ │ │ [Allow Once] [Allow Always] [Deny] │ └─────────────────────────────────────────────────────────────────┘
| Repository | Description |
|---|---|
| btcp-rfc | Formal specification, RFC and reference documentation |
| btcp-client | Browser-side executor interface (protocol-only) |
| btcp-client-ses | SES (Secure ECMAScript) sandbox implementation |
| btcp-server-nodejs | Node.js server with SSE command routing |
| btcp-server-python | Python server implementation |
| btcp-mcp | MCP server bridge for calling browser tools |
| btcp-codemode | Run complex workflows in one shot using BTCP sandbox |
| btcp-chrome | Chrome extension for BTCP-enabled browser automation |
| Repository | Description |
|---|---|
| btcp-browser-tools | Collection of common browser tool providers |
| btcp-browser-tool-gmail | Gmail tool provider (read, send, organize emails) |
| btcp-browser-tool-google-docs | Google Docs tool provider (read, edit, create documents) |
| btcp-browser-tool-google-sheets | Google Sheets tool provider (read, write, query spreadsheets) |
| Repository | Description |
|---|---|
| awesome-btcp | Curated list of BTCP tools, implementations, and resources |
AI agents should be able to call browser-side tools with the same discoverability as server-side tools - but with direct access to browser context and client-defined flexibility.
| Aspect | MCP | BTCP |
|---|---|---|
| Tool definition | Server-defined | Client-defined |
| Execution location | Server-side | Browser-side |
| Multi-step operations | O(n) round-trips | O(1) single execution |
| Browser context access | No | Yes |
| Tool discovery | Server exposes schema | Client exposes schema |
They work together: Use MCP for server tools and BTCP for browser tools in the same agent.
BTCP tools are defined by the client (browser) and exposed to AI agents with discoverable schemas:
interface BTCPToolProvider {
namespace: string; // e.g., 'gmail', 'sheets'
getInterface(): ToolInterface; // Schema for AI discovery
getAPI(): Record<string, Function>;
}
interface ToolInterface {
name: string;
version: string;
methods: MethodSchema[]; // AI-readable method definitions
}AI agents can introspect available tools at runtime:
__interfaces // Returns all tool schemas
__getToolInterface('gmail') // Returns specific tool schemaUnlike server-defined tools, BTCP tool providers can be:
BTCP requires a secure sandbox environment that provides:
| Limit | Purpose |
|---|---|
| Execution timeout | Prevent infinite loops and runaway code |
| Operation count | Limit tool API calls per execution |
| Code size | Prevent memory exhaustion |
| Result size | Limit response payload |
The protocol is agnostic to the specific sandbox implementation. Compliant implementations may use:
BTCP is transport-agnostic and supports multiple communication channels:
We welcome issues, pull requests, and design discussion. If you'd like to add support for another browser tool provider, sandbox implementation, or framework integration, open a discussion first so we can align on the design!
BTCP is an open-source protocol released under the MPL-2.0 license. If your application needs AI agents that can call browser-side tools with strong security guarantees, we'd love to have you involved!
The protocol is designed to complement existing standards like MCP and UTCP - use BTCP for browser tools while using other protocols for server-side operations.
| Back | FazBrowse Home | New Git URL |