MewCP Google Tasks MCP

Servidor MCP de Google Tasks alojado, sin estado y multiinquilino que permite a los asistentes de IA gestionar tareas y listas de tareas a través de Google Tasks.

Documentación

Crea, rastrea y gestiona Google Tasks y listas de tareas — directamente desde tus flujos de trabajo de IA.

Un servidor de Model Context Protocol (MCP) que expone la API de Google Tasks para crear, listar, actualizar, completar y eliminar tareas y listas de tareas.

Resumen

El servidor MCP de Google Tasks proporciona acceso programático completo a Google Tasks a través de una interfaz multi-tenant sin estado:

  • Listar, crear, actualizar y eliminar listas de tareas
  • Listar, crear, buscar, actualizar, completar y eliminar tareas individuales
  • Cada herramienta de mutación que sobrescribe el estado (update_task, update_tasklist) devuelve tanto el estado anterior como el posterior del recurso

Perfecto para:

  • Automatizar la gestión de listas de tareas y el seguimiento de tareas desde agentes de IA
  • Crear asistentes que puedan crear y completar tareas en nombre de un usuario
  • Integrar acciones de Google Tasks en pipelines y recordatorios impulsados por LLM

Herramientas

list_task_lists — Listar todas las listas de tareas

Lista todas las listas de tareas accesibles por el usuario. Devuelve los IDs de las listas de tareas, títulos y metadatos. Usa el ID de la lista de tareas de la respuesta para acceder a las tareas dentro de una lista.

Entradas:

(none)

Esquema de salida 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 — Crear una nueva tarea

Crea una nueva tarea en una lista de tareas específica. Proporciona el ID de la lista de tareas, el título y notas y fecha de vencimiento opcionales. Devuelve la tarea creada con su ID asignado.

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 salida 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 — Obtener los detalles de una tarea

Obtiene el detalle de una tarea específica de la lista de tareas. Devuelve el objeto completo de la tarea, incluyendo título, notas, fecha de vencimiento, estado y posición.

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 salida 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 — Buscar una tarea por título

Obtiene los detalles de la tarea a partir del nombre de la tarea. Busca en una lista de tareas una tarea por su título y devuelve los detalles de la tarea coincidente.

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 salida 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 — Eliminar permanentemente una tarea (destructivo)

DESTRUCTIVO — REQUIERE CONFIRMACIÓN EXPLÍCITA DEL USUARIO ANTES DE LLAMAR. Elimina permanentemente una tarea específica de la lista de tareas. Esta acción es irreversible: la tarea eliminada y todos sus datos no se pueden recuperar. NUNCA llames a esta herramienta de forma autónoma o como parte de un flujo automatizado. DEBES detenerte, decirle al usuario exactamente qué se eliminará y que es permanente, y esperar su confirmación escrita explícita antes de continuar.

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 salida 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 una tarea como completada

Marca una tarea específica como completada de la lista de tareas. Establece el estado de la tarea a 'completada'. Devuelve el objeto de tarea actualizado.

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 salida 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 — Actualizar una tarea existente

Actualiza una tarea existente. Solo se cambian los campos que proporcionas; los demás conservan su valor actual. NOTA: esto sobrescribe los valores de campo actuales: el estado original no se almacena después de la llamada. La respuesta incluye tanto el estado anterior como el posterior para que tengas un registro completo de lo que cambió.

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 salida 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 — Crear una nueva lista de tareas

Crea una lista de tareas completamente nueva. Devuelve la lista de tareas creada con su ID asignado y metadatos.

Entradas:

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

Esquema de salida data:

