mcp-google-contacts
Allows interaction with Google Contacts, providing tools to create, search, list, retrieve, and update contacts.
Click on "Install 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., "@mcp-google-contactsHere's a business card photo, save the person as a contact."
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.
mcp-google-contacts
A remote MCP server for Google Contacts, deployed on Cloudflare Workers, for use as a custom connector in claude.ai (web/desktop/mobile). Each user who connects authorizes their own Google account via OAuth — the server proxies that OAuth flow and never sees your Google password, just the tokens it needs to call the People API on your behalf.
Built for a specific workflow: send Claude a photo of a namecard/business card and have it extract the details and save a new contact for you.
Architecture
@cloudflare/workers-oauth-provider— implements the OAuth 2.1 server that claude.ai talks to (authorize/token/dynamic client registration), and hands your Worker an encryptedpropsbag per authorized user.google-handler.ts— a small Hono app that owns/authorizeand/callback: shows the consent screen, redirects to Google, exchanges the code for tokens, and stores the Google refresh token inprops.agents'McpAgent— a Durable Object-backed MCP server. Tool calls readthis.props.googleRefreshTokenand mint a fresh Google access token on demand (cached in-memory per Worker isolate) before calling the People API.workers-oauth-utils.ts— CSRF/session/approval-dialog plumbing, copied near-verbatim from Cloudflare's reference OAuth demo (provider-agnostic).
Related MCP server: Remote MCP Server
Tools
create_contact— create a contact (name, company, title, emails, phones, address, notes)search_contacts— search existing contacts by name/email/phone/company (use before creating, to avoid duplicates)list_contacts— list contacts, most recently modified firstget_contact— fetch full details for one contactupdate_contact— update fields on an existing contact
1. Google Cloud setup
Go to the Google Cloud Console and create (or pick) a project.
Enable the Google People API.
Go to APIs & Services → Credentials → Create Credentials → OAuth client ID.
Application type: Web application
Authorized redirect URI:
https://<your-worker-subdomain>.workers.dev/callback(you'll know your Worker's URL after the firstwrangler deploy— you can add/edit this redirect URI afterward in the Cloud Console).Save the Client ID and Client Secret.
If your OAuth consent screen is in "Testing" mode, add your own Google account as a test user.
2. Cloudflare setup
npm install
npx wrangler login
npx wrangler kv namespace create OAUTH_KVCopy the id printed by the last command into wrangler.jsonc under both
kv_namespaces[0].id and env.development.kv_namespaces[0].id.
If npx wrangler whoami lists more than one Cloudflare account, add
"account_id" to wrangler.jsonc (see the comment there) or set the
CLOUDFLARE_ACCOUNT_ID env var — otherwise wrangler can't tell which
account to deploy to.
Set secrets (you'll be prompted to paste each value):
npx wrangler secret put GOOGLE_CLIENT_ID
npx wrangler secret put GOOGLE_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEY # e.g. output of: openssl rand -hex 323. Deploy
npm run deployThis prints your Worker's URL, e.g. https://mcp-google-contacts.<your-subdomain>.workers.dev.
Go back to the Google Cloud Console and make sure the OAuth client's redirect
URI is exactly <that-url>/callback.
4. Connect it to claude.ai
In claude.ai: Settings → Connectors → Add custom connector, and enter:
https://mcp-google-contacts.<your-subdomain>.workers.dev/mcpClaude will walk you through authorizing — you'll see the consent screen
from google-handler.ts, then Google's own OAuth screen. Once approved, the
Google Contacts tools are available in your conversations.
Local development
cp .env.development.example .env.development # fill in the same three values as the secrets above
npm run devwrangler dev runs the Worker locally; note that Google's OAuth redirect
must match what you're actually running against (add http://localhost:8788/callback
as an additional authorized redirect URI in Google Cloud Console for local testing).
Notes
Uses the
https://www.googleapis.com/auth/contactsOAuth scope (read/write access to your contacts) plusemail profileto identify who's connecting.Google access tokens expire in ~1 hour; this server refreshes them on demand from the stored refresh token rather than syncing to this Worker's own OAuth token lifetime — simpler and correct regardless of how long a Claude session goes between its own token refreshes.
search_contacts/list_contactspage through all ofpeople/me's connections client-side rather than using the People API'ssearchContactsendpoint, which requires a separate index warm-up and can lag behind recent edits.A previous local-only version of this server (stdio transport, for Claude Desktop) is available in this repo's git history if you'd rather run it locally instead of deploying.
Contributing
See CONTRIBUTING.md for local setup and the quality
checks (npm run check) to run before opening a PR.
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Machine Conversation Protocol server that enables AI assistants to manage Google Contacts and search Google Workspace directories, providing tools for listing, creating, updating, and deleting contacts within your Google account.933MIT
- Flicense-qualityCmaintenanceA Cloudflare Workers-based implementation of Model Context Protocol (MCP) server that enables AI assistants like Claude to access external tools and capabilities through a standardized interface with OAuth authentication.14
- Alicense-qualityFmaintenanceMCP server that enables Claude to interact with Google Workspace services including Drive, Docs, Sheets, Slides, Calendar, Gmail, and Contacts.85238MIT
- Flicense-qualityDmaintenanceEnables interaction with Google Sheets, Docs, Slides, and Drive through a remote MCP server hosted on Cloudflare Workers, with OAuth authentication and Claude-native connect.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/boonkgim/mcp-google-contacts'
If you have feedback or need assistance with the MCP directory API, please join our Discord server