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 camponextPageTokende 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:
- Verifica que los encabezados
Authorization: Bearer YOUR_API_KEYyX-Mewcp-Credential-Id: CREDENTIAL-IDestén presentes - Comprueba que tu credencial esté activa en tu cuenta de MewCP
- Verifica que los encabezados
Créditos insuficientes
- Causa: Las llamadas a la API han superado tus límites de solicitudes
- Solución:
- Consulta el uso de créditos en tu panel de Curious Layer
- Mejora a un plan de pago o añade créditos para límites más altos
- 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:
- Ve a Credenciales en tu panel de MewCP
- Conecta tu cuenta de Google mediante OAuth
- Reintenta la solicitud con el encabezado
X-Mewcp-Credential-Idcorrecto
Carga útil de solicitud mal formada
- Causa: La carga útil JSON no es válida o le faltan campos obligatorios
- Solución:
- Valida la sintaxis JSON antes de enviar (especialmente los parámetros
personycontact_group) - Asegúrate de que todos los parámetros obligatorios de la herramienta estén incluidos
- Comprueba que los tipos de parámetros coincidan con los valores esperados
- Valida la sintaxis JSON antes de enviar (especialmente los parámetros
Servidor no encontrado
- Causa: Nombre de servidor incorrecto en el endpoint de la API
- Solución:
- Verifica el formato del endpoint:
{server-name}/mcp/{tool-name} - Usa el nombre de servidor correcto de la documentación
- Comprueba los servidores disponibles en tu cuenta de Curious Layer
- Verifica el formato del endpoint:
Error de la API de Google People
- Causa: La API de Google People devolvió un error
- Solución:
- Consulta el estado del servicio de Google Workspace en Panel de estado de Google
- Verifica que tu cuenta de Google tenga los permisos de Contactos necesarios (alcance:
contacts,contacts.readonly) - Revisa el mensaje de error para obtener detalles específicos
Recursos
- Documentación de la API de Google People — Referencia oficial de la API
- Referencia de la API de Google People — Referencia completa de endpoints
- Documentación de FastMCP — Especificación de FastMCP
- Credenciales de FastMCP — Paquete de Credenciales de FastMCP para el manejo de credenciales