{
  id: string;
  title: string | null;
  updated: string | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
update_tasklist — Renombrar una lista de tareas existente

Actualiza el nombre de una lista de tareas específica. La respuesta incluye tanto el estado anterior como el posterior para que tengas un registro completo de lo que cambió.

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 salida 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 las tareas en una lista de tareas

Lista todas las tareas presentes en la lista de tareas específica. Devuelve los IDs de tareas, títulos, estados y otros metadatos de todas las tareas de la lista.

Entradas:

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

Esquema de salida 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 — Obtener los detalles de una lista de tareas

Obtiene los detalles o metadatos de una lista de tareas específica. Devuelve el ID de la lista de tareas, el título y la marca de tiempo de la última actualización.

Entradas:

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

Esquema de salida data:

{
  id: string;
  title: string | null;
  updated: string | null;
  etag: string | null;
  kind: string | null;
  selfLink: string | null;
}
delete_tasklist — Eliminar permanentemente una lista de tareas (destructivo)

DESTRUCTIVO — REQUIERE CONFIRMACIÓN EXPLÍCITA DEL USUARIO ANTES DE LLAMAR. Elimina permanentemente una lista de tareas completa con todas sus tareas. Esta acción es irreversible: la lista de tareas y todas sus tareas no se pueden recuperar. NUNCA llames a esta herramienta de forma autónoma o como parte de un flujo automatizado. DEBES detenerte, decirle al usuario exactamente qué se eliminará y que es permanente, y esperar su confirmación escrita explícita antes de continuar.

Entradas:

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

Esquema de salida data:

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

Referencia de Parámetros de API

Envoltura de Respuesta

Cada herramienta devuelve la misma envoltura de nivel superior. Solo data varía según la herramienta.

// 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 cuando es seguro reintentar (límite de velocidad, error de red, 503). false para autenticación, no encontrado y otros errores no transitorios.
  • retry_after_seconds — segundos a esperar antes de reintentar; presente solo cuando retriable es true y el proveedor upstream especifica un retraso.
  • error.code — cadena legible por máquina: NOT_FOUND (get_task_by_name no encontró coincidencia), AUTH_ERROR (no hay token de acceso OAuth disponible), UPSTREAM_ERROR (la API de Google Tasks devolvió un error HTTP), SERVER_ERROR (fallo inesperado del lado del servidor).
Parámetros Comunes
  • tasklist_id — El ID único de una lista de Google Tasks. Obtenlo de list_task_lists, create_tasklist o del campo id de cualquier respuesta de lista de tareas. Requerido por cada herramienta de nivel de tarea y de nivel de lista de tareas.
  • task_id — El ID único de una tarea de Google dentro de una lista de tareas. Obtenlo de list_tasks, add_task o del campo id de cualquier respuesta de tarea.
  • next_page_token — Devuelto por list_task_lists y list_tasks cuando la API subyacente de Google Tasks indica que existen más resultados. Este servidor actualmente pasa una sola página de la API upstream y no expone un parámetro de entrada para solicitar páginas posteriores.
Formatos de Recursos

ID de Lista de Tareas (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 de Tarea (task_id):

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

Fecha de Vencimiento (due):

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

Solución de Problemas

Encabezados Faltantes o Inválidos
  • Causa: Clave de API no proporcionada 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 la clave de API esté activa en tu cuenta de MewCP
Créditos Insuficientes
  • Causa: Las llamadas a la API han excedido tus límites de solicitud
  • Solución:
    1. Revisa el uso de créditos en tu panel de Curious Layer
    2. Mejora a un plan de pago o agrega créditos para límites más altos
    3. Contacta al soporte para ajustes de créditos
Credencial No Conectada
  • Causa: No hay una credencial de Google Tasks vinculada a tu cuenta
  • 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 Malformada
  • Causa: El JSON de la carga útil es inválido o faltan campos requeridos
  • Solución:
    1. Valida la sintaxis JSON antes de enviar
    2. Asegúrate de que todos los parámetros requeridos 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. Revisa los servidores disponibles en tu cuenta de Curious Layer
Error de la API de Google Tasks
  • Causa: La API upstream de Google Tasks devolvió un error
  • Solución:
    1. Revisa el estado del servicio de Google en Página de Estado de Google Workspace
    2. Verifica que tu credencial tenga los permisos requeridos de Google Tasks
    3. Revisa el mensaje de error para obtener detalles específicos

Recursos