google-messages-mcp
Allows sending, reading, searching, and managing SMS/RCS conversations through Google Messages web interface.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-messages-mcpsend a text to Mom saying I'll be home for dinner"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Messages — App + MCP
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
SELblock insrc/messages.mjs. Use thedebug_snapshottool 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 appsimultaneously.
Related MCP server: imessage-send-mcp
Setup
npm install # installs deps + the Chromium binary (postinstall)First run — pair your phone
npm run appA 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,1plus 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(or1ornew) 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 |
| Check if the session is paired; call first if others fail |
| Recent threads (name, snippet, unread) |
| Recent messages in a thread (by name) |
| Send to a contact name or raw phone number |
| Search threads for a query |
| Move a thread to Trash (recoverable) by exact name; refuses on ambiguity |
| 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.
This server cannot be deployed
Maintenance
Related MCP Connectors
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Send SMS/MMS, manage contacts, and read campaigns, messages and media on SimpleTexting.
- SureSMSOAuthcom.suresms
Send SMS, manage contacts and groups, and read delivery reports. OAuth 2.1 SureSMS login.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, search, and send iMessages with features like contact name resolution, session grouping, and attachment listing. It provides intent-aligned tools to efficiently navigate conversation history and manage messages through natural language queries.6MIT
- AlicenseAqualityDmaintenanceEnables sending iMessages or SMS messages via the macOS Messages app using osascript. No Full Disk Access required, and never reads your message history.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, search, and send iMessages, manage contacts, and access attachments on macOS.6 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents on macOS to securely read and search the local Messages database, catch up on missed messages via a persistent inbox, and send texts or files to allowlisted chats, with optional voice note transcription and text-to-speech.MIT