MewCP Google People MCP

Servidor MCP de Google People alojado, sin estado y multiinquilino que permite a los asistentes de IA acceder, gestionar y organizar contactos e información de perfiles a través de la API de Google People.

Documentación

Busca, gestiona y organiza tus Contactos de Google con IA.

Un servidor de Model Context Protocol (MCP) que expone la API de Google People para leer, crear, actualizar y eliminar contactos y grupos de contactos.

Descripción general

El servidor MCP de Google People proporciona capacidades completas de gestión de Contactos de Google:

  • Crear, leer, actualizar, eliminar y buscar contactos personales
  • Gestionar grupos de contactos: listar, crear, actualizar o eliminarlos
  • Acceder y promover "Otros contactos" guardados automáticamente por los servicios de Google

Ideal para:

  • Consultar detalles de contactos y direcciones de correo electrónico mediante asistentes de IA
  • Automatizar el mantenimiento de listas de contactos y la organización de grupos
  • Copiar contactos con los que interactúas con frecuencia desde "Otros contactos" a tu lista principal

Herramientas

get_person — Obtener una persona de Contactos de Google

Obtiene un contacto por nombre de recurso, devolviendo solo los campos especificados.

Entradas:

- `resource_name`  (string, required) — Resource name of the person (e.g. "people/me" or "people/c12345")
- `person_fields`  (string, required) — Comma-separated list of fields to return (e.g. "names,emailAddresses,phoneNumbers")

Salida:

{
  "resourceName": "people/c12345",
  "names": [{ "displayName": "Jane Doe" }],
  "emailAddresses": [{ "value": "jane@example.com" }]
}
list_connections — Listar conexiones de Contactos de Google

Devuelve una lista paginada de los contactos del usuario autenticado.

Entradas:

- `resource_name`  (string,  required) — Resource name of the person to list connections for (use "people/me" for the authenticated user)
- `person_fields`  (string,  required) — Comma-separated list of fields to return (e.g. "names,emailAddresses")
- `page_size`      (integer, optional) — Maximum number of connections to return
- `page_token`     (string,  optional) — Page token from a previous list request for pagination

Salida:

{
  "connections": [{ "resourceName": "people/c12345", "names": [...] }],
  "nextPageToken": "...",
  "totalItems": 42
}
create_contact — Crear un contacto en Contactos de Google

Crea un nuevo contacto a partir de un objeto JSON de persona.

Entradas:

- `person`  (string, required) — JSON string representing the person to create (e.g. '{"names":[{"givenName":"Jane","familyName":"Doe"}],"emailAddresses":[{"value":"jane@example.com"}]}')

Salida:

{
  "resourceName": "people/c12345",
  "names": [{ "displayName": "Jane Doe" }]
}
update_contact — Actualizar un contacto en Contactos de Google

Actualiza campos específicos de un contacto existente.

Entradas:

- `resource_name`        (string, required) — Resource name of the contact to update (e.g. "people/c12345")
- `update_person_fields` (string, required) — Comma-separated list of fields being updated (e.g. "names,emailAddresses")
- `person`               (string, required) — JSON string with the updated person data

Salida:

{
  "resourceName": "people/c12345",
  "names": [{ "displayName": "Jane Smith" }]
}
delete_contact — Eliminar un contacto de Contactos de Google

Elimina permanentemente un contacto por nombre de recurso.

Entradas:

- `resource_name`  (string, required) — Resource name of the contact to delete (e.g. "people/c12345")

Salida:

{}
search_contacts — Buscar contactos en Contactos de Google

Busca en los contactos del usuario mediante una consulta de texto.

Entradas:

- `query`      (string, required) — Text to search for (matches names, emails, phone numbers, etc.)
- `read_mask`  (string, required) — Comma-separated list of fields to return in results (e.g. "names,emailAddresses")

Salida:

{
  "results": [
    { "person": { "resourceName": "people/c12345", "names": [...] } }
  ]
}
list_contact_groups — Listar grupos de contactos en Contactos de Google

Devuelve todos los grupos de contactos pertenecientes al usuario autenticado.

Entradas:

- `page_size`   (integer, optional) — Maximum number of groups to return
- `page_token`  (string,  optional) — Page token from a previous list request for pagination

Salida:

{
  "contactGroups": [{ "resourceName": "contactGroups/myContacts", "name": "myContacts" }],
  "nextPageToken": "..."
}
get_contact_group — Obtener un grupo de contactos de Contactos de Google

Obtiene un único grupo de contactos por nombre de recurso.

Entradas:

- `resource_name`  (string, required) — Resource name of the contact group (e.g. "contactGroups/abc123")

Salida:

{
  "resourceName": "contactGroups/abc123",
  "name": "Coworkers",
  "memberCount": 5
}
create_contact_group — Crear un grupo de contactos en Contactos de Google

Crea un nuevo grupo de contactos a partir de un objeto JSON de grupo de contactos.

Entradas:

- `contact_group`  (string, required) — JSON string representing the group to create (e.g. '{"contactGroup":{"name":"Team"}}')

Salida:

{
  "resourceName": "contactGroups/abc123",
  "name": "Team"
}
update_contact_group — Actualizar un grupo de contactos en Contactos de Google

Actualiza el nombre o los metadatos de un grupo de contactos existente.

Entradas:

- `resource_name`   (string, required) — Resource name of the group to update (e.g. "contactGroups/abc123")
- `contact_group`   (string, required) — JSON string with the updated contact group data

Salida:

{
  "resourceName": "contactGroups/abc123",
  "name": "Updated Team"
}
delete_contact_group — Eliminar un grupo de contactos de Contactos de Google

