google-contacts
Serverless MCP (Model Context Protocol) connector for Google Contacts on AWS Lambda. Per-user OAuth 2.1 authentication with privacy-first design. Enables AI agents & LLMs like Claude to access Google Contacts via People API in real-time. Zero contact data storage. Works with Claude Web & Desktop.
claude mcp add --transport stdio offleashxyz-google-contacts-mcp-server node path/to/server.js \ --env AWS_REGION="us-west-2" \ --env GOOGLE_CLIENT_ID="YOUR_GOOGLE_CLIENT_ID" \ --env GOOGLE_CLIENT_SECRET="YOUR_GOOGLE_CLIENT_SECRET"
How to use
This MCP server provides a serverless, per-user OAuth-enabled integration to Google Contacts. It runs as an Express-based MCP service behind AWS API Gateway and Lambda, exposing a /mcp endpoint that Claude can reach. The server supports read-only access to Google Contacts using the contacts.readonly scope and fetches contact data in real-time based on the authenticated user. Available tools include list_contacts for paginated listing, get_contact for details on a specific contact, search_contacts for across-all-fields queries, and search_directory (Workspace accounts only) for directory lookups. To use it, set up OAuth credentials in Google Cloud, deploy to AWS, and configure Claude or Claude Desktop to point at the /mcp URL. The flow handles the OAuth dance per user, stores only tokens in DynamoDB with TTL, and does not persist contact data.
How to install
Prerequisites:
- Node.js (>= 18) installed
- AWS account with IAM permissions and AWS CLI configured
- Google Cloud Project with People API enabled
- CDK installed globally (npm install -g aws-cdk)
- Install dependencies
npm install
- Build the project (TypeScript to JavaScript)
npm run build
- Build the Lambda package (if using CDK constructs)
npm run build:lambda
- Deploy to AWS using CDK
npm run cdk:deploy
- Configure OAuth credentials in AWS Parameter Store after deployment
aws ssm put-parameter \
--name "/google-contacts-mcp/oauth-credentials" \
--value '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}' \
--type String \
--overwrite \
--region us-west-2
-
Add the Google OAuth redirect URI from the deployed API endpoint to your Google Cloud credentials (Authorized redirect URIs)
-
Update Claude/Claude Desktop configuration to point at the MCP endpoint, e.g. https://your-api-id.execute-api.region.amazonaws.com/mcp
Additional notes
Tips and notes:
- The server uses per-user OAuth 2.1 flow; tokens are stored in DynamoDB with TTL and no contact data is persisted.
- Ensure your Google Cloud OAuth consent screen includes the required scopes: https://www.googleapis.com/auth/contacts.readonly and https://www.googleapis.com/auth/userinfo.email
- Redirect URIs are generated dynamically based on your API endpoint; you don’t need to hard-code them in the parameter store.
- If you see “Authentication required” in Claude, use the Connect button to re-authenticate and renew tokens.
- This MCP server is designed to be read-only with respect to Google Contacts data; there is no write-back to Google Contacts.
- Common issues: invalid/expired tokens, misconfigured redirect URIs, or missing OAuth credentials in Parameter Store. Re-authenticate or update credentials as needed.
Related MCP Servers
pilot-shell
The professional development environment for Claude Code. Claude Code is powerful. Pilot Shell makes it reliable. Start a task, grab a coffee, come back to production-grade code. Tests enforced. Context preserved. Quality automated.
Unity
AI-powered bridge connecting LLMs and advanced AI agents to the Unity Editor via the Model Context Protocol (MCP). Chat with AI to generate code, debug errors, and automate game development tasks directly within your project.
mcp-nixos
MCP-NixOS - Model Context Protocol Server for NixOS resources
boilerplate
TypeScript Model Context Protocol (MCP) server boilerplate providing IP lookup tools/resources. Includes CLI support and extensible structure for connecting AI systems (LLMs) to external data sources like ip-api.com. Ideal template for creating new MCP integrations via Node.js.
mcp -atlassian-confluence
Node.js/TypeScript MCP server for Atlassian Confluence. Provides tools enabling AI systems (LLMs) to list/get spaces & pages (content formatted as Markdown) and search via CQL. Connects AI seamlessly to Confluence knowledge bases using the standard MCP interface.
mcp-domain-availability
A Model Context Protocol (MCP) server that enables Claude Desktop to check domain availability across 50+ TLDs. Features DNS/WHOIS verification, bulk checking, and smart suggestions. Zero-clone installation via uvx.