MCP server for Google Contacts (People API) — search, read, create, update and delete contacts, manage contact groups and run batch operations. For Claude, Cursor, Codex and other AI clients.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add google-contacts --env GOOGLE_CONTACTS_CLIENT_SECRET='<GOOGLE_CONTACTS_CLIENT_SECRET>' --env GOOGLE_CONTACTS_REFRESH_TOKEN='<GOOGLE_CONTACTS_REFRESH_TOKEN>' --env GOOGLE_CONTACTS_ACCESS_TOKEN='<GOOGLE_CONTACTS_ACCESS_TOKEN>' -- npx -y mcp-google-contacts~/.codex/config.toml
[mcp_servers.google-contacts]
command = "npx"
args = ["-y", "mcp-google-contacts"]
env = { GOOGLE_CONTACTS_CLIENT_SECRET = "<GOOGLE_CONTACTS_CLIENT_SECRET>", GOOGLE_CONTACTS_REFRESH_TOKEN = "<GOOGLE_CONTACTS_REFRESH_TOKEN>", GOOGLE_CONTACTS_ACCESS_TOKEN = "<GOOGLE_CONTACTS_ACCESS_TOKEN>" }
# codex mcp add google-contacts --env GOOGLE_CONTACTS_CLIENT_SECRET='<GOOGLE_CONTACTS_CLIENT_SECRET>' --env GOOGLE_CONTACTS_REFRESH_TOKEN='<GOOGLE_CONTACTS_REFRESH_TOKEN>' --env GOOGLE_CONTACTS_ACCESS_TOKEN='<GOOGLE_CONTACTS_ACCESS_TOKEN>' -- npx -y mcp-google-contacts~/.cursor/mcp.json
{
"mcpServers": {
"google-contacts": {
"command": "npx",
"args": [
"-y",
"mcp-google-contacts"
],
"env": {
"GOOGLE_CONTACTS_CLIENT_SECRET": "<GOOGLE_CONTACTS_CLIENT_SECRET>",
"GOOGLE_CONTACTS_REFRESH_TOKEN": "<GOOGLE_CONTACTS_REFRESH_TOKEN>",
"GOOGLE_CONTACTS_ACCESS_TOKEN": "<GOOGLE_CONTACTS_ACCESS_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"google-contacts": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-google-contacts"
],
"env": {
"GOOGLE_CONTACTS_CLIENT_SECRET": "<GOOGLE_CONTACTS_CLIENT_SECRET>",
"GOOGLE_CONTACTS_REFRESH_TOKEN": "<GOOGLE_CONTACTS_REFRESH_TOKEN>",
"GOOGLE_CONTACTS_ACCESS_TOKEN": "<GOOGLE_CONTACTS_ACCESS_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"google-contacts": {
"command": "npx",
"args": [
"-y",
"mcp-google-contacts"
],
"env": {
"GOOGLE_CONTACTS_CLIENT_SECRET": "<GOOGLE_CONTACTS_CLIENT_SECRET>",
"GOOGLE_CONTACTS_REFRESH_TOKEN": "<GOOGLE_CONTACTS_REFRESH_TOKEN>",
"GOOGLE_CONTACTS_ACCESS_TOKEN": "<GOOGLE_CONTACTS_ACCESS_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"google-contacts": {
"command": "npx",
"args": [
"-y",
"mcp-google-contacts"
],
"env": {
"GOOGLE_CONTACTS_CLIENT_SECRET": "<GOOGLE_CONTACTS_CLIENT_SECRET>",
"GOOGLE_CONTACTS_REFRESH_TOKEN": "<GOOGLE_CONTACTS_REFRESH_TOKEN>",
"GOOGLE_CONTACTS_ACCESS_TOKEN": "<GOOGLE_CONTACTS_ACCESS_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"google-contacts": {
"command": "npx",
"args": [
"-y",
"mcp-google-contacts"
],
"env": {
"GOOGLE_CONTACTS_CLIENT_SECRET": "<GOOGLE_CONTACTS_CLIENT_SECRET>",
"GOOGLE_CONTACTS_REFRESH_TOKEN": "<GOOGLE_CONTACTS_REFRESH_TOKEN>",
"GOOGLE_CONTACTS_ACCESS_TOKEN": "<GOOGLE_CONTACTS_ACCESS_TOKEN>"
}
}
}
}Environment variables
GOOGLE_CONTACTS_CLIENT_SECRETGOOGLE_CONTACTS_REFRESH_TOKENGOOGLE_CONTACTS_ACCESS_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.