Skip to main content
Glama
Google Voice MCP

Google Voice MCP

by hashirskh

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 build

npm 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

GOOGLEVOICE_STATE_DIR

Absolute path to a private local directory for the browser profile. Keep it outside the repository.

GOOGLEVOICE_DEBUG_PORT

A free localhost port, for example 19223.

GOOGLEVOICE_ALLOW_WRITES

Leave unset or 0 while setting up. Set to 1 only when you intend to allow send, reply, and mark-read tools.

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

gv_login

Open system Chrome for interactive Google login

gv_check_login

Check whether the Google Voice inbox is accessible

gv_list_sms

List conversations

gv_read_sms

Read a conversation

gv_send_sms

Send a new SMS

gv_reply_sms

Reply to a conversation

gv_mark_read

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 tools
gv_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

    A3.6/5.0

    Scored across 7 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    Seven tools is well-scoped for an SMS-focused Google Voice integration, with each tool earning its place across the login and messaging lifecycle.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Access your Carbon Voice conversations and voice memos—retrieving messages, conversations, voice memos, and more as well as send messages to Carbon Voice users.
      44
      396 npm
      10
      ISC
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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
    • A
      license
      A
      quality
      C
      maintenance
      Enables 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.
      6
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables MCP clients to connect to Google Messages for Web for session-status checks and, eventually, message preparation and confirmation workflows without exposing secrets.
      1
      Apache 2.0