@pokutuna/mcp-chrome-tabs
provides direct access to your browser's open tabs content. No additional fetching or authentication required - simply access what you're already viewing.
README Documentation
@pokutuna/mcp-chrome-tabs
Model Context Protocol (MCP) server that provides direct access to your browser's open tabs content. No additional fetching or authentication required - simply access what you're already viewing.
Key Features
- Direct browser tab access - No web scraping needed, reads content from already open tabs
- Content optimized for AI - Automatic content extraction and markdown conversion to reduce token usage
- Active tab shortcut - Instant access to currently focused tab without specifying IDs
- MCP listChanged notifications - Follows MCP protocol to notify tab changes (support is limited in most clients)
Requirements
[!IMPORTANT]
macOS only - This MCP server uses AppleScript and only works on macOS.
- Node.js 20 or newer
- MCP Client such as Claude Desktop, Claude Code, or any MCP-compatible client
- macOS only (uses AppleScript for browser automation)
Getting Started
First, enable "Allow JavaScript from Apple Events" in Chrome:
- (en) View > Developer > Allow JavaScript from Apple Events
- (ja) 表示 > 開発 / 管理 > Apple Events からのJavaScript を許可
Standard config works in most MCP clients (e.g., .claude.json
, .mcp.json
):
{
"mcpServers": {
"chrome-tabs": {
"command": "npx",
"args": ["-y", "@pokutuna/mcp-chrome-tabs@latest"]
}
}
}
Or for Claude Code:
claude mcp add -s user chrome-tabs -- npx -y @pokutuna/mcp-chrome-tabs@latest
Command Line Options
The server accepts optional command line arguments for configuration:
--application-name
- Application name to control (default: "Google Chrome")--exclude-hosts
- Comma-separated list of domains to exclude from tab listing and content access--check-interval
- Interval in milliseconds to check for tab changes and notify clients (default: 3000, set to 0 to disable)--max-content-chars
- Truncates tab content to a maximum number of characters (default: 20000)
Experimental Safari Support
Limited Safari support is available. Note that Safari lacks unique tab IDs, making it sensitive to tab order changes during execution:
npx @pokutuna/mcp-chrome-tabs --application-name=Safari --experimental-browser=safari
Experimental Arc Browser Support
Arc Browser support is available. Arc is Chrome-based and supports JavaScript execution from Apple Events:
npx @pokutuna/mcp-chrome-tabs --application-name=Arc --experimental-browser=arc
MCP Features
Tools
list_tabs
List all open tabs in the user's browser with their titles, URLs, and tab references.
- Returns: Markdown formatted list of tabs with tab IDs for reference
read_tab_content
Get readable content from a tab in the user's browser.
id
(optional): Tab reference fromlist_tabs
output (e.g.,ID:12345:67890
)- If
id
is omitted, uses the currently active tab - Returns: Clean, readable content extracted using Mozilla Readability
open_in_new_tab
Open a URL in a new tab to present content or enable user interaction with webpages.
url
(required): URL to open in the browser
Resources
tab://current
Resource representing the content of the currently active tab.
- URI:
tab://current
- MIME type:
text/markdown
- Content: Real-time content of the active browser tab
tab://{windowId}/{tabId}
Resource template for accessing specific tabs.
- URI pattern:
tab://{windowId}/{tabId}
- MIME type:
text/markdown
- Content: Content of the specified tab
- Resources are dynamically generated based on currently open tabs