MewCP Google Tasks MCP

Servidor MCP do Google Tasks hospedado, sem estado e multilocatário permite que assistentes de IA gerenciem tarefas e listas de tarefas através do Google Tasks.

Documentação

Crie, acompanhe e gerencie tarefas e listas de tarefas do Google Tasks — diretamente dos seus fluxos de trabalho de IA.

Um servidor Model Context Protocol (MCP) que expõe a API do Google Tasks para criar, listar, atualizar, concluir e excluir tarefas e listas de tarefas.

Visão Geral

O Servidor MCP do Google Tasks fornece acesso programático completo ao Google Tasks por meio de uma interface stateless e multi-tenant:

  • Listar, criar, atualizar e excluir listas de tarefas
  • Listar, criar, consultar, atualizar, concluir e excluir tarefas individuais
  • Toda ferramenta de mutação que sobrescreve estado (update_task, update_tasklist) retorna tanto o estado anterior quanto o posterior do recurso

Perfeito para:

  • Automatizar o gerenciamento de listas de tarefas e o acompanhamento de tarefas com agentes de IA
  • Criar assistentes que possam criar e concluir tarefas em nome do usuário
  • Integrar ações do Google Tasks em pipelines e lembretes baseados em LLM

Ferramentas

list_task_lists — Listar todas as listas de tarefas

Lista todas as listas de tarefas acessíveis pelo usuário. Retorna IDs, títulos e metadados das listas de tarefas. Use o ID da lista de tarefas da resposta para acessar as tarefas dentro de uma lista.

Entradas:

(none)

Esquema de saída data:

{
  count: number;
  tasklists: {
    id: string;
    title: string | null;
    updated: string | null;
    etag: string | null;
    kind: string | null;
    selfLink: string | null;
  }[];
  next_page_token: string | null;
}
add_task — Criar uma nova tarefa

Cria uma nova tarefa em uma lista de tarefas específica. Forneça o ID da lista de tarefas, o título e, opcionalmente, notas e data de vencimento. Retorna a tarefa criada com seu ID atribuído.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.
- `title` (string, required) — The title of the new task.
- `notes` (string, optional, default: "") — Optional details or description for the task.
- `due` (string, optional, default: "") — Optional due date. MUST be an RFC 3339 timestamp (e.g., '2026-06-17T00:00:00.000Z').

Esquema de saída data:

