Skip to main content
Glama
by jen6

Servidor MCP de TickTick

Licencia: MIT

Mejore su flujo de trabajo TickTick con este servidor MCP. Basado en la biblioteca ticktick-py , ofrece capacidades de filtrado significativamente mejoradas, lo que permite que los asistentes de IA y las aplicaciones compatibles con MCP (como Claude Desktop, VS Code Agent Mode o mcp-use ) interactúen con sus tareas con mayor precisión y eficacia.

✨ Características

Este servidor proporciona acceso integral a las funcionalidades de TickTick a través de herramientas MCP, categorizadas de la siguiente manera:

  • Gestión de tareas: crear, actualizar (incluida la conversión al formato de fecha de TickTick), eliminar, completar y mover tareas.

  • Gestión de subtareas: cree subtareas vinculando tareas existentes.

  • Recuperación de tareas:

    • Obtener todas las tareas no completadas.

    • Obtenga tareas por ID o campos específicos.

    • Obtenga tareas completadas dentro de un rango de fechas.

    • Obtener tareas de un proyecto específico.

    • Filtrar tareas según varios criterios (prioridad, proyecto, etiquetas, etc.).

  • Gestión de proyectos/etiquetas: recupera todos los proyectos, etiquetas y carpetas de proyectos.

  • Herramientas útiles: convierte cadenas de fecha y hora al formato TickTick requerido.

Consulte las definiciones de herramientas en el directorio src/ticktick_mcp/tools/ para obtener especificaciones detalladas.

🚀 Primeros pasos

Este servidor utiliza la biblioteca no oficial para interactuar con la API TickTick.

Prerrequisitos

  • Python >= 3.10

  • Acceso a TickTick y credenciales de API (ver más abajo).

Configuración

  1. Registrar una aplicación TickTick: Antes de usar el servidor, debe registrar una aplicación con TickTick para obtener las credenciales de la API. Siga estos pasos según la documentación de ticktick-py :

    • Vaya a la documentación de TickTick OpenAPI e inicie sesión con su cuenta de TickTick.

    • Haga clic en Manage Apps en la esquina superior derecha.

    • Registra una nueva aplicación haciendo clic en el botón +App Name . Indica un nombre para tu aplicación (p. ej., "Servidor MCP").

    • Una vez creada, edita los detalles de la aplicación. Anota el Client ID y Client Secret generados.

    • Para la OAuth Redirect URL , introduzca la URL a la que desea ser redirigido después de autorizar la aplicación. No es necesario que sea una URL activa.

      • http://localhost:8080/redirect o http://127.0.0.1:8080/ son opciones comunes para el desarrollo local.

      • Asegúrese de que esta URL exacta esté guardada en sus variables de entorno.

  2. Variables de entorno: El servidor requiere las credenciales de la API de TickTick que acaba de obtener, además de sus datos de acceso. Por defecto, busca un archivo .env ubicado en ~/.config/ticktick-mcp/.env .

    • El servidor podría crear el directorio ~/.config/ticktick-mcp/ si no existe, pero es más seguro crearlo manualmente.

    • Debes crear el archivo dentro de ese directorio.

    • Como alternativa, puede especificar un directorio diferente usando el argumento de línea de comandos --dotenv-dirsolo al ejecutar el servidor directamente desde Python (consulte "Ejecución del servidor" más adelante). El archivo .env debe contener:

TICKTICK_CLIENT_ID=your_client_id # Obtained in Step 1 TICKTICK_CLIENT_SECRET=your_client_secret # Obtained in Step 1 TICKTICK_REDIRECT_URI=your_redirect_uri # Entered in Step 1 (must match exactly) TICKTICK_USERNAME=your_ticktick_email # Your TickTick login email TICKTICK_PASSWORD=your_ticktick_password # Your TickTick login password (or app password if enabled)
  1. Autenticación (primera ejecución): en la primera ejecución (ya sea directamente o a través de un cliente MCP), la biblioteca ticktick-py subyacente iniciará un flujo de autenticación OAuth2.

    • Es posible que se abra automáticamente una ventana del navegador web o que se imprima una URL en la salida de la consola/registro.

    • Debe visitar esta URL, iniciar sesión en TickTick si es necesario y autorizar la aplicación (otorgar permisos de lectura y escritura).

    • Después de la autorización, será redirigido al TICKTICK_REDIRECT_URI que especificó.

      • La consola le pedirá que pegue esta URL redirigida completa (que incluye un parámetro code= ) nuevamente en la terminal.

    • Tras la verificación exitosa, se creará un archivo .token-oauth en el mismo directorio que su archivo .env .

    • Este archivo almacena en caché el token de autorización, por lo que normalmente solo necesitará realizar este paso de autorización manual una vez cada aproximadamente 6 meses o si el token deja de ser válido.

