Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Google Messages

FreeNot checked

Enables sending, reading, searching, and managing SMS/RCS messages through Google Messages web interface, requiring a persistent browser session paired with a p

GitHubEmbed

About

Enables sending, reading, searching, and managing SMS/RCS messages through Google Messages web interface, requiring a persistent browser session paired with a phone.

README

Google Messages for web (messages.google.com/web) wrapped as a persistent-session macOS app and an MCP server, so you can text from a desktop window and let Claude send/read/search your messages.

How it works (and the one big caveat)

Google Messages has no official API. The only desktop interface is the phone-paired web client, so everything here drives that web page with Playwright. Practical consequences:

  • ✅ Works for your own account and messages (personal automation).
  • ⚠️ Fragile to UI changes — if Google changes the page HTML, selectors break. They live in one place: the SEL block in src/messages.mjs. Use the debug_snapshot tool to see what currently matches, then fix them.
  • ⚠️ Your phone is still the SMS/RCS engine; the pairing expires after ~14 days of the phone being offline.

One persistent Chromium profile (in ~/Library/Application Support/google-messages-mcp/profile) holds your pairing, so you log in once. The same profile is both the app window and the automation target.

The profile can only be opened by one process at a time. When the MCP server is running, its headed window is your app — don't also run npm run app simultaneously.

Setup

npm install          # installs deps + the Chromium binary (postinstall)

First run — pair your phone

npm run app

A window opens showing a QR code. On your phone: Google Messages → menu → Device pairing → QR code scanner, scan it, and tick “Remember this computer.” The session now persists.

Use as an MCP server

Point your MCP client at the server. Example Claude Code / Claude Desktop config — replace /ABSOLUTE/PATH/TO with wherever you cloned this repo (run pwd in the repo root):

{
  "mcpServers": {
    "google-messages": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/google-messages-app/src/server.mjs"]
    }
  }
}

Note: The Messages web SPA has historically crashed or failed to render correctly under true headless Chromium. By default we run headed but make the window 100% invisible on macOS for automation (Garvis, MCP clients, etc.):

  • Launch args: --window-position=-100000,-100000 --window-size=1,1 plus common suppression flags (--no-first-run, --disable-infobars, etc.).
  • As soon as the browser context is created (and at 250ms + 700ms), AppleScript forces: visible of process = false, window to off-screen + tiny size, minimized, and not frontmost.

This keeps your persistent paired session working while preventing any visible window or navigation during tool calls / Garvis sweeps.

You can still force experimental true headless with GM_HEADLESS=true (or 1 or new) if you want to try, but success is not guaranteed.

Profile lock handling still applies (only one client can hold the profile). For Garvis the pkill + sleep logic is only active when not using the hidden-headed path.

Tools

Tool What it does
pairing_status Check if the session is paired; call first if others fail
list_conversations Recent threads (name, snippet, unread)
read_conversation Recent messages in a thread (by name)
send_message Send to a contact name or raw phone number
search_messages Search threads for a query
delete_conversation Move a thread to Trash (recoverable) by exact name; refuses on ambiguity
debug_snapshot Maintenance: dump selector match counts when the UI changes

Maintenance

When a tool returns empty/odd results, run debug_snapshot. If selector counts are 0, the UI changed — update the matching entry in the SEL block of src/messages.mjs.

License

GNU AGPL-3.0-or-later. Note the network-use clause: if you run a modified version of this software as a network service, you must make your modified source available to its users.

from github.com/jaingxyz/google-messages-app

Installing Google Messages

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/jaingxyz/google-messages-app

FAQ

Is Google Messages MCP free?

Yes, Google Messages MCP is free — one-click install via Unyly at no cost.

Does Google Messages need an API key?

No, Google Messages runs without API keys or environment variables.

Is Google Messages hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Google Messages in Claude Desktop, Claude Code or Cursor?

Open Google Messages on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Playwright

Browser automation, scraping, screenshots

Microsoftby Microsoft

Puppeteer

Browser automation and web scraping.

modelcontextprotocolby modelcontextprotocol

opentabs-dev/opentabs

Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a

opentabs-devby opentabs-dev

robhunter/agentdeals

1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan

robhunterby robhunter

hlydecker/ucsc-genome-mcp

MCP server to interact with the UCSC Genome Browser API, letting you find genomes, chromosomes, and more.

hlydeckerby hlydecker

34892002/bilibili-mcp-js

A MCP server that supports searching for Bilibili content. Provides LangChain integration examples and test scripts.

34892002by 34892002

achiya-automation/safari-mcp

Native Safari browser automation for AI agents with 80+ tools. No Chrome dependency, optimized for Apple Silicon with 60% less CPU overhead.

achiya-automationby achiya-automation

agent-infra/mcp-server-browser

Browser automation capabilities using Puppeteer, both support local and remote browser connection.

bytedanceby bytedance

aparajithn/agent-scraper-mcp

Web scraping MCP server for AI agents. 6 tools: clean content extraction, structured scraping with CSS selectors, full-page screenshots via Playwright, link ext

aparajithnby aparajithn

apireno/DOMShell

Browse the web using filesystem commands (ls, cd, grep, click). 38 MCP tools map Chrome's Accessibility Tree to a virtual filesystem via a Chrome Extension.

apirenoby apireno

Compare Google Messages with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All browse MCPs