MewCP Google People MCP

Servidor Google People MCP hospedado, sem estado e multilocatário permite que assistentes de IA acessem, gerenciem e organizem contatos e informações de perfil por meio da API Google People.

Documentação

Pesquise, gerencie e organize seus Contatos do Google com IA.

Um servidor Model Context Protocol (MCP) que expõe a API Google People para ler, criar, atualizar e excluir contatos e grupos de contatos.

Visão Geral

O Google People MCP Server oferece recursos completos de gerenciamento de Contatos do Google:

  • Criar, ler, atualizar, excluir e pesquisar contatos pessoais
  • Gerenciar grupos de contatos — listar, criar, atualizar ou excluí-los
  • Acessar e promover "Outros contatos" salvos automaticamente pelos serviços do Google

Perfeito para:

  • Consultar detalhes de contatos e endereços de e-mail por meio de assistentes de IA
  • Automatizar a manutenção da lista de contatos e a organização de grupos
  • Copiar contatos com interação frequente de "Outros contatos" para sua lista principal

Ferramentas

get_person — Obtém uma pessoa dos Contatos do Google

Busca um contato pelo nome do recurso, retornando apenas os 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")

Saída:

{
  "resourceName": "people/c12345",
  "names": [{ "displayName": "Jane Doe" }],
  "emailAddresses": [{ "value": "jane@example.com" }]
}
list_connections — Lista conexões dos Contatos do Google

Retorna uma lista paginada dos contatos do usuário 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

Saída:

{
  "connections": [{ "resourceName": "people/c12345", "names": [...] }],
  "nextPageToken": "...",
  "totalItems": 42
}
create_contact — Cria um contato nos Contatos do Google

Cria um novo contato a partir de um objeto JSON de pessoa.

Entradas:

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

Saída:

{
  "resourceName": "people/c12345",
  "names": [{ "displayName": "Jane Doe" }]
}
update_contact — Atualiza um contato nos Contatos do Google

Atualiza campos específicos de um contato 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

Saída:

{
  "resourceName": "people/c12345",
  "names": [{ "displayName": "Jane Smith" }]
}
delete_contact — Exclui um contato dos Contatos do Google

Exclui permanentemente um contato pelo nome do recurso.

Entradas:

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

Saída:

{}
search_contacts — Pesquisa contatos nos Contatos do Google

Pesquisa nos contatos do usuário usando uma 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")

Saída:

{
  "results": [
    { "person": { "resourceName": "people/c12345", "names": [...] } }
  ]
}
list_contact_groups — Lista grupos de contatos nos Contatos do Google

Retorna todos os grupos de contatos pertencentes ao usuário 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

Saída:

{
  "contactGroups": [{ "resourceName": "contactGroups/myContacts", "name": "myContacts" }],
  "nextPageToken": "..."
}
get_contact_group — Obtém um grupo de contatos dos Contatos do Google

Busca um único grupo de contatos pelo nome do recurso.

Entradas:

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

Saída:

{
  "resourceName": "contactGroups/abc123",
  "name": "Coworkers",
  "memberCount": 5
}
create_contact_group — Cria um grupo de contatos nos Contatos do Google

Cria um novo grupo de contatos a partir de um objeto JSON de grupo de contatos.

Entradas:

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

Saída:

{
  "resourceName": "contactGroups/abc123",
  "name": "Team"
}
update_contact_group — Atualiza um grupo de contatos nos Contatos do Google

Atualiza o nome ou os metadados de um grupo de contatos 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

Saída:

{
  "resourceName": "contactGroups/abc123",
  "name": "Updated Team"
}
delete_contact_group — Exclui um grupo de contatos dos Contatos do Google

Exclui permanentemente um grupo de contatos pelo nome do recurso.

Entradas:

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

Saída:

{}
batch_get_contact_groups — Obtém vários grupos de contatos de uma vez

Busca detalhes de vários grupos de contatos em uma única solicitação.

Entradas:

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

Saída:

