Skip to main content
Glama
RayanZaki

MCP Google Contacts Server

by RayanZaki

Servidor de contactos de Google MCP

Un servidor de Protocolo de conversación de máquina (MCP) que proporciona la funcionalidad de Contactos de Google, lo que permite a los asistentes de IA administrar contactos, buscar en el directorio de su organización e interactuar con Google Workspace.

✨ Características

  • Listado y búsqueda de contactos de Google

  • Crear, actualizar y eliminar contactos

  • Buscar en el directorio de Google Workspace

  • Ver "Otros contactos" (personas con las que has interactuado pero que no has agregado)

  • Acceda a los usuarios de Google Workspace en su organización

Related MCP server: Google Drive MCP Server

🚀 Instalación

📋 Requisitos previos

  • Python 3.12 o superior

  • Cuenta de Google con acceso a contactos

  • Proyecto de Google Cloud con People API habilitada

  • Credenciales OAuth 2.0 para el acceso a la API de Google

🧪 Uso de uv (Recomendado)

  1. Instala uv si aún no lo tienes:

    pip install uv
  2. Clonar el repositorio:

    git clone https://github.com/rayanzaki/mcp-google-contacts-server.git cd mcp-google-contacts-server
  3. Cree un entorno virtual e instale dependencias:

    uv venv source .venv/bin/activate uv pip install -r requirements.txt

📦 Usando pip

  1. Clonar el repositorio:

    git clone https://github.com/rayanzaki/mcp-google-contacts-server.git cd mcp-google-contacts-server
  2. Instalar dependencias:

    pip install -r requirements.txt

🔑 Configuración de autenticación

El servidor requiere las credenciales de la API de Google para acceder a tus contactos. Tienes varias opciones:

🔐 Opción 1: Usar un archivo credentials.json

  1. Cree un proyecto de Google Cloud y habilite la API People

  2. Crear credenciales OAuth 2.0 (tipo de aplicación de escritorio)

  3. Descargue el archivo credentials.json

  4. Colóquelo en uno de estos lugares:

    • El directorio raíz de este proyecto

    • Su directorio de inicio (~/google-contacts-credentials.json)

    • Especifique su ubicación con el argumento --credentials-file

🔐 Opción 2: Uso de variables de entorno

Establezca las siguientes variables de entorno:

  • GOOGLE_CLIENT_ID : Su ID de cliente de Google OAuth

  • GOOGLE_CLIENT_SECRET : Su secreto de cliente de Google OAuth

  • GOOGLE_REFRESH_TOKEN : Un token de actualización válido para su cuenta

🛠️ Uso

🏃‍♂️ Inicio básico

python src/main.py # or uv run src/main.py

Esto inicia el servidor con el transporte stdio predeterminado.

⚙️ Argumentos de la línea de comandos

Argumento

Descripción

Valor predeterminado

--transport

Protocolo de transporte a utilizar ( stdio o http )

stdio

--host

Host para transporte HTTP

localhost

--port

Puerto para transporte HTTP

8000

--client-id

ID de cliente de Google OAuth (anula la variable de entorno)

-

--client-secret

Secreto de cliente de Google OAuth (anula la variable de entorno)

-

--refresh-token

Token de actualización de Google OAuth (anula la variable de entorno)

-

--credentials-file

Ruta al archivo credentials.json de Google OAuth

-

📝 Ejemplos

Comience con el transporte HTTP:

python src/main.py --transport http --port 8080

Utilice un archivo de credenciales específico:

python src/main.py --credentials-file /path/to/your/credentials.json

Proporcione las credenciales directamente:

python src/main.py --client-id YOUR_CLIENT_ID --client-secret YOUR CLIENT_SECRET --refresh-token YOUR_REFRESH_TOKEN

🔌 Integración con clientes MCP

Para utilizar este servidor con clientes MCP (como Claude de Anthropic con Cline), agréguelo a su configuración de MCP:

{ "mcpServers": { "google-contacts-server": { "command": "uv", "args": [ "--directory", "/path/to/mcp-google-contacts-server", "run", "main.py" ], "disabled": false, "autoApprove": [] } } }

🧰 Herramientas disponibles

Este servidor MCP proporciona las siguientes herramientas:

Herramienta

Descripción

list_contacts

