Chrome Extension Bridges Google Messages to Claude Code via MCP

Direct Integration Without Docker or Cloud Servers
A developer has created a Chrome extension that injects into Google Messages Web sessions and bridges them to Claude Code via Model Context Protocol (MCP). The architecture uses stdio transport between Claude Code and a Node.js MCP server, which communicates with the Chrome extension via WebSocket on localhost:7008.
What Works vs. Existing Solutions
The developer tried two existing approaches first:
- OpenMessage: Docker container using libgm protocol with SSE sessions that expire after a few minutes of inactivity, causing "Invalid session ID" errors. It requires restarting the Docker container for new messages to sync and uses 7 MCP tools (~1,500 tokens per conversation).
- TextBee: Android SMS gateway app that routes all private SMS messages through cloud servers (SMS only, no RCS). Requires webhook server plus Tailscale/ngrok tunnel, totaling five moving parts for basic texting.
The new Chrome extension approach has three working MCP tools with ~300 tokens overhead:
list_chats– Returns all conversations with names, snippets, and timestampsread_messages– Provides full message history with sent/received directionsend_message– Fills in text but doesn't actually send (currently works as a draft tool)
The Angular Isolation Problem
Google Messages Web is an Angular app where Chrome extension content scripts run in an "isolated world" – a separate JavaScript context from the page. Angular's zone.js only patches event listeners in the main world, so when the extension sets the textarea value and clicks Send:
- The text appears in the input ✓
- The send button gets clicked ✓
- Angular's form control doesn't detect the value change, so the click handler thinks the field is empty ✗
Attempted Solutions
The developer has tried multiple approaches:
- Native value setter + input events
document.execCommand('insertText')- Full mouse event sequence (pointerdown/mousedown/mouseup/click)
- Enter key simulation
- Manifest V3
world: "MAIN"content script (gets closest but still doesn't send)
Debug output from the main world script shows: {"valueSet": true, "btnLabel": "Send end-to-end encrypted RCS message", "clicked": true, "inputAfter": "text still here...", "sentVia": "none"}
Potential Solutions to Explore
The developer is considering:
chrome.debuggerAPI for trusted input events- Accessing Angular's NgZone via
__ngContext__on DOM elements - CDP (Chrome DevTools Protocol) for
Input.dispatchKeyEvent
The project is open source with repository at https://github.com/GURSEWAKSINGHSANDHU/google-messages-mcp and issue tracking at https://github.com/GURSEWAKSINGHSANDHU/google-messages-mcp/issues/1.
📖 Read the full source: r/ClaudeAI
👀 See Also

Open-source multi-agent framework extracted from Claude Code leak
A developer extracted the multi-agent orchestration system from Claude Code's leaked source code and rebuilt it as a model-agnostic open-source framework with MIT license. The 8,000-line TypeScript framework includes task scheduling, inter-agent messaging, and built-in tools.

MuninnDB adds Dream Engine for LLM memory consolidation with vault isolation
MuninnDB, a Go-based cognitive memory database, now includes a Dream Engine that performs LLM-driven memory consolidation between sessions using deduplication thresholds and semantic review. The system features vault trust tiers for data isolation and runs locally with Ollama.

McPherson AI releases two new QSR operations skills on ClawHub: food cost diagnostics and labor leak auditing
Two new free skills have been published on ClawHub: qsr-food-cost-diagnostic catches COGS issues weekly with a four-lever diagnostic, and qsr-labor-leak-auditor provides daily labor tracking with mid-week alerts to prevent overspend.

Claude Code Hooks Implementation Project Covers All 23 Hooks
A developer has built a project entirely with Claude code that implements all 23 Claude code hooks, with a video explaining each hook's use case and a GitHub repository available.