{
  id: string;
  title: string | null;
  notes: string | null;
  due: string | null;
  status: string | null;
  position: string | null;
  parent: string | null;
  links: { [key: string]: any }[] | null;
  webViewLink: string | null;
  hidden: boolean | null;
  completed: string | null;
  deleted: boolean | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
get_task — Obter os detalhes de uma tarefa

Obtém os detalhes de uma tarefa específica da lista de tarefas. Retorna o objeto completo da tarefa, incluindo título, notas, data de vencimento, status e posição.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.
- `task_id` (string, required) — The unique ID of the Google Task

Esquema de saída data:

{
  id: string;
  title: string | null;
  notes: string | null;
  due: string | null;
  status: string | null;
  position: string | null;
  parent: string | null;
  links: { [key: string]: any }[] | null;
  webViewLink: string | null;
  hidden: boolean | null;
  completed: string | null;
  deleted: boolean | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
get_task_by_name — Encontrar uma tarefa pelo título

Obtém os detalhes da tarefa a partir do nome da tarefa. Pesquisa em uma lista de tarefas por uma tarefa pelo seu título e retorna os detalhes da tarefa correspondente.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.
- `task_title` (string, required) — The title of the task to search for.

Esquema de saída data:

{
  id: string;
  title: string | null;
  notes: string | null;
  due: string | null;
  status: string | null;
  position: string | null;
  parent: string | null;
  links: { [key: string]: any }[] | null;
  webViewLink: string | null;
  hidden: boolean | null;
  completed: string | null;
  deleted: boolean | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
delete_task — Excluir permanentemente uma tarefa (destrutivo)

DESTRUTIVO — EXIGE CONFIRMAÇÃO EXPLÍCITA DO USUÁRIO ANTES DE CHAMAR. Exclui permanentemente uma tarefa específica da lista de tarefas. Esta ação é irreversível — a tarefa excluída e todos os seus dados não podem ser recuperados. NUNCA chame esta ferramenta de forma autônoma ou como parte de um fluxo automatizado. Você DEVE parar, informar ao usuário exatamente o que será excluído e que isso é permanente, e aguardar a confirmação escrita explícita antes de prosseguir.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.
- `task_id` (string, required) — The unique ID of the Google Task

Esquema de saída data:

{
  id: string;
  title: string | null;
  notes: string | null;
  due: string | null;
  status: string | null;
  position: string | null;
  parent: string | null;
  links: { [key: string]: any }[] | null;
  webViewLink: string | null;
  hidden: boolean | null;
  completed: string | null;
  deleted: boolean | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
complete_task — Marcar uma tarefa como concluída

Marca uma tarefa específica como concluída na lista de tarefas. Define o status da tarefa como 'completed'. Retorna o objeto da tarefa atualizado.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.
- `task_id` (string, required) — The unique ID of the Google Task

Esquema de saída data:

{
  id: string;
  title: string | null;
  notes: string | null;
  due: string | null;
  status: string | null;
  position: string | null;
  parent: string | null;
  links: { [key: string]: any }[] | null;
  webViewLink: string | null;
  hidden: boolean | null;
  completed: string | null;
  deleted: boolean | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
update_task — Atualizar uma tarefa existente

Atualiza uma tarefa existente. Apenas os campos fornecidos são alterados — os demais mantêm seu valor atual. OBSERVAÇÃO: isso sobrescreve os valores atuais dos campos — o estado original não é armazenado após a chamada. A resposta inclui tanto o estado anterior quanto o posterior, para que você tenha um registro completo do que mudou.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.
- `task_id` (string, required) — The unique ID of the Google Task
- `task_title` (string, required) — The title of the task.
- `notes` (string, optional, default: "") — Optional details or description for the task.
- `due` (string, optional, default: "") — Optional due date. MUST be an RFC 3339 timestamp (e.g., '2026-06-17T00:00:00.000Z').

Esquema de saída data:

{
  before: {
    id: string;
    title: string | null;
    notes: string | null;
    due: string | null;
    status: string | null;
    position: string | null;
    parent: string | null;
    links: { [key: string]: any }[] | null;
    webViewLink: string | null;
    hidden: boolean | null;
    completed: string | null;
    deleted: boolean | null;
    etag: string | null;
    kind: string | null;
    selfLink: string | null;
  };
  after: {
    id: string;
    title: string | null;
    notes: string | null;
    due: string | null;
    status: string | null;
    position: string | null;
    parent: string | null;
    links: { [key: string]: any }[] | null;
    webViewLink: string | null;
    hidden: boolean | null;
    completed: string | null;
    deleted: boolean | null;
    etag: string | null;
    kind: string | null;
    selfLink: string | null;
  };
}
create_tasklist — Criar uma nova lista de tarefas

Cria uma lista de tarefas totalmente nova. Retorna a lista de tarefas criada com seu ID atribuído e metadados.

Entradas:

- `tasklist_name` (string, required) — The name of the Google Tasks list.

Esquema de saída data:

{
  id: string;
  title: string | null;
  updated: string | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
update_tasklist — Renomear uma lista de tarefas existente

Atualiza o nome de uma lista de tarefas específica. A resposta inclui tanto o estado anterior quanto o posterior, para que você tenha um registro completo do que mudou.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.
- `title` (string, required) — The title or name of the Google Tasks list

Esquema de saída data:

{
  before: {
    id: string;
    title: string | null;
    updated: string | null;
    etag: string | null;
    kind: string | null;
    selfLink: string | null;
  };
  after: {
    id: string;
    title: string | null;
    updated: string | null;
    etag: string | null;
    kind: string | null;
    selfLink: string | null;
  };
}
list_tasks — Listar todas as tarefas em uma lista de tarefas

Lista todas as tarefas presentes na lista de tarefas específica. Retorna IDs, títulos, status e outros metadados de todas as tarefas da lista.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.

Esquema de saída data:

{
  count: number;
  tasks: {
    id: string;
    title: string | null;
    notes: string | null;
    due: string | null;
    status: string | null;
    position: string | null;
    parent: string | null;
    links: { [key: string]: any }[] | null;
    webViewLink: string | null;
    hidden: boolean | null;
    completed: string | null;
    deleted: boolean | null;
    etag: string | null;
    kind: string | null;
    selfLink: string | null;
  }[];
  next_page_token: string | null;
}
get_tasklist — Obter os detalhes de uma lista de tarefas

Obtém os detalhes ou metadados de uma lista de tarefas específica. Retorna o ID da lista de tarefas, o título e o timestamp da última atualização.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.

Esquema de saída data:

{
  id: string;
  title: string | null;
  updated: string | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
delete_tasklist — Excluir permanentemente uma lista de tarefas (destrutivo)

DESTRUTIVO — EXIGE CONFIRMAÇÃO EXPLÍCITA DO USUÁRIO ANTES DE CHAMAR. Exclui permanentemente uma lista de tarefas inteira com todas as tarefas nela contidas. Esta ação é irreversível — a lista de tarefas e todas as suas tarefas não podem ser recuperadas. NUNCA chame esta ferramenta de forma autônoma ou como parte de um fluxo automatizado. Você DEVE parar, informar ao usuário exatamente o que será excluído e que isso é permanente, e aguardar a confirmação escrita explícita antes de prosseguir.

Entradas:

- `tasklist_id` (string, required) — The unique ID of the Google Tasks list.

Esquema de saída data:

{
  id: string;
  title: string | null;
  updated: string | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}

Referência de Parâmetros da API

Envelope de Resposta

Toda ferramenta retorna o mesmo envelope de nível superior. Apenas data varia por ferramenta.

// Success
{
  "success": true,
  "statusCode": 200,
  "retriable": false,
  "retry_after_seconds": null,
  "error": null,
  "data": { ... }
}

// Error
{
  "success": false,
  "statusCode": 404,
  "retriable": false,
  "retry_after_seconds": null,
  "error": { "code": "NOT_FOUND", "message": "No task found with the title {task_title}", "details": null },
  "data": null
}
  • retriable — true quando é seguro tentar novamente (limite de taxa, erro de rede, 503). false para autenticação, não encontrado e outros erros não transitórios.
  • retry_after_seconds — segundos de espera antes de tentar novamente; presente apenas quando retriable é true e o serviço upstream especifica um atraso.
  • error.code — string legível por máquina: NOT_FOUND (get_task_by_name não encontrou correspondência), AUTH_ERROR (nenhum token de acesso OAuth disponível), UPSTREAM_ERROR (a API do Google Tasks retornou um erro HTTP), SERVER_ERROR (falha inesperada no lado do servidor).
Parâmetros Comuns
  • tasklist_id — O ID exclusivo de uma lista do Google Tasks. Obtenha-o de list_task_lists, create_tasklist ou do campo id de qualquer resposta de lista de tarefas. Necessário para toda ferramenta de nível de tarefa e de nível de lista de tarefas.
  • task_id — O ID exclusivo de uma tarefa do Google Tasks dentro de uma lista de tarefas. Obtenha-o de list_tasks, add_task ou do campo id de qualquer resposta de tarefa.
  • next_page_token — Retornado por list_task_lists e list_tasks quando a API subjacente do Google Tasks indica que existem mais resultados. Este servidor atualmente transmite uma única página da API upstream e não expõe um parâmetro de entrada para solicitar páginas subsequentes.
Formatos de Recursos

ID da Lista de Tarefas (tasklist_id):

Opaque identifier assigned by the Google Tasks API, or the literal value `@default` for the user's default task list.
Example: MDAxMjM0NTY3ODkwMTIzNDU2Nzo6MA

ID da Tarefa (task_id):

Opaque identifier assigned by the Google Tasks API when a task is created.
Example: MTIzNDU2Nzg5MDEyMzQ1Njc4OTA

Data de Vencimento (due):

RFC 3339 timestamp.
Example: 2026-06-17T00:00:00.000Z

Solução de Problemas

Cabeçalhos Ausentes ou Inválidos
  • Causa: Chave de API não fornecida 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. Verifique se a chave de API 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 do 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édito
Credencial Não Conectada
  • Causa: Nenhuma credencial do Google Tasks vinculada à sua conta
  • Solução:
    1. Vá para Credenciais no seu painel do 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
    2. Certifique-se de 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 do Curious Layer
Erro da API do Google Tasks
  • Causa: A API upstream do Google Tasks retornou um erro
  • Solução:
    1. Verifique o status do serviço do Google em Página de Status do Google Workspace
    2. Verifique se sua credencial tem as permissões necessárias do Google Tasks
    3. Revise a mensagem de erro para obter detalhes específicos

Recursos