Listar todos los contactos o filtrar por nombre

get_contact

Obtenga un contacto por nombre del recurso o correo electrónico

create_contact

Crear un nuevo contacto

update_contact

Actualizar un contacto existente

delete_contact

Eliminar un contacto por nombre de recurso

search_contacts

Buscar contactos por nombre, correo electrónico o número de teléfono

list_workspace_users

Incluir usuarios de Google Workspace en el directorio de su organización

search_directory

Buscar personas en el directorio de Google Workspace

get_other_contacts

Recuperar contactos de la sección 'Otros contactos'

🔍 Descripciones detalladas de herramientas

📋 list_contacts

Enumera todos tus contactos de Google o los filtra por nombre.

Parámetros:

  • name_filter (opcional): cadena para filtrar contactos por nombre

  • max_results (opcional): Número máximo de contactos a devolver (predeterminado: 100)

Ejemplo:

list_contacts(name_filter="John", max_results=10)

👤 get_contact

Recupera información detallada sobre un contacto específico.

Parámetros:

  • identifier : Nombre del recurso (personas/*) o dirección de correo electrónico del contacto

Ejemplo:

get_contact("john.doe@example.com") # or get_contact("people/c12345678901234567")

create_contact

Crea un nuevo contacto en tus Contactos de Google.

Parámetros:

  • given_name : Nombre del contacto

  • family_name (opcional): Apellido del contacto

  • email (opcional): Dirección de correo electrónico del contacto

  • phone (opcional): Número de teléfono del contacto

Ejemplo:

create_contact(given_name="Jane", family_name="Smith", email="jane.smith@example.com", phone="+1-555-123-4567")

✏️ update_contact

Actualiza un contacto existente con nueva información.

Parámetros:

  • resource_name : Nombre del recurso de contacto (personas/*)

  • given_name (opcional): Nombre actualizado

  • family_name (opcional): Apellido actualizado

  • email (opcional): Dirección de correo electrónico actualizada

  • phone (opcional): Número de teléfono actualizado

Ejemplo:

update_contact(resource_name="people/c12345678901234567", email="new.email@example.com")

🗑️ delete_contact

Elimina un contacto de tus Contactos de Google.

Parámetros:

  • resource_name : Nombre del recurso de contacto (personas/*) para eliminar

Ejemplo:

delete_contact(resource_name="people/c12345678901234567")

🔍 search_contacts

Busca tus contactos por nombre, correo electrónico o número de teléfono.

Parámetros:

  • query : Término de búsqueda para encontrar en contactos

  • max_results (opcional): Número máximo de resultados a devolver (predeterminado: 10)

Ejemplo:

search_contacts(query="john", max_results=5)

🏢 list_workspace_users

Enumera los usuarios de Google Workspace en el directorio de tu organización.

Parámetros:

  • query (opcional): término de búsqueda para encontrar usuarios específicos

  • max_results (opcional): Número máximo de resultados a devolver (predeterminado: 50)

Ejemplo:

list_workspace_users(query="engineering", max_results=25)

🔭 search_directory

Realiza una búsqueda específica en el directorio de Google Workspace de su organización.

Parámetros:

  • query : término de búsqueda para encontrar miembros específicos del directorio

  • max_results (opcional): Número máximo de resultados a devolver (predeterminado: 20)

Ejemplo:

search_directory(query="product manager", max_results=10)

👥 get_other_contacts

Recupera contactos de la sección “Otros contactos”: personas con las que has interactuado pero que no has agregado a tus contactos.

Parámetros:

  • max_results (opcional): Número máximo de resultados a devolver (predeterminado: 50)

Ejemplo:

get_other_contacts(max_results=30)

🔒 Permisos

Al ejecutar el servidor por primera vez, deberá autenticarse con Google y otorgar los permisos necesarios para acceder a sus contactos. El proceso de autenticación le guiará.

❓ Solución de problemas

  • 🔐 Problemas de autenticación : asegúrese de que sus credenciales sean válidas y tengan los alcances necesarios

  • ⚠️ Límites de API : tenga en cuenta los límites de cuota de la API de Google People

  • 📝 Registros : Verifique la salida de la consola en busca de mensajes de error e información de depuración

👥 Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

📄 Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Latest Blog Posts

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/RayanZaki/mcp-google-contacts-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server