Elimina permanentemente un grupo de contactos por nombre de recurso.

Entradas:

- `resource_name`  (string, required) — Resource name of the group to delete (e.g. "contactGroups/abc123")

Salida:

{}
batch_get_contact_groups — Obtener varios grupos de contactos a la vez

Obtiene los detalles de varios grupos de contactos en una sola solicitud.

Entradas:

- `resource_names`  (string, required) — Comma-separated list of contact group resource names (e.g. "contactGroups/abc,contactGroups/def")

Salida:

{
  "responses": [
    { "contactGroup": { "resourceName": "contactGroups/abc", "name": "Team" } }
  ]
}
list_other_contacts — Listar otros contactos en Contactos de Google

Devuelve "Otros contactos": personas guardadas automáticamente por Google a partir de interacciones (correos electrónicos, llamadas, etc.).

Entradas:

- `read_mask`   (string,  required) — Comma-separated list of fields to return (e.g. "names,emailAddresses")
- `page_size`   (integer, optional) — Maximum number of contacts to return
- `page_token`  (string,  optional) — Page token from a previous list request for pagination

Salida:

{
  "otherContacts": [{ "resourceName": "otherContacts/c99999", "names": [...] }],
  "nextPageToken": "..."
}
search_other_contacts — Buscar otros contactos en Contactos de Google

Busca en la lista de "Otros contactos" mediante una consulta de texto.

Entradas:

- `query`      (string, required) — Text to search for
- `read_mask`  (string, required) — Comma-separated list of fields to return in results

Salida:

{
  "results": [
    { "person": { "resourceName": "otherContacts/c99999", "names": [...] } }
  ]
}
copy_other_contact_to_my_contacts_group — Copiar un otro contacto a Mis contactos

Promueve un contacto de "Otros contactos" al grupo principal "Mis contactos" del usuario.

Entradas:

- `resource_name`  (string, required) — Resource name of the other contact to copy (e.g. "otherContacts/c99999")
- `copy_mask`      (string, required) — Comma-separated list of fields to copy (e.g. "names,emailAddresses,phoneNumbers")

Salida:

{
  "resourceName": "people/c12345",
  "names": [{ "displayName": "Jane Doe" }]
}

Referencia de parámetros de la API

Parámetros comunes
  • resource_name — Identifica a una persona o grupo específico. Formatos:
    • "people/me" — el usuario autenticado
    • "people/c{id}" — un contacto específico
    • "contactGroups/{id}" — un grupo de contactos
    • "otherContacts/c{id}" — un otro contacto
  • page_size — Limita el número de elementos devueltos por solicitud. Si se omite, la API aplica su propio límite predeterminado.
  • page_token — Token opaco devuelto en el campo nextPageToken de una respuesta anterior. Pásalo para recuperar la siguiente página de resultados.
Formatos de máscara de campos

person_fields / read_mask — separados por comas, sin espacios:

names,emailAddresses,phoneNumbers,addresses,organizations,birthdays,photos

update_person_fields — debe enumerar cada campo que estás cambiando:

names,emailAddresses

copy_mask — campos a transferir al promover un otro contacto:

names,emailAddresses,phoneNumbers

Ejemplo de estructura JSON de persona:

{
  "names": [{ "givenName": "Jane", "familyName": "Doe" }],
  "emailAddresses": [{ "value": "jane@example.com" }],
  "phoneNumbers": [{ "value": "+1-555-0100" }]
}

Solución de problemas

Encabezados faltantes o no válidos
  • Causa: Token OAuth no proporcionado en los encabezados de la solicitud o formato incorrecto
  • Solución:
    1. Verifica que los encabezados Authorization: Bearer YOUR_API_KEY y X-Mewcp-Credential-Id: CREDENTIAL-ID estén presentes
    2. Comprueba que tu credencial esté activa en tu cuenta de MewCP
Créditos insuficientes
  • Causa: Las llamadas a la API han superado tus límites de solicitudes
  • Solución:
    1. Consulta el uso de créditos en tu panel de Curious Layer
    2. Mejora a un plan de pago o añade créditos para límites más altos
    3. Contacta con soporte para ajustes de créditos
Credencial no conectada
  • Causa: No hay ninguna cuenta de Google vinculada a tu credencial de MewCP
  • Solución:
    1. Ve a Credenciales en tu panel de MewCP
    2. Conecta tu cuenta de Google mediante OAuth
    3. Reintenta la solicitud con el encabezado X-Mewcp-Credential-Id correcto
Carga útil de solicitud mal formada
  • Causa: La carga útil JSON no es válida o le faltan campos obligatorios
  • Solución:
    1. Valida la sintaxis JSON antes de enviar (especialmente los parámetros person y contact_group)
    2. Asegúrate de que todos los parámetros obligatorios de la herramienta estén incluidos
    3. Comprueba que los tipos de parámetros coincidan con los valores esperados
Servidor no encontrado
  • Causa: Nombre de servidor incorrecto en el endpoint de la API
  • Solución:
    1. Verifica el formato del endpoint: {server-name}/mcp/{tool-name}
    2. Usa el nombre de servidor correcto de la documentación
    3. Comprueba los servidores disponibles en tu cuenta de Curious Layer
Error de la API de Google People
  • Causa: La API de Google People devolvió un error
  • Solución:
    1. Consulta el estado del servicio de Google Workspace en Panel de estado de Google
    2. Verifica que tu cuenta de Google tenga los permisos de Contactos necesarios (alcance: contacts, contacts.readonly)
    3. Revisa el mensaje de error para obtener detalles específicos

Recursos