Google Contacts
Gestiona tus contactos de Google, permitiéndote crear, buscar y actualizar contactos.
GitHub
1
Prueba este MCPPatrocinadoDocumentación
📇 Servidor MCP de Google Contacts
Un servidor de Protocolo de Conversación entre Máquinas (MCP) que proporciona funcionalidad completa de Google Contacts para asistentes de IA.
✨ Características
- Gestión completa de contactos: Crear, leer, actualizar y eliminar contactos con más de 25 campos
- Búsqueda avanzada: Búsqueda en múltiples campos entre nombres, correos electrónicos, teléfonos y organizaciones
- Grupos de contactos: Gestión completa de etiquetas/grupos y organización
- Integración con Google Workspace: Búsqueda en el directorio y gestión de usuarios
- Rendimiento eficiente: Soporte de paginación para listas grandes de contactos (más de 1000 contactos)
- Soporte de campos enriquecidos: Múltiples correos/teléfonos, direcciones, cumpleaños, relaciones, campos personalizados
🚀 Instalación
Requisitos previos
- Python 3.12 o superior
- Cuenta de Google con acceso a contactos
- Proyecto de Google Cloud con la API de People habilitada
- Credenciales de OAuth 2.0
Configuración
-
Clonar e instalar:
git clone git@github.com:4tal/mcp-google-contacts-server.git cd mcp-google-contacts-server # Using uv (recommended) uv venv && source .venv/bin/activate uv pip install -r requirements.txt # Or using pip pip install -r requirements.txt -
Configurar las credenciales de la API de Google (elige una opción):
Opción A: Archivo de credenciales
- Descargar
credentials.jsondesde la consola de Google Cloud - Colocarlo en la raíz del proyecto o especificarlo con
--credentials-file
Opción B: Variables de entorno
export GOOGLE_CLIENT_ID="your_client_id" export GOOGLE_CLIENT_SECRET="your_client_secret" export GOOGLE_REFRESH_TOKEN="your_refresh_token" - Descargar
🛠️ Uso
Inicio básico
python src/main.py
# or
uv run src/main.py
Opciones de línea de comandos
--transport: Protocolo (stdioohttp, por defecto:stdio)--host: Host HTTP (por defecto:localhost)--port: Puerto HTTP (por defecto:8000)--credentials-file: Ruta al archivo credentials.json--client-id,--client-secret,--refresh-token: Credenciales OAuth
Ejemplos
# HTTP transport
python src/main.py --transport http --port 8080
# Specific credentials file
python src/main.py --credentials-file /path/to/credentials.json
🔌 Integración con clientes MCP
Añade a tu configuración de MCP:
{
"mcpServers": {
"google-contacts-server": {
"command": "uv",
"args": [
"--directory", "/path/to/mcp-google-contacts-server",
"run", "main.py"
]
}
}
}
🧰 Herramientas disponibles
Gestión de contactos
list_contacts- Listar todos los contactos con filtrado y paginaciónsearch_contacts- Búsqueda avanzada en múltiples camposget_contact- Obtener información detallada de un contactocreate_contact- Crear contacto con campos básicos (11 campos)create_contact_advanced- Crear contacto con todos los campos (más de 25 campos)update_contact- Actualizar contacto con campos básicosupdate_contact_advanced- Actualizar contacto con todos los camposdelete_contact- Eliminar un contacto
Grupos de contactos (Etiquetas)
list_contact_groups- Listar todos los grupos/etiquetas de contactoscreate_contact_group- Crear un nuevo grupo de contactosget_contact_group- Obtener detalles del grupo y sus miembrosupdate_contact_group- Actualizar el nombre del grupodelete_contact_group- Eliminar grupos creados por el usuarioadd_contacts_to_group- Añadir contactos a un gruporemove_contacts_from_group- Eliminar contactos de un gruposearch_contacts_by_group- Encontrar contactos en un grupo específico
Google Workspace
list_workspace_users- Listar el directorio de la organizaciónsearch_directory- Buscar en el directorio de Workspaceget_other_contacts- Obtener "otros contactos"
📝 Ejemplos rápidos
Buscar contactos
# Basic search
search_contacts("john smith")
# Search specific fields
search_contacts("engineer", search_fields=["jobTitle", "organization"])
# Search phone numbers
search_contacts("+1234567890")
Crear contacto
# Basic contact
create_contact(
given_name="John",
family_name="Smith",
email="john@example.com",
phone="+1-555-123-4567",
organization="Acme Corp",
job_title="Software Engineer"
)
# Advanced contact with multiple fields
create_contact_advanced({
"given_name": "Jane",
"family_name": "Doe",
"emails": [
{"value": "jane@work.com", "type": "work"},
{"value": "jane@personal.com", "type": "home"}
],
"phones": [
{"value": "+1-555-111-2222", "type": "mobile"}
],
"organization": "Tech Corp",
"birthday": "1985-03-22"
})
Gestionar grupos de contactos
# Create group
create_contact_group("Work Team")
# Add contacts to group
add_contacts_to_group("contactGroups/12345", ["people/67890", "people/11111"])
# Find contacts in group
search_contacts_by_group("contactGroups/12345")
❓ Solución de problemas
Problemas de autenticación
- Asegúrate de que la API de People esté habilitada en la consola de Google Cloud
- Verifica que las credenciales OAuth sean válidas y tengan los alcances adecuados
- Alcances requeridos:
contactsydirectory.readonly
La búsqueda no funciona
- Usa la búsqueda del lado del servidor con
search_contacts - Prueba con diferentes términos o campos de búsqueda
Problemas de rendimiento
- Usa paginación con el parámetro
max_results - Establece
include_all_fields=Falsepara consultas más rápidas
🔧 Desarrollo
# Development setup
uv sync --dev
# Format code
./scripts/format.sh
# Run linting
./scripts/lint.sh
# Test
uv run python test_contact_groups.py
📄 Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles.
Nota: Este servidor proporciona funcionalidad completa de Google Contacts con soporte para todos los campos de contacto, búsqueda avanzada, grupos de contactos y manejo eficiente de listas grandes de contactos.