{
  "responses": [
    { "contactGroup": { "resourceName": "contactGroups/abc", "name": "Team" } }
  ]
}
list_other_contacts — Lista outros contatos nos Contatos do Google

Retorna "Outros contatos" — pessoas salvas automaticamente pelo Google a partir de interações (e-mails, chamadas 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

Saída:

{
  "otherContacts": [{ "resourceName": "otherContacts/c99999", "names": [...] }],
  "nextPageToken": "..."
}
search_other_contacts — Pesquisa outros contatos nos Contatos do Google

Pesquisa na lista de "Outros contatos" usando uma consulta de texto.

Entradas:

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

Saída:

{
  "results": [
    { "person": { "resourceName": "otherContacts/c99999", "names": [...] } }
  ]
}
copy_other_contact_to_my_contacts_group — Copia um outro contato para Meus contatos

Promove um contato de "Outros contatos" para o grupo principal "Meus contatos" do usuário.

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")

Saída:

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

Referência de Parâmetros da API

Parâmetros Comuns
  • resource_name — Identifica uma pessoa ou grupo específico. Formatos:
    • "people/me" — o usuário autenticado
    • "people/c{id}" — um contato específico
    • "contactGroups/{id}" — um grupo de contatos
    • "otherContacts/c{id}" — um outro contato
  • page_size — Limita o número de itens retornados por solicitação. Se omitido, a API aplica seu próprio limite padrão.
  • page_token — Token opaco retornado no campo nextPageToken de uma resposta anterior. Passe-o para recuperar a próxima página de resultados.
Formatos de Máscara de Campos

person_fields / read_mask — separados por vírgula, sem espaços:

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

update_person_fields — deve listar todos os campos que você está alterando:

names,emailAddresses

copy_mask — campos a serem transferidos ao promover um outro contato:

names,emailAddresses,phoneNumbers

Exemplo de estrutura JSON de pessoa:

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

Solução de Problemas

Cabeçalhos Ausentes ou Inválidos
  • Causa: Token OAuth não fornecido nos cabeçalhos da solicitação ou formato incorreto
  • Solução:
    1. Verifique se os cabeçalhos Authorization: Bearer YOUR_API_KEY e X-Mewcp-Credential-Id: CREDENTIAL-ID estão presentes
    2. Confirme se sua credencial está ativa na sua conta MewCP
Créditos Insuficientes
  • Causa: As chamadas de API excederam seus limites de solicitação
  • Solução:
    1. Verifique o uso de créditos no seu painel Curious Layer
    2. Faça upgrade para um plano pago ou adicione créditos para limites maiores
    3. Entre em contato com o suporte para ajustes de créditos
Credencial Não Conectada
  • Causa: Nenhuma conta do Google vinculada à sua credencial MewCP
  • Solução:
    1. Vá para Credenciais no seu painel MewCP
    2. Conecte sua conta do Google via OAuth
    3. Tente novamente a solicitação com o cabeçalho X-Mewcp-Credential-Id correto
Payload de Solicitação Malformado
  • Causa: O payload JSON é inválido ou está faltando campos obrigatórios
  • Solução:
    1. Valide a sintaxe JSON antes de enviar (especialmente os parâmetros person e contact_group)
    2. Garanta que todos os parâmetros obrigatórios da ferramenta estejam incluídos
    3. Verifique se os tipos de parâmetros correspondem aos valores esperados
Servidor Não Encontrado
  • Causa: Nome incorreto do servidor no endpoint da API
  • Solução:
    1. Verifique o formato do endpoint: {server-name}/mcp/{tool-name}
    2. Use o nome correto do servidor conforme a documentação
    3. Verifique os servidores disponíveis na sua conta Curious Layer
Erro da API Google People
  • Causa: A API Google People upstream retornou um erro
  • Solução:
    1. Verifique o status do serviço do Google Workspace em Painel de Status do Google
    2. Confirme se sua conta do Google tem as permissões de Contatos necessárias (escopo: contacts, contacts.readonly)
    3. Revise a mensagem de erro para obter detalhes específicos

Recursos