Google Voice MCP
Provides tools for Google Voice SMS through the Google Voice website, including checking login, listing and reading conversations, sending and replying to SMS, and marking conversations read.
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 Voice MCP send a text to +14155550123 saying I'm running 10 minutes late"
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 Voice MCP
An unofficial MCP server for Google Voice SMS. It provides tools to check login, list and read conversations, send and reply to SMS, and mark conversations read. Google Voice has no public SMS API for this use case; the server automates the Google Voice website through system Chrome and Playwright's Chrome DevTools Protocol connection. Google can change or restrict this behavior at any time.
This repository includes Windows Chrome discovery, localhost-only debugging, a write guard, and checks around multiline composition and visible send errors. See LICENSE for the applicable license.
Requirements
Node.js 18 or newer
System Google Chrome or Chromium
On Linux headless servers, Xvfb
Playwright is used as an automation library; the server runs your installed Chrome. Its browser profile contains your Google session and must stay private.
Related MCP server: google-messages-mcp
Install from this repository
git clone https://github.com/hashirskh/googlevoice-mcp.git
cd googlevoice-mcp
npm ci --ignore-scripts
npm run buildnpm ci --ignore-scripts avoids downloading Playwright's bundled browser. Install Chrome separately. To start the MCP server locally, run node dist/server.js from the repository directory. It communicates over stdio.
Set these environment variables in your MCP client:
Name | Purpose |
| Absolute path to a private local directory for the browser profile. Keep it outside the repository. |
| A free localhost port, for example |
| Leave unset or |
Register the server in your MCP client with the absolute path to node and the absolute path to dist/server.js. For Codex, configure a local stdio MCP server named googlevoice; then restart the client or start a new chat. The npm package name is not unique to this Git repository, so npx mcp-googlevoice may run a different published package. Use the locally built server path when you want this version.
Sign in
Call gv_login, then sign in to the intended Google account directly in the dedicated Chrome window and complete any Google verification there. Open https://voice.google.com/u/0/messages in that same browser profile and call gv_check_login. If several Google accounts are in the profile, verify which account Google Voice selected. Never paste passwords, verification codes, cookies, or your browser profile into an agent chat or Git repository.
On a remote Linux server, interactive login may require a localhost SSH tunnel and chrome://inspect. The remote debugging port must stay private; do not publish or forward it to an untrusted network.
Tools
Tool | Action |
| Open system Chrome for interactive Google login |
| Check whether the Google Voice inbox is accessible |
| List conversations |
| Read a conversation |
| Send a new SMS |
| Reply to a conversation |
| Mark a conversation read |
Opening a conversation can itself change its read status. Before using gv_list_sms for unread messages, inspect whether the current Google Voice interface still preserves unread state during listing.
Sending behavior and limits
The local changes fill the complete message without Enter keystrokes, verify the composed text before clicking Send once, and check visible Google Voice send errors. gv_send_sms can accept multiple recipients, which may create a group conversation; use one phone number per call for separate texts. A successful tool response means submission to the Google Voice interface, not confirmed delivery. Google Voice can reject, delay, or limit messages. Verify receipt or the conversation's status, and never automatically retry an uncertain send.
Do not commit node_modules, dist, state directories, browser profiles, cookies, or credentials. The included .gitignore excludes common local artifacts, but always review git status before publishing changes.
Available Tools
7 toolsgv_check_loginB
Check whether the user is currently logged into Google Voice.
Inputs: no named parameters.
gv_list_smsB
List recent SMS conversations from Google Voice. Returns conversation ID, contact, last message snippet, timestamp, and read/unread status.
Inputs: limit, filter.
gv_loginA
Launch system Chrome with remote debugging for Google login. The user connects via SSH tunnel and chrome://inspect to complete login (including 2FA). After login, call gv_check_login to verify.
Inputs: no named parameters.
gv_mark_readB
Mark an SMS conversation as read.
Inputs: conversation_id (required).
gv_read_smsA
Read messages within a specific SMS conversation. Returns individual messages with sender, text, timestamp, and direction.
Inputs: conversation_id (required), limit, filter.
gv_reply_smsB
Reply to an existing SMS conversation.
Inputs: text (required), conversation_id (required).
gv_send_smsC
Send a new SMS message to one or more phone numbers via Google Voice.
Inputs: text (required), phone_number (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Most tools are clearly distinct (list vs read vs send vs mark_read target different operations). The closest pair is gv_reply_sms vs gv_send_sms and gv_list_sms vs gv_read_sms, but descriptions clarify that one replies to an existing conversation and the other sends to new numbers, and one lists conversations while the other reads messages within.
All tools follow a consistent gv_ prefix with a clear verb_noun pattern (list_sms, send_sms, read_sms, reply_sms, mark_read, check_login). No camelCase mixing or vague verbs.
Seven tools is well-scoped for an SMS-focused Google Voice integration, with each tool earning its place across the login and messaging lifecycle.
The SMS lifecycle is well covered: login, verify, list, read, send, reply, and mark read. Minor gaps exist (no delete/archive conversation, no unread marking or search, and no call/voicemail coverage despite the 'Google Voice' name), but core workflows are complete.
Maintenance
Related MCP Connectors
Send and read real SMS from your own phone number: an Android phone, or an iPhone through a Mac. Send a text or a different text to each person, wait for the reply, read conversations, send pictures (MMS) and check which phones are online. OAuth sign-in; free tier.
Send and read OpenPhone messages, calls, contacts and phone numbers.
Send WhatsApp messages from your own number, read the replies and send login codes.
Read, crawl and act on websites, signed in as the user, and turn any site into an API.
Related MCP Servers
- AlicenseAqualityBmaintenanceAccess your Carbon Voice conversations and voice memos—retrieving messages, conversations, voice memos, and more as well as send messages to Carbon Voice users.44396 npm10ISC
- AlicenseNot gradedqualityBmaintenanceEnables sending, reading, searching, and managing SMS/RCS messages through Google Messages web interface, requiring a persistent browser session paired with a phone.AGPL 3.0
- AlicenseAqualityCmaintenanceEnables agents to reuse a human-completed Chrome login session to open confirmed origins, read visible page text, and perform single click, fill, or key press actions without ever handling passwords or exposing cookies.6MIT
- AlicenseAqualityBmaintenanceEnables MCP clients to connect to Google Messages for Web for session-status checks and, eventually, message preparation and confirmation workflows without exposing secrets.1Apache 2.0