Ejecución del servidor

Puedes ejecutar el servidor de dos formas principales:

1. A través de un cliente MCP (recomendado para la integración del Asistente de IA):

Configure su cliente MCP (como Claude Desktop, VS Code Agent Mode, etc.) para usar el servidor. Ejemplo de configuración:

{ "mcpServers": { "ticktick": { "command": "uvx", "args": [ "--from", "git+https://github.com/jen6/ticktick-mcp.git", "ticktick-mcp" // Optional: Add "--dotenv-dir", "/path/to/your/config" if needed, // but standard clients might not support passing extra args easily. ] } } }

🔧 Herramientas

Este servidor proporciona las siguientes herramientas para interactuar con el servicio de gestión de tareas TickTick:

Gestión de tareas

  1. ticktick_create_task

    • Crea una nueva tarea en TickTick

    • Entradas:

      • title (cadena): El título de la tarea. Obligatorio.

      • projectId (cadena, opcional): ID del proyecto al que agregar la tarea.

      • content (cadena, opcional): detalles o notas adicionales para la tarea.

      • desc (cadena, opcional): Descripción de la tarea.

      • allDay (booleano, opcional): Establezca en Verdadero si la tarea abarca todo el día.

      • startDate (cadena, opcional): fecha/hora de inicio en formato ISO 8601.

      • dueDate (cadena, opcional): fecha/hora de vencimiento en formato ISO 8601.

      • timeZone (cadena, opcional): nombre de la zona horaria de IANA (por ejemplo, 'Asia/Seúl').

      • reminders (matriz de cadenas, opcional): lista de activadores de recordatorios en formato RFC 5545.

      • repeat (cadena, opcional): regla recurrente en formato RFC 5545.

      • priority (entero, opcional): Prioridad de la tarea (0=Ninguna, 1=Baja, 3=Media, 5=Alta).

      • sortOrder (entero, opcional): valor de orden de clasificación personalizado.

      • items (matriz de objetos, opcional): Lista de diccionarios de subtareas.

  2. ticktick_update_task

    • Actualiza una tarea existente

    • Entradas:

      • task_object (objeto): Un diccionario con propiedades de tarea para actualizar, incluido el id de la tarea.

  3. ticktick_delete_tasks

    • Elimina una o más tareas

    • Entradas:

      • task_ids (cadena o matriz de cadenas): un único ID de tarea o una lista de ID de tareas para eliminar.

  4. ticktick_complete_task

    • Marca una tarea como completada

    • Entradas:

      • task_id (cadena): El ID de la tarea que se marcará como completada.

  5. ticktick_move_task

    • Mueve una tarea a un proyecto diferente

    • Entradas:

      • task_id (cadena): El ID de la tarea a mover.

      • new_project_id (cadena): El ID del proyecto de destino.

  6. ticktick_make_subtask

    • Convierte una tarea en una subtarea de otra

    • Entradas:

      • parent_task_id (cadena): el ID de la tarea que se convertirá en la principal.

      • child_task_id (cadena): el ID de la tarea que se convertirá en la subtarea.

Recuperación de tareas

  1. ticktick_get_by_id

    • Recupera un objeto específico (tarea, proyecto, etc.) por ID

    • Entradas:

      • obj_id (cadena): el ID único del objeto a recuperar.

  2. ticktick_get_all

    • Recupera todos los objetos de un tipo especificado

    • Entradas:

      • search (cadena): el tipo de objetos a recuperar (por ejemplo, 'tareas', 'proyectos', 'etiquetas').

  3. ticktick_get_tasks_from_project

    • Recupera todas las tareas no completadas de un proyecto específico

    • Entradas:

      • project_id (cadena): El ID del proyecto.

  4. ticktick_filter_tasks

  • Filtra tareas según varios criterios

  • Entradas:

    • filter_criteria (objeto): Diccionario con parámetros de filtrado como:

      • status (cadena): estado de la tarea ('no completada' o 'completada').

      • project_id (cadena, opcional): ID del proyecto por el cual filtrar tareas.

      • tag_label (cadena, opcional): Nombre de la etiqueta por la que filtrar las tareas.

      • priority (entero, opcional): Nivel de prioridad.

      • due_start_date (cadena, opcional): fecha de inicio en formato ISO para el filtro de fecha de vencimiento.

      • due_end_date (cadena, opcional): fecha de finalización en formato ISO para el filtro de fecha de vencimiento.

      • completion_start_date (cadena, opcional): fecha de inicio para el filtro de fecha de finalización.

      • completion_end_date (cadena, opcional): Fecha de finalización para el filtro de fecha de finalización.

      • sort_by_priority (booleano, opcional): ordena los resultados por prioridad.

      • tz (cadena, opcional): zona horaria para la interpretación de la fecha.

Herramientas de ayuda

  1. ticktick_convert_datetime_to_ticktick_format

  • Convierte la cadena de fecha y hora ISO 8601 al formato API de TickTick

  • Entradas:

    • datetime_iso_string (cadena): La cadena de fecha/hora en formato ISO 8601.

    • tz (cadena): nombre de la zona horaria de IANA para interpretar la fecha/hora.

🤖 Ejemplo de mensaje de agente

## Persona: Daily Stand-up Agent - **Role**: AI agent integrated with the user's TickTick account to assist in daily work planning - **Goal**: Help the user start their day efficiently, focus on key tasks, and break large tasks into manageable subtasks --- ## Core Features & Workflow 1. **Fetch Current Time** - Retrieve current time using `time mcp`. 2. **Session Start & Data Loading** - The user initiates the session with a command like "Start daily stand-up" or "Hello." - Call TickTick MCP API to fetch all tasks due **today**. - Optionally notify the user that data is loading (e.g., "Fetching today's and overdue tasks from TickTick…"). 3. **Daily Briefing** Good morning! Today's date is {YYYY-MM-DD}. Here's your daily stand-up from TickTick: **Tasks Due Today:** - Task Name 1 - Task Name 2 … **Overdue Tasks:** - Task Name 3 - Task Name 4 … 4. **Select Key Task** > "Which of these tasks would you like to focus on first or must complete today? > Or is there another important task you'd like to add?" 5. **Task Breakdown (Subtask Creation)** - After the user selects a main task, suggest 2–5 specific subtasks needed to complete it. - Example (if "Write project report" is selected): 1. Draft outline & table of contents (10 min) 2. Gather & analyze data (30 min) 3. Write section drafts (1 h) 4. Review & revise draft (30 min) 5. Final submission (10 min) 6. **Confirm & Add Subtasks** - Ask the user to confirm or adjust the suggested subtasks: > "Does this breakdown look good? Any changes?" - Once approved, call MCP to add each subtask to TickTick, setting them as children of the main task if supported, naming them "[Main Task] – [Subtask]". mcp.ticktick.addTask({ name: "[Main Task] – [Subtask]", parentId: "..." }); 7. **Session Close** > "All subtasks have been added to TickTick. Have a productive day! Anything else I can help with?" --- ## Additional Guidelines - **Tone & Manner**: Friendly, proactive, and organized. - **MCP Interface Examples**: // Fetch today's due tasks mcp.ticktick.getTasks({ filter_criteria: { status: "uncompleted", tz: "Asia/Seoul", due_end_date: "2025-04-29" } }); // Add a subtask mcp.ticktick.addTask({ name: "Project Report – Write Draft", parentId: "task123" }); - **Error Handling**: Inform the user and suggest retrying on MCP call failures. - **Clarity**: Present task lists and subtask suggestions clearly. - **Plan First**: Use `sequential thinking mcp` to plan steps before adding or modifying tasks.

🤝 Contribuyendo

¡Agradecemos sus contribuciones! No dude en abrir un problema o enviar una solicitud de incorporación de cambios.

📜 Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

🔗 Ver también

-
security - not tested
F
license - not found
-
quality - not tested

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    A MCP server for TickTick that enables interacting with your TickTick task management system directly through Claude and other MCP clients.
    Last updated -
    171
    • Apple
  • A
    security
    A
    license
    A
    quality
    An MCP server that connects to the Teamwork API, providing a simplified interface for interacting with Teamwork projects and tasks.
    Last updated -
    36
    19
    12
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    An MCP server that provides interval timing functionality using token-based time tracking, allowing users to start timers with unique identifiers and check elapsed time in milliseconds or human-readable format.
    Last updated -
    Apache 2.0
  • -
    security
    -
    license
    -
    quality
    Enhanced TickTick task management server that provides rich functionality including task assignment, section management, comments, and batch operations with significantly improved performance through checkpoint sync.
    Last updated -

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jen6/ticktick-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server