DISCOVER THE FUTURE OF AI AGENTS

OpenTabs

Added Apr 25, 2026
Agent & Tooling
Open Source
TypeScriptNode.jsModel Context ProtocolAI AgentsBrowser AutomationAgent & ToolingAutomation, Workflow & RPAProtocol, API & Integration

A local MCP server that lets AI agents call web apps' internal APIs through authenticated browser sessions, with 100+ plugins covering major SaaS services, three connection modes, and AI-powered auto plugin generation.

OpenTabs is a fully local MCP (Model Context Protocol) server built around the principle "Browser automation clicks buttons. OpenTabs calls APIs." It consists of three components — a Node.js MCP Server, a Chrome Manifest V3 extension, and a Plugin SDK — communicating via JSON-RPC 2.0 over WebSocket. It reuses the user's existing authenticated browser sessions to directly call the internal APIs that web applications use on their frontends, replacing the slow, token-heavy click/screenshot/DOM-scraping approach of traditional browser automation.

The project offers three connection modes — Full MCP (all tools exposed), Gateway (only meta tools exposed for on-demand discovery), and CLI mode (zero MCP overhead) — compatible with Claude Code, Cursor, Windsurf, and other MCP clients. The plugin ecosystem covers 100+ plugins with approximately 2,000 tools spanning Slack, Discord, GitHub, Jira, Notion, Figma, AWS, Stripe, and more. For sites without existing plugins, AI can be pointed at a target website to automatically analyze pages, discover APIs, and generate plugin code.

On security, all tools are off by default requiring explicit enablement, with three permission levels (Off/Ask/Auto), AI-assisted code review before plugin activation, permission reset on version updates, Bearer Token + WebSocket authentication, CORS protection, adapter SHA-256 integrity verification, and output sanitization. Everything runs locally with no cloud dependencies and full audit logs. The project is built in TypeScript (97.9%), managed as an npm workspaces monorepo, and released under the MIT license.

Architecture Overview

AI Agent (Claude/Cursor/any MCP client)
    ↕ MCP Streamable HTTP (localhost:9515)
MCP Server (Node.js)
    ↕ WebSocket (JSON-RPC 2.0, 10MB message limit)
Chrome Extension (Manifest V3)
    ↕ chrome.scripting.executeScript() (IIFE injection, MAIN world)
Browser Tabs (various web apps)

MCP Server: Entry point at platform/mcp-server/src/index.ts. Plugin discovery uses a five-stage pipeline (npm scan → local paths → parallel load → merge → build immutable registry). The registry is an immutable object (Object.freeze) with O(1) tool lookup and pre-compiled Ajv validators. Hot reload is supported in dev mode via dev proxy with atomic worker process replacement on file changes.

Chrome Extension: Manifest V3 architecture with three parts — background service worker, offscreen document, and side panel. Persistent WebSocket connection to the MCP server is maintained through the offscreen document (15s ping/pong, exponential backoff reconnection). Adapters are injected as IIFE bundles via chrome.scripting.executeScript({ world: 'MAIN' }), bypassing page CSP. Dispatch supports targeted (by tabId) and automatic selection (sorted by active window/tab priority).

Plugin SDK: Base class OpenTabsPlugin at platform/plugin-sdk/src/index.ts. Build artifacts: dist/adapter.iife.js (injected into browser) and dist/tools.json (tool metadata). Published as npm packages with global install auto-discovery support.

Quick Start

Prerequisites: Node.js ≥ 22 and Chrome.

npm install -g @opentabs-dev/cli
opentabs start
# Load unpacked extension in chrome://extensions/ (developer mode) → ~/.opentabs/extension
opentabs plugin install slack

CLI Commands: opentabs start (start server), opentabs plugin install/configure <name> (plugin management), opentabs tool list/call <name> <args> (tool operations), opentabs status (view status).

MCP Connection: Server at http://localhost:9515/mcp, Gateway mode at http://localhost:9515/mcp/gateway, authenticated via Bearer Token (64-char hex key).

Environment Variables: OPENTABS_PORT/PORT (custom port), OPENTABS_CONFIG_DIR (config directory), OPENTABS_DANGEROUSLY_SKIP_PERMISSIONS (skip permission prompts).

Unconfirmed: npm package @opentabs-dev/cli publication status, first release date, exact plugin count, Windows cross-platform compatibility matrix, team/author information.

Related Projects

View All

STAY UPDATED

Get the latest AI tools and trends delivered straight to your inbox. No spam, just intelligence.